Audio/video stream recording forums
|
Attention Visitor: |
You may have to register or log in before you can post:
|
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
#EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017It's called HTTP Live Streaming and it's a standard..
There is usually a master m3u8 with, for example different resolutions or audio only. Then each version of the content has it's own m3u8 that has the ts files you download and copy(copy *.ts example.mp4 on Windows for example). Then run it through ffmpeg to clean it up. If it uses encryption then each .ts has it's own crypto key url("#EXT-X-KEY:METHOD=AES-128,URI=") and iv(example:"IV=0x00000000000000000000000000000007" ) that is used to decrypt it. The key is the body of the response of that http GET to the key url. Each key is for each TS there is no inheritor or weird padding or mixing going on.. How big networks make it more secure: The spec allows for a global key also in the ts-m3u8 that is used to decrypt each ts key, and the hosts usually timeout sessions on these and only server over https/tls. FFMPEG can still beat this security if you pass it a fresh enough URL. Sometime you have to manually dump using a cookie but not often. Grab the page with python and use the cookie header to grab ts files and either decrypt with a python encryption library(no native library) or use openssl CLI. Some might start using HTML5 storage too. With spec security just use the following. How to easily get the m3u8: Code:
//F12 then in console: document.getElementsByTagName('video')[0] Code:
ffmpeg -protocol_whitelist file,udp,rtp,crypto,tcp,https,rtsp,tls -i "TS-M3U8 URL HERE" -c:a copy -c:v copy "OUTPUT FILE HERE.ts" Code:
//remove -hwaccel auto if you get errors ffmpeg.exe -hwaccel auto -i "TS FILE HERE" -c:a copy -c:v x265 "OUTPUT PATH HERE.mp4" Last edited by streamcrank : 04-30-2017 at 03:47 PM. |
#2
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017this isn't gonna work for encrypted streams .. like hbogo, showtime anytime etc...
|
#3
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Quote:
Unless they use a custom player with FlashPlayer they have to comply with the HLS standard to get it to work with HTML5 <video>.. Most browsers shut off FlashPlayer based on domain policy or MAC so HTML5 is pretty much their only option.. Third party players like JWPlayer are even defaulting to HLS standard now.. All of their developers have to be force fed knowledge like most textbook CS grad software people so don't expect them to tighten security around the key URIs anytime soon.. |
#4
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017This is the kind of stream I am having difficulty with. When I try your code...
ffmpeg -protocol_whitelist file,udp,rtp,crypto,tcp,https,rtsp,tls -i "TS-M3U8 URL HERE" -c:a copy -c:v copy "OUTPUT FILE HERE.ts" using my own filenames I get an error about "unable to open key file". I am not sure how to get that key file from the m3u8 file. I have read that it could be found in a cookie but also that it could be found in them m3u8 file itself. |
#5
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Quote:
|
#6
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Roger that, thank you steamcrank!
|
#7
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Nothing streamcrank has said indicates that he is familiar with flash access.
|
#8
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Quote:
Flash can use custom same-domain protocols and encryption and has a a few codecs because it has ASC which you can code anything. You dump the ASC with a flash decompiler then reverse engineer it.. Again "flash access" does exist. JWPlayer is flash based and I've extracted TEA encryption keys from it before. AES-SAMPLE works the same as AES-128 except they can change keys instead of just IV per segment. I don't care about these other networks because all the big networks use uplynk and zype and uplynk and zype only use variants of HLS that are all standards compliant.. https://bitmovin.com/tutorials/hls-encryption/ |
#9
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017I was using the legacy name. As kingstaytheking pointed out earlier, the more precise name is Adobe Access. No flash player need be involved.
https://helpx.adobe.com/adobe-media-...ction-hls.html As described in the above link, the content can be protected using three modes: Vanilla PHLS Adobe Access 4.0 Quote:
I can't argue with you not caring. Some members here are interested in content that uses actual hls drm methods to protect the key, which is distinct from vanilla AES-128 hls which is not really drm at all. |
#10
|
|||
|
|||
Re: #EXT-X or m3u8 or TS or AES-128? You got HLS.. Howto Beat it in 2017Quote:
The native HTML5 DRM engine also uses cleartext key exchange over TLS. I haven't seen it used yet but it's well documented. I'm currently working on a generic tool but FFMPEG is still working when I feed it fresh m3u8. My tool will work the same except I spoof referrer and get a fresh session. |
Tags: crypto, m3u8 |
Thread Tools | |
Display Modes | |
|
|