selsta / hlsdl

C program to download VoD HLS (.m3u8) files
MIT License
636 stars 158 forks source link

How to get "skd://***" key? #102

Closed valentine2 closed 3 years ago

valentine2 commented 3 years ago

I'm trying to download a SAMPLE-AES encrypted stream. The m3u8 file starts like this:

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://6761374a7eb04b59a595a943f4dbcdbe",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXTINF:10.0,
media_b4500000_0.ts
#EXTINF:10.0,
media_b4500000_1.ts ...

HLSDL is able to download the encoded stream,

Warning: HLS stream is DRM protected.
> START media_playlist_get_links
> END media_playlist_get_links
HLS Stream is SAMPLE-AES encrypted.
File already exists. Overwrite? (y/n) y
{"d_t":"vod"}
{"t_d":3463,"d_d":0, "d_s":0}
Downloading part 0

but prompts error 404 when trying to get the key file:

Error: Getting key-file [https://.../chunklist_b4500000.m3u8/../skd://6761374a7eb04b59a595a943f4dbcdbe] 
failed http_code[404].
Downloading part 4

Is there any way to get somehow the given key-file to encode the stream offline or online with HLSDL? What is this 'skd:\' pseudo-url which refers to the key?

Thank you in advance.

selsta commented 3 years ago

skd:// usually means DRM, there is no known public method to breaking it