Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyAnyone find out how to get true 720p or 1080p decrypted?
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
Quote:
The newest media files from netflix support Apple's fairplay DRM system (in addition to playready). The latest Netflix app on IOS 7 supports fairplay decryption. Part of that DRM negotiation occurs within the Netflix app and the final part occurs within the mediaplayer app. The "key" that is retrieved via the .m3u8 is actually an encrypted binary blob which the mediaplayer app uses to fetch the real key from the fairplay subsystem. In other words, unlike the "crypt0.key", the fairplay mechanism never transfers the fairplay key in plain text. Until UVD figures out how to get that key, downloading and caching won't work. OTOH, it is relatively easy to get the (latest) Netflix app to fall back to the old mechanism for DRM (playready). This of course has the disadvantage that SuperHD streams will no longer be available. Interestingly enough the new format (ismv/isma) does support playready, probably for the "everything else" that uses playready. However the netflix IOS app will only do fairplay DRM on the new format. I would expect in the near future that netflix IOS app will probably only support fairplay, though. Currently fairplay is only enabled in IOS 7+. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.key1 Attachment(s)
I've attached a tweak for netflix which disables fairplay DRM on the latest Netflix app for IOS. The zip file also contains source code for those curious.
This will disable SuperHD as a consequence. But will allow UVD to work with the latest Netflix app. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.key1 Attachment(s)
This tweak disables fairplay on the latest Netflix binary, forcing the player to use playready, allowing UVD to work with Netflix. This tweak also enables HD content allowing 720 and 1080p content to be captured via UVD.
As usual, the source is included for the curious. To install, scp the deb file to IOS device, ssh in and use 'dpkg -i ...' to install the deb package. Alternatively, put it on a repository and install through cydia. This supersedes the previous tweak I posted. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyCode:
$key = file_get_contents($argv[3]); According the HLS spec, if the IV isn't specified in the #EXT-X-KEY, which it isn't, then the IV is the sequence number. The #EXT-X-MEDIA-SEQUENCE tag specifies the starting sequence number for the playlist, in this case, 0. Each url in the playlist is a sequence. So the first url in this case is sequence #0, the second is sequence #1, etc. The IV for each url is then encoded as a 128 bit big endian representation of the sequence number for that url. So the first URL (sequence #0) the IV is \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00 For the second URL (sequence #1) the IV is \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x01 and so forth. I believe that's the reason why you can't decrypt. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyTo help you further along, I found that if I muxed the audio and video as whole files I occasionally had audio sync problems. To resolve that, I would mix them as chunks. So my decryption process was something like (pseudocode):
Code:
create output.ts file You are getting close... :) |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyEach line in the video (and audio) m3u8 that does not begin with a # character is a url for a segment of audio or video (a sequence). If you download the whole thing as a single download, you need to extract out the byte ranges as specified in the M3U8. There is junk before the actual video (well not junk, but that's a different discussion...) and audio begins in the file. You'll notice that the first byterange does not begin at zero. Those byte ranges aren't just where decryption begins and ends, it also is the locations where the video and audio are stored in the whole file. If you leave the other stuff (pretty much all at the beginning of the file, iirc) on then nothing will play the video.
What you are doing is well enough correct. Just don't write the decrypted stuff back to the original file. Each byte range is what I'm referring to as a chunk. In my code, I simply read each byterange (whether directly from the download or from and already downloaded file doesn't really matter) decrypt the video, mux the audio and video and then append all of those muxed segments together. Once that's all done, I do a final conversion to convert from the ts container to mp4. Clear as mud? :) |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
-_2" And THEN go ahead and decrypt the file? Because from what i understood the first line of byterange is what is causing the video to not decrypt. By the way, by any chance did you successfully get an HD video to decrypt? |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
So if the first byte range starts at 6772528, then everything before it needs to be removed. Yes I've decrypted HD content. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
there is many byteranges. is the only way to do it, one at a time? and youre using a PHP script, right? |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
No, mine is written in Python. I never did use UVD. I have my own tweak that goes into the netflix app and extracts the M3U8 playlist and keys. It also runs a service on the ipad that let's me trigger playback of a movie and then after it captures the playlists and keys, it stops playback. I can bulk rip that way. But, everything else is the same as what you are doing. The python code downloads the media, decrypts it, and so forth. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.key1 Attachment(s)
Quote:
This runs in Python 2.7 and requires either the pycrypto or M2Crypto packages which implement AES. This *should* work platform independently, but I haven't tested that. Have fun. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
"I:\Python27>python decrypt.py Traceback (most recent call last): File "decrypt.py", line 19, in <module> except ImportException: NameError: name 'ImportException' is not defined I:\Python27>" |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.key1 Attachment(s)
Sorry. But it does mean that you need to install a crypto package for python. Either of these will work:
https://pypi.python.org/pypi/pycrypto https://pypi.python.org/pypi/M2Crypto Fix attached. |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keypycrypto prebuilt for windows:
http://www.voidspace.org.uk/python/m...shtml#pycrypto |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
" I:\Python27>decrypt.py video-4300000.m3u8 audio-en-64000-286493787.m3u8 ScrubsHD Test.ts.prdy ScrubsHDTestaudio.aac crypt0.key output.mp4 Traceback (most recent call last): File "I:\Python27\decrypt.py", line 127, in <module> sys.argv[6]) File "I:\Python27\decrypt.py", line 103, in decrypt with file(muxed_temp_name, 'rb') as muxed_temp: IOError: [Errno 2] No such file or directory: 'c:\\users\\angel\\appdata\\local\ \temp\\tmpqfdxqa.ts' I:\Python27>" |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
|
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keythe error occurs because the temp file doesn't exist. That is probably because something didn't happen in the ffmpeg muxing.
Change line 96 to add a print to the beginning of the statement as in: Code:
print subprocess.Popen([ffmpeg, '-i', video_temp_name, '-i', audio_temp_name, '-acodec', 'copy', '-vcodec', 'copy', muxed_temp_name], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
I:\Python27>decrypt.py video-4300000.m3u8 audio-en-64000-286493787.m3u8 ScrubsHD Test.ts.prdy ScrubsHDTestaudio.aac crypt0.key output.mp4 ('', 'ffmpeg version N-63930-g1c5aa64 Copyright (c) 2000-2014 the FFmpeg develop ers\r\n built on Jun 12 2014 22:14:34 with gcc 4.8.3 (GCC)\r\n configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-b zlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable -libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enab le-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-li bopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspe ex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aac enc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpa ck --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable- libxvid --enable-decklink --enable-zlib\r\n libavutil 52. 89.100 / 52. 89. 100\r\n libavcodec 55. 66.100 / 55. 66.100\r\n libavformat 55. 43.100 / 55. 43.100\r\n libavdevice 55. 13.101 / 55. 13.101\r\n libavfilter 4. 8.100 / 4. 8.100\r\n libswscale 2. 6.100 / 2. 6.100\r\n libswresamp le 0. 19.100 / 0. 19.100\r\n libpostproc 52. 3.100 / 52. 3.100\r\nc:\\u sers\\angel\\appdata\\local\\temp\\tmpycdx4j.ts: Invalid data found when process ing input\r\n') Traceback (most recent call last): File "I:\Python27\decrypt.py", line 127, in <module> sys.argv[6]) File "I:\Python27\decrypt.py", line 103, in decrypt with file(muxed_temp_name, 'rb') as muxed_temp: IOError: [Errno 2] No such file or directory: 'c:\\users\\angel\\appdata\\local\ \temp\\tmpcmp9le.ts' I:\Python27> |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keydecryption is failing. :(
what is the movieid of the content? And can you post the M3U8 files and the key file? |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
https://www.dropbox.com/sh/ynohnax12...sREoOHZF2jvxsa |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
btw I got the exact same error as you .. it produces an empty .ts which of course indicates the decryption failed as he stated before .. I tried his decrypt.py script with your Shrek sample and it worked perfectly btw .. so yea .. the decryption is the problem :( |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyWhen you browse to the movie in the browser, it will be to a url that looks like:
http://www.netflix.com/WiMovie/{movieid}?trkid={trackid} |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyQuote:
http://www.netflix.com/WiPlayer?movi...&trkid=3325854 |
Re: I downloaded Netflix videos in HD, I can play off line,need a little help W/.keyThe key is wrong. Curious.
|
All times are GMT -6. The time now is 08:57 AM. |