ItsAngel
01-15-2014, 12:11 AM
There's an IOS app in cydia that allows for netflix downloading!
The app is called "universal video downloader"
It downloads the netflix movie in about 3 minutes in HD!
The problem is that the files remain only playable in the app itself.
The files the app downloads are: 3 .m3u8 files. 1 AAC file (the movies audio), the video file in a weird format "Example.ts.prdy" , and a .Key file.
I'm assuming since it downloads the .key file, we can use it somehow to decrypt the videos?
Here is a link ( https://www.dropbox.com/s/vuglh751a9hy5r9/Downloaded%20netflix%20file%20shrek.zip ) to a low quality netflix download (low quality to not have a huge file here for you to test out) to see if any of you encryption/decryption geniuses could help me out a bit.
Any help is GREATLY appreciated!
Ps. I know It can be decrypted somehow because someone on the ModMy forums said he successfully decrypted the file! But he hasn't logged on in a couple weeks now.
blimey
01-15-2014, 01:04 AM
wow, this is cool. thanks for the tip about the app!
ItsAngel
01-15-2014, 04:16 PM
login Netflix(PM)
What?
ItsAngel
01-15-2014, 04:16 PM
wow, this is cool. thanks for the tip about the app!
No problem!
But make shure to get netflix IPA version 4.0 or bellow
ItsAngel
01-19-2014, 10:50 AM
Bump.
I still haven't been able to decrypt the file for out-of-the-app use
Please help
Bump.
I still haven't been able to decrypt the file for out-of-the-app use
Please help
your username and password to log Netflix(PM)
otherwise how to help you?
blimey
01-19-2014, 06:54 PM
your username and password to log Netflix(PM)
otherwise how to help you?
I think he is asking, since the app is able to locally decrypt and play the saved files while offline, how does the player in the app do such local decryption, again, while offline?
What piece of information would be gained by logging in, if the saved files already have all the pieces of information to play the saved files locally and while offline? The only way I can see that login would be required is if the saved decryption key is individualized to the particular device it was saved on.
ItsAngel
01-19-2014, 10:12 PM
I think he is asking, since the app is able to locally decrypt and play the saved files while offline, how does the player in the app do such local decryption, again, while offline?
What piece of information would be gained by logging in, if the saved files already have all the pieces of information to play the saved files locally and while offline? The only way I can see that login would be required is if the saved decryption key is individualized to the particular device it was saved on.
Exactly, I don't think my log in info is necessary. I downloaded the same thing twice on two different days, I switched the .key file from each file to the same file I downloaded days later, and the video played. It appears every episode has a unique .key that doesn't change regardless who or when the video is downloaded/played.
I have been looking all over the internet on how to decrypt the movie, but no such luck, sadly
ItsAngel
01-25-2014, 08:31 PM
Apparently it's encrypted using the AES-128 method
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="crypt0.key"
(Will add to original post)
it's pretty easy stuff. all the required information to decrypt the file is just right there. i can post a sample php script for decryption if required.
peterpan
01-26-2014, 04:56 AM
Yes, please do KSV. -TIA
here is my UVD Converter (http://pastebin.com/X9Wcjg0t).
Usage:
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Video:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Remux:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
peterpan
01-26-2014, 11:05 AM
Thank You Very Much!
ItsAngel
02-09-2014, 01:56 PM
here is my UVD Converter (http://pastebin.com/X9Wcjg0t).
Usage:
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Video:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Remux:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
Can you please explain the process to me a little please. I've never really decrypted anything. Also THANK YOU SO MUCH this method seems to work. And of so it's the first working method I've encounterd
ItsAngel
02-09-2014, 02:25 PM
Thank You Very Much!
can you verify this works?
im on windows and never used a PHP script
im trying to figure it out right now
blimey
02-09-2014, 02:30 PM
can you verify this works?
im on windows and never used a PHP script
im trying to figure it out right now
Yes, I tested it with the sample you uploaded. It works!
Installing PHP for dummies (Windows only) (https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only)
Mario8790
02-11-2014, 10:58 PM
Hi when I try to use this it doesnt work for me :/
I dont have .ts files or .aac files I got .isma & .ismv
blimey
02-12-2014, 03:34 PM
Hi when I try to use this it doesnt work for me :/
I dont have .ts files or .aac files I got .isma & .ismv
You must not be using the app mentioned at the start of this thread, or if you are using the app, you don't have netflix IPA version 4.0 or below.
The isma/ismv are microsoft formats. How are you getting these files?
adi10289
02-12-2014, 10:42 PM
that looks interesting I dont have iphone otherwise i would have tried. Anything such app for android?
Mario8790
02-13-2014, 09:02 PM
You must not be using the app mentioned at the start of this thread, or if you are using the app, you don't have netflix IPA version 4.0 or below.
The isma/ismv are microsoft formats. How are you getting these files?
I think its the netflix app I have the latest one I think, anyway I can the 4.0 version?
shortkud
02-15-2014, 12:08 AM
I found this 4.0 IPA and have tested it and it does work. Now I can't confirm it hasn't been tampered with in anyway so just FYI.
http://uploaded.net/file/32k1g1ne
The problem with this method while it does work, is that for me full quality ends up being 720x480. While with the latest version of netflix which results in the ISMA and ISMV files are very likely full 1080p from the file sizes at 100% quality.
The key method for the ISMV files is below. I can only find very little information about that keyformat but being that HLS streaming and ISMV/ISMA are pretty well known I imagine it has to be possible to decrypt the video in a similar fashion as the AES method. I'm not sure where the key might be stored though if it is on the iOS device at all.
#EXT-X-KEY:METHOD=ISO-23001-7,URI="+g=",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
ehurdler
02-20-2014, 02:39 PM
here is my UVD Converter (http://pastebin.com/X9Wcjg0t).
Usage:
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Video:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Remux:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
I tried this method. I downloaded, or created I guess the UVDConvert.php file from the linked ksv_uvd_converter.txt. I run with the syntax/example above and I get the following error in Terminal. I am using a Mac btw. Fatal error: Call to undefined function mcrypt_module_open() in /path-to-file/UVDConvert.php on line 92.
Any ideas? I downloaded the Shrek example as stated in earlier posts. I do not have issues running other php scripts.
Nevermind!!! My Fault, I will leave this post just to show the error and letting people know that I had to ensure mcrypt had to be configured correctly and PATH set. I following the following info:
Go to Terminal
Enter which php
If it says /usr/bin/php, then proceed to 3.
Enter sudo nano ~/.bash_profile (or sudo vim ~/.bash_profile if you know how to use it)
then paste this export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
ctrl - O then enter to save, then ctrl - X to exit.
restart terminal.
Enter which php
If you did it right, it should be the same as the path in #4.
I have posted a new version of my UVDConvert.php (http://pastebin.com/Nw7nfWHL) which improves working with large files and better error handling.
ItsAngel
02-21-2014, 06:25 PM
You must not be using the app mentioned at the start of this thread, or if you are using the app, you don't have netflix IPA version 4.0 or below.
The isma/ismv are microsoft formats. How are you getting these files?
That's the super HD files from the newest Netflix IPA.
It uses KEYFORMAT: Com.apple.streamingkeydelivery
Not sure if the key is stored on the device or not.
The netflix downloader won't even play these files. It plays netflix 4.0 IPA< perfectly though
ItsAngel
02-22-2014, 02:11 PM
here is my UVD Converter (http://pastebin.com/X9Wcjg0t).
Usage:
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Video:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Remux:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
Thank you SO much! I just found out how to use this and it decrypts the video seamlessly!
Does this works method on PC?
ItsAngel
02-23-2014, 09:29 AM
Does this works method on PC?
Yes it does, you must first install PHP then run the script on command prompt
henryperu77
02-23-2014, 10:59 AM
Does it work on IPAD 2?? i dont have an iphone...
Yes it does, you must first install PHP then run the script on command prompt
I asked for downloading video method not converting actually.Does the UVD converter downloads video?
ItsAngel
02-23-2014, 01:17 PM
Does it work on IPAD 2?? i dont have an iphone...
Yes it does!
ItsAngel
02-23-2014, 01:17 PM
I asked for downloading video method not converting actually.Does the UVD converter downloads video?
Sorry, this method is IOS only
Sorry, this method is IOS only
Too bad.I hope someday there will be program that can rip streams for PC.
ehurdler
02-23-2014, 02:14 PM
That's the super HD files from the newest Netflix IPA.
It uses KEYFORMAT: Com.apple.streamingkeydelivery
Not sure if the key is stored on the device or not.
The netflix downloader won't even play these files. It plays netflix 4.0 IPA< perfectly though
If you don't mind me asking what movie, tv episode, etc. did you run this on that it decrypted? I have tried with a few tv episodes from Family Guy. I have netflix version 4.0 installed from this thread. Episodes of Family guy from season 1 work with this processed laid out with no problem. Episodes from last season, 2013 do not. Processes:
Video:
Code:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
Code:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Work fine. But when I attempt to run:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
I get the error in ffmpeg:
video.ts: Invalid data found when processing input
Any ideas? Does this mean these newer episodes/video in netflix encrypted differently? Has anyone had this issue, or is it something eith ffmpeg?
If anyone else has encountered this and knows how to resolve, please let me know. Thank you
ItsAngel
02-23-2014, 04:56 PM
If you don't mind me asking what movie, tv episode, etc. did you run this on that it decrypted? I have tried with a few tv episodes from Family Guy. I have netflix version 4.0 installed from this thread. Episodes of Family guy from season 1 work with this processed laid out with no problem. Episodes from last season, 2013 do not. Processes:
Video:
Code:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
Code:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Work fine. But when I attempt to run:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
I get the error in ffmpeg:
video.ts: Invalid data found when processing input
Any ideas? Does this mean these newer episodes/video in netflix encrypted differently? Has anyone had this issue, or is it something eith ffmpeg?
If anyone else has encountered this and knows how to resolve, please let me know. Thank you
This happens to me to when I tried using netflix 4.0
Notice how the videos don't play in the universal video downloader app, only the audio does. I have the netflix 2.2 ipa on my iPad and it downloads videos in the highest possible quality on the app(740x480)
But the same app version downloads videos on the iphone at a much lower quality. But these videos decode just fine. So I just use my iPad to download videos with version 2,2 because I got the same error you did using 4,0
henryperu77
02-25-2014, 06:28 AM
This happens to me to when I tried using netflix 4.0
Notice how the videos don't play in the universal video downloader app, only the audio does. I have the netflix 2.2 ipa on my iPad and it downloads videos in the highest possible quality on the app(740x480)
But the same app version downloads videos on the iphone at a much lower quality. But these videos decode just fine. So I just use my iPad to download videos with version 2,2 because I got the same error you did using 4,0
Please could you upload the Netflix 2.2 Ipa , so i can use it on my Ipad2
Thank you
henryperu77
02-25-2014, 01:49 PM
Dude do you know if netflix 2.2 work on Ipad 2 with iOS 7.0.4??
ItsAngel
02-25-2014, 09:59 PM
Please could you upload the Netflix 2.2 Ipa , so i can use it on my Ipad2
Thank you
No problem, https://www.dropbox.com/s/je7b5u9abg9tz1l/Netflix-v2.2.1-Angel628-%28Clutch-1.4.1%29.ipa
ItsAngel
02-25-2014, 10:00 PM
Dude do you know if netflix 2.2 work on Ipad 2 with iOS 7.0.4??
I'm sure it will, test it out. https://www.dropbox.com/s/je7b5u9abg9tz1l/Netflix-v2.2.1-Angel628-%28Clutch-1.4.1%29.ipa
henryperu77
02-26-2014, 01:11 PM
What IOS are you on?
ItsAngel
02-26-2014, 10:21 PM
What IOS are you on?
Running 7.0.4 on both my iPad mini 1st gen and iPhone 5s
ItsAngel
03-24-2014, 10:57 PM
Anyone find out how to get true 720p or 1080p decrypted?
enrud
06-06-2014, 09:27 AM
I found this 4.0 IPA and have tested it and it does work. Now I can't confirm it hasn't been tampered with in anyway so just FYI.
http://uploaded.net/file/32k1g1ne
The problem with this method while it does work, is that for me full quality ends up being 720x480. While with the latest version of netflix which results in the ISMA and ISMV files are very likely full 1080p from the file sizes at 100% quality.
The key method for the ISMV files is below. I can only find very little information about that keyformat but being that HLS streaming and ISMV/ISMA are pretty well known I imagine it has to be possible to decrypt the video in a similar fashion as the AES method. I'm not sure where the key might be stored though if it is on the iOS device at all.
#EXT-X-KEY:METHOD=ISO-23001-7,URI="+g=",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
That's the super HD files from the newest Netflix IPA.
It uses KEYFORMAT: Com.apple.streamingkeydelivery
Not sure if the key is stored on the device or not.
The netflix downloader won't even play these files. It plays netflix 4.0 IPA< perfectly though
KEYFORMAT: com.apple.streamingkeydelivery
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+.
enrud
06-06-2014, 09:48 AM
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.
henryperu77
06-09-2014, 11:02 AM
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.
How i install this?
enrud
06-09-2014, 04:01 PM
How i install this?
scp the deb file to your ios device and dpkg -i to install.
enrud
06-09-2014, 09:17 PM
Anyone find out how to get true 720p or 1080p decrypted?
Yes, by disabling fairplay drm and a tweak to add the higher bitrate profiles to the authorization request. Not terribly complicated. If I get time, I'll write the tweak.
ItsAngel
06-12-2014, 07:02 AM
Yes, by disabling fairplay drm and a tweak to add the higher bitrate profiles to the authorization request. Not terribly complicated. If I get time, I'll write the tweak.
Please, I'd really appreciate it! Thanks for that first tweak too!
enrud
06-12-2014, 02:58 PM
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.
ItsAngel
06-12-2014, 04:21 PM
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.
Thanks a lot! I managed to download a video which appears to be HD due to file size, but the UVD app won't play the video, only the audio. I went to decrypt the video file like I would usually and when I got my .ts file I can't convert it or watch it anywhere, any idea how I could get the videos to play? Thanks again!
enrud
06-12-2014, 04:36 PM
Thanks a lot! I managed to download a video which appears to be HD due to file size, but the UVD app won't play the video, only the audio. I went to decrypt the video file like I would usually and when I got my .ts file I can't convert it or watch it anywhere, any idea how I could get the videos to play? Thanks again!
Did you decrypt it? Can you post the m3u8 files?
ItsAngel
06-12-2014, 06:13 PM
Did you decrypt it? Can you post the m3u8 files?
I'm sure I did decryot it, and here are all the files. I didn't include the video/audio because of file size. But here are the m3u8s https://www.dropbox.com/sh/ynohnax125q2ehh/AACPrvQmUhtsREoOHZF2jvxsa
enrud
06-12-2014, 07:45 PM
$key = file_get_contents($argv[3]);
if ($key === false)
die("Failed to open key file.");
$iv = $key;
LogDebug("Key: " . hexlify($key));
LogDebug("IV : " . hexlify($iv));
The IV isn't the same as the key.
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.
enrud
06-12-2014, 07:57 PM
To 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):
create output.ts file
for each segment:
read segment from video
read segment from audio
decrypt video
write video segment to temporary.ts file
write audio segment to temporary.aac file
ffmpeg -i temporary.ts -i temporary.aac -acodec copy -vcodec copy muxed_temporary.ts
append muxed_temporary.ts to output.ts
// then convert to mp4
ffmpeg -i output.ts -acodec copy -vcodec copy -bsf:a aac_adtstoasc output.mp4
some players won't play the audio without the "-bsf:a aac_adtstoasc" flag (windows media player, iirc).
You are getting close... :)
ItsAngel
06-12-2014, 08:08 PM
$key = file_get_contents($argv[3]);
if ($key === false)
die("Failed to open key file.");
$iv = $key;
LogDebug("Key: " . hexlify($key));
LogDebug("IV : " . hexlify($iv));
The IV isn't the same as the key.
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.
Thanks for helping me out with this! we are definitely getting there! i do have a question though, where are you finding these urls and different .ts chunks? when i download a video it comes in only one .ts file.
WHOOKIDSON
06-12-2014, 08:17 PM
Thanks for helping me out with this! we are definitely getting there! i do have a question though, where are you finding these urls and different .ts chunks? when i download a video it comes in only one .ts file.
I know you don't wanna post the entire file due to the file size but is it possible for you to post a sample of it? I'll try this out
ItsAngel
06-12-2014, 08:24 PM
I know you don't wanna post the entire file due to the file size but is it possible for you to post a sample of it? I'll try this out
Yea I'll post the entire thing. The file is untouchable basically until after its been decrypted so I wouldn't be able to split it. I have pretty bad upload speed. So give me a few. Lol
enrud
06-12-2014, 08:25 PM
Each 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? :)
ItsAngel
06-12-2014, 09:02 PM
Each 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? :)
okay, so in order to get this HD file decrypted and playable, i must remove the "junk" which is the first line in the M3u8, which in this case is "EXT-X-BYTERANGE:6772528@7520
-_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?
ItsAngel
06-12-2014, 09:19 PM
I know you don't wanna post the entire file due to the file size but is it possible for you to post a sample of it? I'll try this out
Here are all the files that are downloaded from netflix when downloading an HD video. Video/Audio files included https://www.dropbox.com/sh/ynohnax125q2ehh/AACPrvQmUhtsREoOHZF2jvxsa
enrud
06-12-2014, 09:39 PM
okay, so in order to get this HD file decrypted and playable, i must remove the "junk" which is the first line in the M3u8, which in this case is "EXT-X-BYTERANGE:6772528@7520
-_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?
Each segment specified by byte range needs to be decrypted separately. Each segment has it's own IV.
So if the first byte range starts at 6772528, then everything before it needs to be removed.
Yes I've decrypted HD content.
ItsAngel
06-12-2014, 09:43 PM
Each segment specified by byte range needs to be decrypted separately. Each segment has it's own IV.
So if the first byte range starts at 6772528, then everything before it needs to be removed.
Yes I've decrypted HD content.
oh. Okay! sorry its taking me a bit to understand.
there is many byteranges. is the only way to do it, one at a time?
and youre using a PHP script, right?
enrud
06-12-2014, 10:09 PM
oh. Okay! sorry its taking me a bit to understand.
there is many byteranges. is the only way to do it, one at a time?
and youre using a PHP script, right?
Yes. They have to be decrypted distinctly.
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.
ItsAngel
06-12-2014, 10:17 PM
Yes. They have to be decrypted distinctly.
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.
it seems as if your method is much more efficient. do you mind if i can try it out? because im fairly new to php and that might be why its so complicated for me to get this right. & thanks again for sticking around & helping me. i was never able to even know where to begin decrypting hd files until now.
WHOOKIDSON
06-13-2014, 02:38 AM
Here are all the files that are downloaded from netflix when downloading an HD video. Video/Audio files included https://www.dropbox.com/sh/ynohnax125q2ehh/AACPrvQmUhtsREoOHZF2jvxsa
Sorry no luck bro .. basically kept getting the same error as you were :(
ItsAngel
06-13-2014, 11:46 AM
Sorry no luck bro .. basically kept getting the same error as you were :(
same here, i feel like we are getting closer to being able to decrypt these HD files. Especially With The Help Of enrud. We should have this in no time!
enrud
06-13-2014, 01:38 PM
it seems as if your method is much more efficient. do you mind if i can try it out? because im fairly new to php and that might be why its so complicated for me to get this right. & thanks again for sticking around & helping me. i was never able to even know where to begin decrypting hd files until now.
OK, I wrote a python script that does what you were trying to do in php. It requires that you have already downloaded the files from the cdn. I tested it against your shrek sample. It will also work against HD stuff as well.
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.
ItsAngel
06-13-2014, 03:23 PM
OK, I wrote a python script that does what you were trying to do in php. It requires that you have already downloaded the files from the cdn. I tested it against your shrek sample. It will also work against HD stuff as well.
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.
thank you! question, every time i try running the script, i get this in response. did i miss a step?
"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>"
enrud
06-13-2014, 03:34 PM
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.
enrud
06-13-2014, 03:35 PM
pycrypto prebuilt for windows:
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
ItsAngel
06-13-2014, 03:50 PM
pycrypto prebuilt for windows:
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
this fixed it! Thank you. but now, it appears as if my computer isnt letting python create a temp file? at leas that what appears to be the issue:confused:
"
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>"
WHOOKIDSON
06-13-2014, 04:16 PM
this fixed it! Thank you. but now, it appears as if my computer isnt letting python create a temp file? at leas that what appears to be the issue:confused:
"
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>"
can you post the steps you took?
enrud
06-13-2014, 04:24 PM
the 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:
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()
Post the results
ItsAngel
06-13-2014, 05:06 PM
the 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:
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()
Post the results
edit: This is what i got
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>
enrud
06-13-2014, 05:19 PM
decryption is failing. :(
what is the movieid of the content? And can you post the M3U8 files and the key file?
ItsAngel
06-13-2014, 05:29 PM
decryption is failing. :(
what is the movieid of the content? And can you post the M3U8 files and the key file?
the movieid? and here is the video file and m3u8 + keyfiles
https://www.dropbox.com/sh/ynohnax125q2ehh/AACPrvQmUhtsREoOHZF2jvxsa
WHOOKIDSON
06-13-2014, 05:32 PM
the movieid? and here is the video file and m3u8 + keyfiles
https://www.dropbox.com/sh/ynohnax125q2ehh/AACPrvQmUhtsREoOHZF2jvxsa
I think he may be talking about the Netflix ID of it (it might be in the address bar of the video)
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 :(
enrud
06-13-2014, 05:33 PM
When 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}
ItsAngel
06-13-2014, 05:47 PM
When 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}
oh, okay. here it is
http://www.netflix.com/WiPlayer?movieid=70160211&trkid=3325854
enrud
06-13-2014, 06:17 PM
The key is wrong. Curious.
ItsAngel
06-13-2014, 06:34 PM
The key is wrong. Curious.
how is that even possible? My mess up, or is it on Netflixs Side?
enrud
06-13-2014, 06:37 PM
how is that even possible? My mess up, or is it on Netflixs Side?
Possibly UVD? The urls in the m3u8 files are incorrect too. The ranges are correct though.
ItsAngel
06-13-2014, 06:42 PM
Possibly UVD? The urls in the m3u8 files are incorrect too. The ranges are correct though.
it looks like UVD is the one malfunctioning, may you share your tweak that extracts the key/M3u8 files?
WHOOKIDSON
06-13-2014, 06:58 PM
it looks like UVD is the one malfunctioning, may you share your tweak that extracts the key/M3u8 files?
aw man we were soo close .. was Scrubs the only one you tested?
ItsAngel
06-13-2014, 07:09 PM
aw man we were soo close .. was Scrubs the only one you tested?
in HD, yea. & I can't download another one ATM, man we were SO close
enrud
06-13-2014, 07:21 PM
it looks like UVD is the one malfunctioning, may you share your tweak that extracts the key/M3u8 files?
I need to see if it still works. I haven't used it in six months.
WHOOKIDSON
06-13-2014, 07:21 PM
in HD, yea. & I can't download another one ATM, man we were SO close
Well since you already have the decrypt.py you could test another HD on your own and see if it works .. btw what is your setup .. iPhone/iPad? what iOS, Netflix ver ? .. and version of UVD? I'm going to jailbreak my iPhone 4 later on tonight and I need the appropiate files if you can upload them, thanks :cool:
ItsAngel
06-13-2014, 07:37 PM
I need to see if it still works. I haven't used it in six months.
okay, thank you. 6 months?! woah haha
ItsAngel
06-13-2014, 07:38 PM
Well since you already have the decrypt.py you could test another HD on your own and see if it works .. btw what is your setup .. iPhone/iPad? what iOS, Netflix ver ? .. and version of UVD? I'm going to jailbreak my iPhone 4 later on tonight and I need the appropiate files if you can upload them, thanks :cool:
i download the videos from an iPad Mini, Jailbroken.(obviously aha) and the latest version of netflix WITH enrud's tweak he provided in this thread.
enrud
06-13-2014, 07:48 PM
Try using the attached file.
I currently use a different method. The tweak I described in another post is an older mechanism. It worked pretty slick, though. I'll test it tomorrow.
WHOOKIDSON
06-13-2014, 07:56 PM
Try using the attached file.
I currently use a different method. The tweak I described in another post is an older mechanism. It worked pretty slick, though. I'll test it tomorrow.
:D Wow that worked nicely .. but at least for me the video plays fine but I don't hear any audio .. and I know audio is present (checked the .mp4 with Mediainfo)
WHOOKIDSON
06-13-2014, 08:25 PM
I sorta fixed that issue .. I edited the decrypt.py and changed the audio instruction in ffmpeg to "libvo_aacenc" instead of "copy"
These are the EDITED lines below
Line 96: subprocess.Popen([ffmpeg, '-i', video_temp_name, '-i', audio_temp_name, '-acodec', 'libvo_aacenc', '-vcodec', 'copy', muxed_temp_name], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
Line 111: subprocess.Popen([ffmpeg, '-i', output_temp_name, '-acodec', 'libvo_aacenc', '-vcodec', 'copy', '-bsf:a', 'aac_adtstoasc', out_file],
Now I can hear audio and it plays through out fine .. cept for you can tell a little tiny drop or something in the audio
I'm not sure at all but I think while it's decrypting in the temp folder it pieces the audio back together as full .. I believe they are in chunks so that's why it sounds like that when you play the output.mp4
As its decrypting in the temp folder I was watching it and aac files were being produced over and over I assume it was decrypting pieces by pieces then joined them all into 1 AAC then muxed with FFMPEG ..
ItsAngel
06-13-2014, 08:51 PM
Try using the attached file.
I currently use a different method. The tweak I described in another post is an older mechanism. It worked pretty slick, though. I'll test it tomorrow.
Wow, it seems as if its working! how did changing the .key file work? this is great
enrud
06-13-2014, 09:11 PM
I sorta fixed that issue .. I edited the decrypt.py and changed the audio instruction in ffmpeg to "libvo_aacenc" instead of "copy"
These are the EDITED lines below
Line 96: subprocess.Popen([ffmpeg, '-i', video_temp_name, '-i', audio_temp_name, '-acodec', 'libvo_aacenc', '-vcodec', 'copy', muxed_temp_name], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
Line 111: subprocess.Popen([ffmpeg, '-i', output_temp_name, '-acodec', 'libvo_aacenc', '-vcodec', 'copy', '-bsf:a', 'aac_adtstoasc', out_file],
Now I can hear audio and it plays through out fine .. cept for you can tell a little tiny drop or something in the audio
I'm not sure at all but I think while it's decrypting in the temp folder it pieces the audio back together as full .. I believe they are in chunks so that's why it sounds like that when you play the output.mp4
As its decrypting in the temp folder I was watching it and aac files were being produced over and over I assume it was decrypting pieces by pieces then joined them all into 1 AAC then muxed with FFMPEG ..
Transcoding the audio would imply you didn't have codecs installed for whatever it was before. I was able to play the original audio just fine.
Each audio chunk gets mixed with each corresponding video chunk. All mixed pieces are concatenation together and finally converted to .mp4
The audio pieces are not encrypted, also. Just the video.
enrud
06-13-2014, 09:13 PM
Also you only need to convert the audio once. I would do it on the second ffmpeg command. That might resolve your audio issues.
ItsAngel
06-13-2014, 09:14 PM
Transcoding the audio would imply you didn't have codecs installed for whatever it was before. I was able to play the original audio just fine.
Each audio chunk gets mixed with each corresponding video chunk. All mixed pieces are concatenation together and finally converted to .mp4
The audio pieces are not encrypted, also. Just the video.
mine too doesnt play the audio. but ill mess around with it. by the way the video is in 1080p! how awesome! how did you know what the .key file was?
WHOOKIDSON
06-13-2014, 09:26 PM
Also you only need to convert the audio once. I would do it on the second ffmpeg command. That might resolve your audio issues.
Thanks! I only edited Line 111 this time and it works .. thank you again
question .. if I DELETE Line 114 .. will it KEEP the temp.ts file?
os.unlink(output_temp_name)
Edit: It worked ..
enrud
06-13-2014, 09:33 PM
Thanks! I only edited Line 111 this time and it works .. thank you again
question .. if I DELETE Line 114 .. will it KEEP the temp.ts file?
os.unlink(output_temp_name)
Yes that will keep it.
enrud
06-13-2014, 09:35 PM
mine too doesnt play the audio. but ill mess around with it. by the way the video is in 1080p! how awesome! how did you know what the .key file was?
:D I'm clever.
WHOOKIDSON
06-13-2014, 09:54 PM
:D I'm clever.
Yes you are .. thanks!
ItsAngel
06-13-2014, 10:38 PM
:D I'm clever.
Mind sharing?😁 so I can continue downloading in HD!:D
WHOOKIDSON
06-13-2014, 10:54 PM
Mind sharing?😁 so I can continue downloading in HD!:D
Did you ever try another HD show to see if that "wrong key" was an isolated event?
ItsAngel
06-13-2014, 11:58 PM
Did you ever try another HD show to see if that "wrong key" was an isolated event?
just did, i got the same error we originally got. whatever enrud did it seems as if it needs to be done with every crypt0.key file downloaded in order for the decryption to work
WHOOKIDSON
06-14-2014, 12:33 AM
just did, i got the same error we originally got. whatever enrud did it seems as if it needs to be done with every crypt0.key file downloaded in order for the decryption to work
aww man :( wonder how or why it sends the wrong key .. kinda strange imo
ItsAngel
06-14-2014, 12:37 AM
aww man :( wonder how or why it sends the wrong key .. kinda strange imo
im assuming that UVD tweak is a bit outdated, and maybe thats why? i upgraded UVD via cydia but it seems the uprgaded version stopped supporting netflix as a whole? so i downgraded
WHOOKIDSON
06-14-2014, 12:39 AM
im assuming that UVD tweak is a bit outdated, and maybe thats why? i upgraded UVD via cydia but it seems the uprgaded version stopped supporting netflix as a whole? so i downgraded
hmm .. good point there .. I'm sure it's possible that it is outdated .. can you upload the UVD you currently use? I can't access cydia atm
and wow @ they stopped supporting Netflix
ItsAngel
06-14-2014, 01:00 AM
hmm .. good point there .. I'm sure it's possible that it is outdated .. can you upload the UVD you currently use? I can't access cydia atm
and wow @ they stopped supporting Netflix
im not sure how to post a cydia tweak on here tbh.
and i know! im not sure if the creator purposely stopped supporting it or if its a bug, but the upgraded version doenst give me the option to download netflix videos.im really looking forward to a way to get the correct key files
WHOOKIDSON
06-14-2014, 01:04 AM
im not sure how to post a cydia tweak on here tbh.
and i know! im not sure if the creator purposely stopped supporting it or if its a bug, but the upgraded version doenst give me the option to download netflix videos.im really looking forward to a way to get the correct key files
Ok .. I'll just look for it tomorrow in Cydia .. which version of UVD do you use, so I can test myself? I'll try that one first before I try the latest/updated UVD ;)
ItsAngel
06-14-2014, 01:28 AM
Ok .. I'll just look for it tomorrow in Cydia .. which version of UVD do you use, so I can test myself? I'll try that one first before I try the latest/updated UVD ;)
the version i use comes native in cydia in the BigBoss Repo its is Universal Video Downloader 1.1.1
To get the updated version you must add this repo HarrisonApps.com/repo :D
WHOOKIDSON
06-14-2014, 01:56 AM
the version i use comes native in cydia in the BigBoss Repo its is Universal Video Downloader 1.1.1
To get the updated version you must add this repo HarrisonApps.com/repo :D
Thanks for the info! :D
ItsAngel
06-14-2014, 12:50 PM
Thanks for the info! :D
No problem:D
TSimpsons
06-14-2014, 03:30 PM
here is my UVD Converter (http://pastebin.com/X9Wcjg0t).
Usage:
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Video:
php UVDConvert.php 100000-1.m3u8 1043168926.ts.prdy crypt0.key video.ts
Audio:
php UVDConvert.php en-64000.m3u8 1043128474.aac crypt0.key audio.aac
Remux:
ffmpeg -i video.ts -i audio.aac -bsf:a aac_adtstoasc -c copy movie.mp4
Hi, can you give me the link for download UVD Converter? & where i put that code?
Im spanish, sorry for the typing :P
TSimpsons
06-14-2014, 03:33 PM
Hi, it works for you? How can i download UVD Converter? I wanto to convert the PRDY video File for watch in my computer.
Thanks
TSimpsons
06-14-2014, 03:48 PM
No problem:D
Hi, it works for you? How can i download UVD Converter? I wanto to convert the PRDY video File for watch in my computer.
Thanks
ItsAngel
06-14-2014, 04:00 PM
Hi, it works for you? How can i download UVD Converter? I wanto to convert the PRDY video File for watch in my computer.
Thanks
It's not a program that you download. It's a PHP script that you run through CMD line. And you can download the script from a link on page 2 I believe
TSimpsons
06-14-2014, 04:14 PM
It's not a program that you download. It's a PHP script that you run through CMD line. And you can download the script from a link on page 2 I believe
Thanks, i went to secong page, KSV put this link. http://pastebin.com/X9Wcjg0t
But dont have any script...
WHOOKIDSON
06-14-2014, 04:15 PM
Thanks, i went to secong page, KSV put this link. http://pastebin.com/X9Wcjg0t
But dont have any script...
https://github.com/K-S-V/Scripts
ItsAngel
06-14-2014, 04:28 PM
Thanks, i went to secong page, KSV put this link. http://pastebin.com/X9Wcjg0t
But dont have any script...
that is the script. save the text on notepad and save it as UVD.php
and then google how to use php script" php can be a bit confusing. but with a bit of research and basic computer knowledge you'll have it in no time:D
TSimpsons
06-14-2014, 04:29 PM
https://github.com/K-S-V/Scripts
Thanks!!!!!
How can i install PHP? I have to do this right?
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
Tnanks again :)
ItsAngel
06-14-2014, 04:39 PM
Thanks!!!!!
How can i install PHP? I have to do this right?
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
Tnanks again :)
yea, follow those steps
TSimpsons
06-14-2014, 04:53 PM
https://github.com/K-S-V/Scripts
yea, follow those steps
Ok. Sorry for the disturb...so I make this steps
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
and make the UVD.php with this code..
https://github.com/K-S-V/Scripts/blob/master/UVDConvert.php
now what i have to put in CMD coman for convert? :o
Thanks
ItsAngel
06-14-2014, 05:02 PM
Ok. Sorry for the disturb...so I make this steps
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
and make the UVD.php with this code..
https://github.com/K-S-V/Scripts/blob/master/UVDConvert.php
now what i have to put in CMD coman for convert? :o
Thanks
use this, rename the text in <> as your files are
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
TSimpsons
06-14-2014, 06:01 PM
use this, rename the text in <> as your files are
php UVDConvert.php <m3u8_file> <ts.prdy_file> <key_file> <output_file>
Can you give me an example? what is m3u8? in ts.prdy i have to put the file name? in key?
Thanks so much for helping :^)
TSimpsons
06-14-2014, 06:41 PM
Can you give me an example? what is m3u8? in ts.prdy i have to put the file name? in key?
Thanks so much for helping :^)
Sorry. I think heres the example
http://stream-recorder.com/forum/showpost.php?p=64407&postcount=13
ItsAngel
06-14-2014, 08:19 PM
Sorry. I think heres the example
http://stream-recorder.com/forum/showpost.php?p=64407&postcount=13
Did you figure it out okay?
TSimpsons
06-14-2014, 10:13 PM
Did you figure it out okay?
I dont know. I have edited the text:
php UVDConvert.php 100000.m3u8 346686550.ts.prdy crypt0.key video.ts
What i have to do now :s
Tnks
ItsAngel
06-14-2014, 10:32 PM
I dont know. I have edited the text:
php UVDConvert.php 100000.m3u8 346686550.ts.prdy crypt0.key video.ts
What i have to do now :s
Tnks
If you convert it to MP4 and it plays, you did good. If not you tried to decrypt an HD video and I'm not sure how to decrypt HD videos yet, still waiting on enrud reply:D
WHOOKIDSON
06-14-2014, 11:45 PM
I'm not sure how to decrypt HD videos yet, still waiting on enrud reply:D
same here bro, hopefully he comes around with some useful info again :)
enrud
06-15-2014, 10:31 AM
same here bro, hopefully he comes around with some useful info again :)
Still working on it. Having to update my ios build environment.
TSimpsons
06-15-2014, 12:57 PM
If you convert it to MP4 and it plays, you did good. If not you tried to decrypt an HD video and I'm not sure how to decrypt HD videos yet, still waiting on enrud reply:D
But i dont know how to convert.:( thats the step i want to know. I have to use a CMD comand?? I already have installed PHP
ItsAngel
06-15-2014, 01:30 PM
Still working on it. Having to update my ios build environment.
Thank you! This really does mean a lot! Thanks for taking your time to do it.
WHOOKIDSON
06-15-2014, 06:11 PM
Still working on it. Having to update my ios build environment.
Thanks for the progress update bro :)
TSimpsons
06-15-2014, 10:02 PM
http://savepic.net/5773789m.png (http://savepic.net/5773789.htm)
One picture says more than a thousand words. Thanks so much:D :D :D
TSimpsons
06-16-2014, 08:00 PM
Thank you! This really does mean a lot! Thanks for taking your time to do it.
hi iTsAngel.. sorry for my english.. im from spanish :P
Im doing this:
http://fotos.subefotos.com/391dc86dcfc49c9b007ccaa7618bf0a4o.png
Now when i press enter it says this:
http://fotos.subefotos.com/34b7b24570cae407a875da581aa430ddo.png
I installed php-for-dummies-windows-only with this steps:
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
Is missig something on this step??:
http://fotos.subefotos.com/329db368e3a42c9706d4067089051316o.png
i never used cmd and scripts... php :confused:
Thanks everyone for help me. :D
WHOOKIDSON
06-16-2014, 08:09 PM
hi iTsAngel.. sorry for my english.. im from spanish :P
Im doing this:
http://fotos.subefotos.com/391dc86dcfc49c9b007ccaa7618bf0a4o.png
Now when i press enter it says this:
http://fotos.subefotos.com/34b7b24570cae407a875da581aa430ddo.png
I installed php-for-dummies-windows-only with this steps:
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
Is missig something on this step??:
http://fotos.subefotos.com/329db368e3a42c9706d4067089051316o.png
i never used cmd and scripts... php :confused:
Thanks everyone for help me. :D
Did you try this step and get it to show you the verison of PHP you installed?
Open cmd prompt and type php -v. if you have done above steps correctly then you will see something like following.
PHP 5.4.21 (cli) (built: Oct 16 2013 21:09:16)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
ItsAngel
06-16-2014, 09:05 PM
hi iTsAngel.. sorry for my english.. im from spanish :P
Im doing this:
http://fotos.subefotos.com/391dc86dcfc49c9b007ccaa7618bf0a4o.png
Now when i press enter it says this:
http://fotos.subefotos.com/34b7b24570cae407a875da581aa430ddo.png
I installed php-for-dummies-windows-only with this steps:
https://github.com/K-S-V/Scripts/wiki#installing-php-for-dummies-windows-only
Is missig something on this step??:
http://fotos.subefotos.com/329db368e3a42c9706d4067089051316o.png
i never used cmd and scripts... php :confused:
Thanks everyone for help me. :D
Try using that command line but don't include the fest "php" just start with UVDConverter.php
WHOOKIDSON
06-16-2014, 09:07 PM
Try using that command line but don't include the fest "php" just start with UVDConverter.php
Sup bro .. I know the HD doesn't work but what is the highest quality you can get off of Netflix currently? is it still 720x404?
henryperu77
06-16-2014, 09:58 PM
Ok Guys i did it.. i decrypted the Scrubs HD sample :D
We need to wait for Enrud to post his method to get the files and the .key :D
ItsAngel
06-16-2014, 10:04 PM
Sup bro .. I know the HD doesn't work but what is the highest quality you can get off of Netflix currently? is it still 720x404?
Yea that's the best as of rn. Hopefully not for long👌:D
ItsAngel
06-16-2014, 10:05 PM
Ok Guys i did it.. i decrypted the Scrubs HD sample :D
We need to wait for Enrud to post his method to get the files and the .key :D
Awesome! I'm glad we are getting this close to finally being able to decrypt all the HD videos we want! With huge help from Enrud of course👌
TSimpsons
06-16-2014, 10:06 PM
Did you try this step and get it to show you the verison of PHP you installed?
Yes, and appears: PHP is not recognized....
But i follow all the steps, maybe I've done wrong this step
add following string to the end of Path Variable
;C:\PHP (i tried <;C:\PHP> and <C:\PHP>
http://fotos.subefotos.com/329db368e3a42c9706d4067089051316o.png
or maybe i have to install another version?
Try using that command line but don't include the fest "php" just start with UVDConverter.php
Same message.
Will search how to fix it in google.
Thanks. :) :rolleyes: :D ;)
henryperu77
06-16-2014, 10:07 PM
Just one thing.., the audio its only 64kbps..., it is the only quality available??
henryperu77
06-16-2014, 10:27 PM
I just checked the original .aac file with mediainfo
Audio
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 2
Format profile : HE-AAC / LC
Bit rate mode : Variable
Minimum bit rate : 106 Kbps
Maximum bit rate : 205 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz / 24.0 KHz
Compression mode : Lossy
Stream size : 10.1 MiB (100%)
But when i do the same on the resulted mp4 the audio its different, the bitrate is low
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : HE-AAC / LC
Codec ID : 40
Duration : 22mn 7s
Bit rate mode : Variable
Bit rate : 62.7 Kbps
Maximum bit rate : 64.1 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz / 24.0 KHz
Compression mode : Lossy
Delay relative to video : -3s 754ms
Stream size : 9.92 MiB (1%)
Was the audio reencoded with ffmpeg ??
*This was from the Scrubs HD sample*
ItsAngel
06-16-2014, 11:16 PM
I just checked the original .aac file with mediainfo
Audio
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 2
Format profile : HE-AAC / LC
Bit rate mode : Variable
Minimum bit rate : 106 Kbps
Maximum bit rate : 205 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz / 24.0 KHz
Compression mode : Lossy
Stream size : 10.1 MiB (100%)
But when i do the same on the resulted mp4 the audio its different, the bitrate is low
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : HE-AAC / LC
Codec ID : 40
Duration : 22mn 7s
Bit rate mode : Variable
Bit rate : 62.7 Kbps
Maximum bit rate : 64.1 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz / 24.0 KHz
Compression mode : Lossy
Delay relative to video : -3s 754ms
Stream size : 9.92 MiB (1%)
Was the audio reencoded with ffmpeg ??
*This was from the Scrubs HD sample*
Yea, I assume it does get encoded, but the audio isn't encrypted so if you'd like, I'm sure you can use a third party app to mUx the audio with the decrypted HD video and it'll be the original HQ audio file with no loss of quality
WHOOKIDSON
06-17-2014, 06:50 AM
Any1 know how to extract key files out of the memory? or even Wireshark?
WHOOKIDSON
06-17-2014, 09:32 AM
Can download the AAC (audio) // MP4 (video) with Wireshark but cannot sniff/find the "crypt0.key" for anything :(
henryperu77
06-17-2014, 11:21 AM
Can download the AAC (audio) // MP4 (video) with Wireshark but cannot sniff/find the "crypt0.key" for anything :(
Wireshark? on Ios?
enrud
06-17-2014, 12:29 PM
I've given up fixing my build environment.. Grr... Getting protobuf and boost to work on IOS was not working. So I've simplified the tweak to not be dependent on those. I'll be working testing the tweak shortly.
ItsAngel
06-17-2014, 02:34 PM
I've given up fixing my build environment.. Grr... Getting protobuf and boost to work on IOS was not working. So I've simplified the tweak to not be dependent on those. I'll be working testing the tweak shortly.
Thank you for the update! And the work you're putting in. Hopefully you get this tweak working again :D
ItsAngel
06-17-2014, 02:40 PM
Can download the AAC (audio) // MP4 (video) with Wireshark but cannot sniff/find the "crypt0.key" for anything :(
How are you running wire shark on iOS?
ItsAngel
06-17-2014, 02:56 PM
Can download the AAC (audio) // MP4 (video) with Wireshark but cannot sniff/find the "crypt0.key" for anything :(
How are you running wire shark on iOS?
WHOOKIDSON
06-17-2014, 07:05 PM
I've given up fixing my build environment.. Grr... Getting protobuf and boost to work on IOS was not working. So I've simplified the tweak to not be dependent on those. I'll be working testing the tweak shortly.
Thank you for the time and effort bro :D
WHOOKIDSON
06-17-2014, 07:26 PM
How are you running wire shark on iOS?
I couldn't jailbreak my iPhone because my update (7.0.4) was done OTA (Over The Air) which means it was updated through tha phone via wifi. It needed to be done from iTunes only. And since Apple stopped signing older FW (7.0.4/7.0.6) I couldn't even downgrade or upgrade to either if I wanted to. Now I know for future references :p
So I had to use my S4 Android phone instead of my iPhone. I downloaded tPacketCapture and it works like TCPDUMP. It saves the info it generates to a *.pcap file which can then be loaded in WireShark.
Finding and downloading the MP4 Video (Encrypted) and the AAC Audio (Not Encrypted) files are easy. My problem is looking for and locating the "crypt0.key" file or even something that looks like it inside of Wireshark :(
And tbh I'm not even sure which type of streaming the Netflix android app uses. On iDevices it uses Apple HLS. On Windows it uses Silverlight. I'm not sure what android uses. And I don't think it's Adobe HDS
WHOOKIDSON
06-18-2014, 11:43 PM
Due to popular demand, we've made the code to the Universal Video Downloader open-source. Pull requests are welcome.
https://github.com/harrisonapps/Universal-Video-Downloader
ItsAngel
06-19-2014, 01:11 AM
https://github.com/harrisonapps/Universal-Video-Downloader
I saw this on their Facebook...but I have no clue how to work with cydia apps coding, unfortunately :(
henryperu77
06-19-2014, 12:24 PM
Universal Video Downloader 1.1.1 its very unestable, sometimes will get an incorrect crypt0.key
I was trying to downlad a tvshow and i had multiples errors like this on some episodes.., its very annoying.
UVD 1.1.3 doesnt work on my Netflix :(
ItsAngel
06-19-2014, 01:10 PM
Universal Video Downloader 1.1.1 its very unestable, sometimes will get an incorrect crypt0.key
I was trying to downlad a tvshow and i had multiples errors like this on some episodes.., its very annoying.
UVD 1.1.3 doesnt work on my Netflix :(
yea, ive noticed that a lot of the issue is with UVD. lets hope some one is Code savy enough to fix UVD with the open source code
WHOOKIDSON
06-20-2014, 08:36 AM
Universal Video Downloader 1.1.1 its very unestable, sometimes will get an incorrect crypt0.key
I was trying to downlad a tvshow and i had multiples errors like this on some episodes.., its very annoying.
UVD 1.1.3 doesnt work on my Netflix :(
is there an UVD 1.1.2 somewhere out there?
WHOOKIDSON
06-20-2014, 10:50 AM
KEYFORMAT: com.apple.streamingkeydelivery
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+.
Is it possible to use something like cydia substrate to make a tweak for Netflix 2.2 by adding support for SuperHD streams? or will that somehow confuse the NetflixSDK and still have them send down incorrect keys from believing that the Netflix version is one of tha latest ones because it's requesting SuperHD streams which are only used by the Fairplay DRM?
I believe that is what's happening atm .. when you made the tweak for tha latest Netflix by disabling Fairplay DRM and adding the HD bitrate profiles .. the Netflix app still sends out "fairplay drm" version of m3u8/*encrypted* keys thinking it's using Fairplay DRM and not Playready because of the type of file (HD) you requested.
Could that be a possiblity as to why we are getting incorrect keys? or no? just a theory I had came up with
CristianoA
06-20-2014, 12:41 PM
anyone tried use GetFLV 9.6.6.1 ?
WHOOKIDSON
06-20-2014, 12:57 PM
anyone tried use GetFLV 9.6.6.1 ?
I haven't .. does GetFLV still have that iPad Mode ? I would love to figure out if that'll work :)
ItsAngel
06-21-2014, 01:40 AM
anyone tried use GetFLV 9.6.6.1 ?
I'm sure it won't work because this is all via an IOS App. Not through the web browser
ItsAngel
06-21-2014, 01:42 AM
BTW UVD app is being weird, even if I have the right keys it won't play my video on the iPad, I know it's the right key because it will decrypt on my computer perfectly fine, but it won't play on UVD. It's really strange. Frustrating really.
WHOOKIDSON
06-21-2014, 08:20 AM
BTW UVD app is being weird, even if I have the right keys it won't play my video on the iPad, I know it's the right key because it will decrypt on my computer perfectly fine, but it won't play on UVD. It's really strange. Frustrating really.
are you talkin' about the *decrypted video (mp4) won't play on your iPad? or the *original .ts.prdy file(s) ?
ItsAngel
06-21-2014, 10:59 AM
are you talkin' about the *decrypted video (mp4) won't play on your iPad? or the *original .ts.prdy file(s) ?
Original .ts.prdy files. I download them, make sure the right key is there and it still won't play in the UVD app but if I decryot it on the computer using the same .key file it decrypts fine...it's weird haha
WHOOKIDSON
06-21-2014, 11:13 AM
Original .ts.prdy files. I download them, make sure the right key is there and it still won't play in the UVD app but if I decryot it on the computer using the same .key file it decrypts fine...it's weird haha
HD files? sounds like it's looking for the *wrong key (the one it sent originally) .. even tho you provided it with the *right key
ItsAngel
06-21-2014, 11:48 AM
HD files? sounds like it's looking for the *wrong key (the one it sent originally) .. even tho you provided it with the *right key
but they were playing just fine at first! now only one of the HD files i switched keys works and the others that worked before dont, i click on them and it eternally esays loading lol. it happened out of nowhere too. i tried reinstalling UVD but no luck
ItsAngel
06-21-2014, 11:50 AM
also, quick question. does the python code make ffmpeg REENCODE(lossy) the TS file, or does it only mux the vid and audio then convert it to MP4 WITHOUT reenoding?(lossless)
WHOOKIDSON
06-21-2014, 11:56 AM
also, quick question. does the python code make ffmpeg REENCODE(lossy) the TS file, or does it only mux the vid and audio then convert it to MP4 WITHOUT reenoding?(lossless)
it only muxes it (no re-encoding)
WHOOKIDSON
06-21-2014, 11:58 AM
but they were playing just fine at first! now only one of the HD files i switched keys works and the others that worked before dont, i click on them and it eternally esays loading lol. it happened out of nowhere too. i tried reinstalling UVD but no luck
lol wow I dunno .. probably a small bug maybe
CristianoA
06-21-2014, 03:59 PM
I haven't .. does GetFLV still have that iPad Mode ? I would love to figure out if that'll work :)
yes Safari Kernel (iPad) and Android Kernel
WHOOKIDSON
06-21-2014, 05:41 PM
yes Safari Kernel (iPad) and Android Kernel
nahh it didn't work .. thanks tho
Error -302 when loading url nflx://www.netflix.com/Browse?q=trkid%3D7728649%26action%3Dplay%26source% 3Dmerchweb%26target_url%3Dhttp%253A%252F%252Fmovi. es%252FBWEfV
TSimpsons
06-25-2014, 08:00 PM
Try using that command line but don't include the fest "php" just start with UVDConverter.php
Hi. It wasnt working beacause dosnt have the php.exe in the PHP folder :D . Now i have but when i enter this
php UVDConvert.php 100000-1.m3u8 104316892.ts.prdy crypt0.key video.ts
(im working with this file: https://www.dropbox.com/s/vuglh751a9...le%20shrek.zip)
It dosnt appears anything...
I have to put the files in the UVD folder? If dont, where i have to put the files (psry, m3u8, crypt0, etc)?
thanks.
arcangel3ac
08-29-2014, 05:43 AM
Hi!, I was testing the UVDConvert.php and it works perfect. But the audio and video are out of sync.
I got it on FFMPEG:
[aac @ 0000000002b8f8a0] Estimating duration from bitrate, this may be inaccurate
any ideas??
arcangel3ac
09-02-2014, 01:08 PM
Today I get this error:
[NULL @ 00000000002f9e80] Multiple RDBs per frame with CRC is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Failed to open bitstream filter aac_adtstoasc for stream 0 with codec copy: Not yet implemented in FFmpeg, patches welcome
[mp4 @ 0000000002f3e4c0] aac bitstream error
ItsAngel
09-05-2014, 11:14 AM
nahh it didn't work .. thanks tho
Hey do you, or anyone have netflix version 6.0 they can shoot my way. If it's installed crack it then send it? My "update automatically" feature was turned on & the new netflix update kills this downloading feature, sadly. Thanks
BlueCop
09-05-2014, 08:53 PM
I have the 6.0 ipa backed up on my computer. I reinstalled it with ifunbox. I tried out the tweak.
No netflix videos play for me with the tweak enabled. I tried saving anyway and they didnt play in uvd either. They also don't seem to decrypt.
I can make an ipa with Clutch but i am not sure it will work. I tried both versions of his tweak with it. I couldn't produce usable results.
Did you have this working recently?
ItsAngel
09-05-2014, 10:34 PM
I have the 6.0 ipa backed up on my computer. I reinstalled it with ifunbox. I tried out the tweak.
No netflix videos play for me with the tweak enabled. I tried saving anyway and they didnt play in uvd either. They also don't seem to decrypt.
I can make an ipa with Clutch but i am not sure it will work. I tried both versions of his tweak with it. I couldn't produce usable results.
Did you have this working recently?
Could you send it my way please? Last time I used it it was fine but given, I hadn't used it for about 2 weeks before I tried again and realized my netflix app updated itself. If you could please send it my was so I can do a bit more testing please. I fear netflix has caught on.
BlueCop
09-06-2014, 11:44 AM
what are you results currently?
I don't really have a way to host it.
krystallinity
09-06-2014, 03:46 PM
You can get it here:
https://thefilebay.com/14bS/
For me, sub-HD downloads through Netflix 4.0 are working, but the equivalent HD downloads through Netflix 6.0 + the tweak are not.
By not working I mean that the downloads aren't giving me any crypt0.key, and for the video .m3u8 I have this:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=ISO-23001-7,
URI="f10niQg0DsZqw5uIro8MDucooPo=",
KEYFORMAT="com.apple.streamingkeydelivery",
KEYFORMATVERSIONS="1"
#EXT-X-MAP:URI="http://23.246.6.145/?o=AQGST62xhTHsk1jsUJHdtSI4ryVV4kye3ZFYFbTgvJKrhw3 SkDEAulihIXOeFm662b7G4n4UiY0e4_ElClKi6g9te9cfl2m6k 2FKRT8dtMS5SlhYArKXZV4Z1BVEKWdaBRxgHbg&v=3&e=1410065726&t=2-KEygddY3nVRFovfQcFObAptDg",
BYTERANGE="2067@0"
#EXT-X-PROGRAM-DATE-TIME:2014-09-06T16:55:25.000-04:00
...instead of the equivalent "crypt0.key" and "#EXT-X-KEY:METHOD=AES-128"
I installed the tweak through adding it to a repository + Cydia.
BlueCop
09-06-2014, 05:10 PM
when I have the tweak installed it limits me to lower quality streams with netflix 6.0. It won't even play anything in HD. It will only download the higher qualities with the tweak disabled. they use the com.apple.streamingkeydelivery though.
I can save the same content over and over with version 6 and it produces a different crypt0.key each time. The video file(always named -_2) and m3u8 are always identical. The m3u8 offsets are correct too. Universal Video Downloader also doesn't download a separate audio file with netflix version 6.
I just tried on Netflix version 4 and I am unable to decrypt those downloads either. Universal Video Downloader does download a seperate audio file with version 4. it is unencrypted.
The video file UVD downloads is identical from version 4 and version 6. They always seems to have different keys.
The different crypt0.key each time makes me think that Universal Video Downloader isn't extracting/grabbing the key correctly with version 6 or version 4 for me.
What iOS version, Devices, and UVD version are you guys successful with? It seems to me we should be able to grab the correct AES key from memory by modifying Universal Video Downloader.
I have tried on iphone 5s ios 7.1.2 , ipad 3 ios 7.1.2, and iphone 4 7.0.4. all with the default UVD from cydia.
I know the video player is getting the correct key because the content is being played. It has to be a bug in how it retrieves the key.
krystallinity
09-06-2014, 06:54 PM
when I have the tweak installed it limits me to lower quality streams with netflix 6.0. It won't even play anything in HD. It will only download the higher qualities with the tweak disabled. they use the com.apple.streamingkeydelivery though.
I can save the same content over and over with version 6 and it produces a different crypt0.key each time. The video file(always named -_2) and m3u8 are always identical. The m3u8 offsets are correct too. Universal Video Downloader also doesn't download a separate audio file with netflix version 6.
I just tried on Netflix version 4 and I am unable to decrypt those downloads either. Universal Video Downloader does download a seperate audio file with version 4. it is unencrypted.
The video file UVD downloads is identical from version 4 and version 6. They always seems to have different keys.
The different crypt0.key each time makes me think that Universal Video Downloader isn't extracting/grabbing the key correctly with version 6 or version 4 for me.
What iOS version, Devices, and UVD version are you guys successful with? It seems to me we should be able to grab the correct AES key from memory by modifying Universal Video Downloader.
I have tried on iphone 5s ios 7.1.2 , ipad 3 ios 7.1.2, and iphone 4 7.0.4. all with the default UVD from cydia.
I know the video player is getting the correct key because the content is being played. It has to be a bug in how it retrieves the key.
I'm using iOS 7.1.0 with an iPhone 5, UVD 1.1.1 and Cydia...
With Netflix 4.0 I get 720x480 files and a crypt0.key that successfully decrypts the files.
EDIT:
I installed Netflix 6.0 + tweak through SSH and it's giving me the same problem as here:
when I have the tweak installed it limits me to lower quality streams with netflix 6.0. It won't even play anything in HD. It will only download the higher qualities with the tweak disabled. they use the com.apple.streamingkeydelivery though.
It downloads the higher qualities with the tweak disabled...but no crypt0.key.
But when you enable the tweak it only gives you lower quality videos.
BlueCop
09-06-2014, 09:42 PM
I downgraded my iphone 4 to iOS 5.1.1 just to do some tests. I wanted to try iOS 6 but my shsh blobs had bad ap tickets from cydia.
Unfortunately iOS 5 will not run netflix 6 because it requires iOS 6.
The files won't decrypt from Netflix 4 on iOS 5.1.1. It seems to be the same behaviors as 7.1.2 for me.
How are you guys getting valid keys? UVD hasn't worked for single time to get a valid key for me.
You guys currently have this working with netflix 4? The same content will download the exact same file. The key is always incorrect though.
BlueCop
09-06-2014, 11:27 PM
I was finally successful in getting the correct keys. I was able to decrypt all my tests.
They put dynamic protection on the internal media key server. It was randomly faking key responses when any check failed. That has to be defeated for UVD to save the correct key.
ItsAngel
09-07-2014, 02:02 AM
You can get it here:
https://thefilebay.com/14bS/
For me, sub-HD downloads through Netflix 4.0 are working, but the equivalent HD downloads through Netflix 6.0 + the tweak are not.
By not working I mean that the downloads aren't giving me any crypt0.key, and for the video .m3u8 I have this:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=ISO-23001-7,
URI="f10niQg0DsZqw5uIro8MDucooPo=",
KEYFORMAT="com.apple.streamingkeydelivery",
KEYFORMATVERSIONS="1"
#EXT-X-MAP:URI="http://23.246.6.145/?o=AQGST62xhTHsk1jsUJHdtSI4ryVV4kye3ZFYFbTgvJKrhw3 SkDEAulihIXOeFm662b7G4n4UiY0e4_ElClKi6g9te9cfl2m6k 2FKRT8dtMS5SlhYArKXZV4Z1BVEKWdaBRxgHbg&v=3&e=1410065726&t=2-KEygddY3nVRFovfQcFObAptDg",
BYTERANGE="2067@0"
#EXT-X-PROGRAM-DATE-TIME:2014-09-06T16:55:25.000-04:00
...instead of the equivalent "crypt0.key" and "#EXT-X-KEY:METHOD=AES-128"
I installed the tweak through adding it to a repository + Cydia.
I'm just stuck at why HD stopped downloading with the crypt0.key and started with the streamkey. When enrud made the tweak to allow HD downloads through crypt0.key method.. I hope we can just adjust the tweak and get it working and hope netflix has stopped supporting HD files in the crypt0.key format because they got tipped off by our methods detailed here on this forum. Thanks for the IPA by the way!
I was finally successful in getting the correct keys. I was able to decrypt all my tests.
They put dynamic protection on the internal media key server. It was randomly faking key responses when any check failed. That has to be defeated for UVD to save the correct key.
How did you accomplish this, I just had an old netflix version installed on my phone old netflix IPAs download the right keys then I'd just transfer them to the HD file.
BlueCop
09-07-2014, 07:50 AM
The netflix API returns dynamic responses. They can change the way the app functions by changing configurations returned to the app. They can change it to add dynamic checks whenever they want. They are probably intentionally filtering those high qualities.
UVD downloading is also really obvious to their servers. It doesn't attempt to replicate a real client. It has its own User Agent. It is apparent to netflix when you download any video with it.
Just a FYI. One can get Netflix 4.3.1 from the app store on iOS 5.1.1. I would speculate that the only reason that version is still supported is the iPad 1 being stuck on iOS 5.
BTW I bypassed the media server checks by playing around in cycript inside the Netflix process. I am attempting to see if I can enable higher qualities.
Here is a little hint for you.
[{"requestType":"Key","validationStrategy":[{"operator":"AND","conditions":[{"conditionType":"HeaderSessionIdPresence","operator":"AND"},{"conditionType":"HeaderUserAgentPresence","operator":"OR"}]}],"responseStrategy":"RandomlyFakeResponse"}]
so it checks for header session id and user agent on crypt0.key. The "RandomlyFakeResponse" explains the behavior I observed.
BlueCop
09-07-2014, 10:45 AM
Does anyone know a way to extract the encrypted offsets from the cenc encrypted mp4 files?
The offsets are available in the headers in some binary form. I am looking into parsing directly from the file rather then m3u8.
ItsAngel
09-07-2014, 10:55 AM
The netflix API returns dynamic responses. They can change the way the app functions by changing configurations returned to the app. They can change it to add dynamic checks whenever they want. They are probably intentionally filtering those high qualities.
UVD downloading is also really obvious to their servers. It doesn't attempt to replicate a real client. It has its own User Agent. It is apparent to netflix when you download any video with it.
Just a FYI. One can get Netflix 4.3.1 from the app store on iOS 5.1.1. I would speculate that the only reason that version is still supported is the iPad 1 being stuck on iOS 5.
BTW I bypassed the media server checks by playing around in cycript inside the Netflix process. I am attempting to see if I can enable higher qualities.
Here is a little hint for you.
so it checks for header session id and user agent on crypt0.key. The "RandomlyFakeResponse" explains the behavior I observed.
Woah, I didn't know UVD made it obvious, also I have no experience with Cycript but I'll do some googling, I'm sure Netflix is filtering these, I'm almost 100% someone on Netflixs end has read this thread and reported back. That's why they are now filtering things. Hopefully with your experience with app coding and such you can come to some conclusion
Does anyone know a way to extract the encrypted offsets from the cenc encrypted mp4 files?
The offsets are available in the headers in some binary form. I am looking into parsing directly from the file rather then m3u8.
And what do you mean by this? I thought netflix didn't deliver in a MP4 container but in TS
BlueCop
09-07-2014, 11:12 AM
CENC is mp4. CENC (Common Encryption) is used on the DASH netflix streams. CENC enables them to distribute a single file with encrypted parts using one key. It allows them to use different DRM schemes to distribute that same key in different ways.
There is a lot of unencrypted data in the MP4 describing the encrypted parts. It also includes a KID(Key ID) so one can identify which key it was encrypted with.
I am looking for libraries to parse the mp4 into its boxes so I can try to interpret more of the information inside. Sometimes the actual content AES key is encrypted inside one of these mp4 boxes.
BlueCop
09-07-2014, 11:42 AM
One can still get playready keys for non-HD content. I am still unsure how to enable higher qualities.
I would make a tweak but I don't really know how. I haven't done that before. You can modify it while running with cycript though.
cycript -p Netflix
choose(BuiltinConfig)[0]->_mediaServerValidationPolicy = null
will null the media server validation and allow UVD to get the correct key. This with the tweak to disable DashFairplayStreams from this thread allows UVD to function on the current Netflix version. It will only allow the SD streams though.
You can also grab the correct key from memory like this
choose(NetflixPlaybackSession)[0]->playReadyKey_
actually the current version of UVD and Netflix won't save the audio stream actually.
ItsAngel
09-07-2014, 12:10 PM
One can still get playready keys for non-HD content. I am still unsure how to enable higher qualities.
I would make a tweak but I don't really know how. I haven't done that before. You can modify it while running with cycript though.
cycript -p Netflix
choose(BuiltinConfig)[0]->_mediaServerValidationPolicy = null
will null the media server validation and allow UVD to get the correct key. This with the tweak to disable DashFairplayStreams from this thread allows UVD to function on the current Netflix version. It will only allow the SD streams though.
You can also grab the correct key from memory like this
choose(NetflixPlaybackSession)[0]->playReadyKey_
actually the current version of UVD and Netflix won't save the audio stream actually.
I made a tweak with Flex, I uploaded it. Not sure if you use flex but you should check it out. I've disabled the FairPlay streams but again that kills HD streams. I named it "Netflix Nfdrm tweak inspect"
BlueCop
09-07-2014, 05:52 PM
I haven't used flex. I will check it out.
I found something interesting. The KeyID is the same for the HLS and DASH streams(just endian swapped but flagged as such). This makes me think the keys we have for the SD will work for for HD.
The problem is I think they are using subsample encryption. This mixes encrypted and unencrypted data.
The video track is divided into samples and sub samples. The M3U8 actually just provides the offset and length of each sample. The samples are sub divided into subsamples with unencrypted parts. All encrypted sub samples are treated as a contiguous block for decryption though. So we would need a way to read the subsamples are a contiguous segment to decrypt it properly. I don't know the proper way to read the needed meta-data to accomplish this.
So I believe we have everything to decrypt the HD streams but need a way to properly decrypt it.
I am looking into libraries that could parse the mp4 atoms for me. I found the PIFF Sample Encryption box atom which has the list of IVs and which parts are encrypted and which parts are clear.
krystallinity
09-08-2014, 02:56 AM
I haven't used flex. I will check it out.
I found something interesting. The KeyID is the same for the HLS and DASH streams(just endian swapped but flagged as such). This makes me think the keys we have for the SD will work for for HD.
The problem is I think they are using subsample encryption. This mixes encrypted and unencrypted data.
The video track is divided into samples and sub samples. The M3U8 actually just provides the offset and length of each sample. The samples are sub divided into subsamples with unencrypted parts. All encrypted sub samples are treated as a contiguous block for decryption though. So we would need a way to read the subsamples are a contiguous segment to decrypt it properly. I don't know the proper way to read the needed meta-data to accomplish this.
So I believe we have everything to decrypt the HD streams but need a way to properly decrypt it.
I am looking into libraries that could parse the mp4 atoms for me. I found the PIFF Sample Encryption box atom which has the list of IVs and which parts are encrypted and which parts are clear.
Thanks for all of this research! This is getting me all excited!
BlueCop
09-08-2014, 04:19 AM
I wouldn't get too excited. I am not sure I will accomplish anything.
I saved some 1080p H264/AC3 streams via my chromecast. I have been attempting to parse them for decryption(same KeyID). the 5.1 AC3 stream is unencrypted like the 2.0 AAC tracks. The highest quality I was able to save via an iPad was 720p and stereo sound.
I have been examining the files in isoviewer (https://github.com/sannies/isoviewer/releases) currently. It allows you to examine most of the atom data.
I was hoping to find a good mp4 atom parser for python. I haven't found much that works to get the information I need. I will probably have to pore over the standards to figure out all the structures.
if anyone is good with java they could use https://github.com/sannies/mp4parser which is what the isoviewer was made from. I haven't really coded much java though.
BlueCop
09-08-2014, 09:41 AM
I tried to use mp4box to perform the decryption. I believe this is PIFF and CENC compatible file. It always seg faults when attempting to decrypt though.
http://gpac.wp.mines-telecom.fr/mp4box/encryption/common-encryption/
I wrote something to parse the file and decrypt the encrypted NALs. I couldn't get it to work properly though. I would just get a green screen with some corruption at the top on playback.
I discovered http://www.bok.net/trac/bento4/ after doing that. I attempted to use their mp4decrypt to decrypt. That file also didn't seem to work either.
I am not sure if the decryption is incorrect or the key is just wrong.
BlueCop
09-08-2014, 06:15 PM
I am giving up on decrypting these other formats. I can't seem to get it working. I don't think the key is correct even though the Key IDs used are the same. I was looking at the source for mp4decrypt and it supports PIFF with AES CTR mode. So if we have the correct key then it should work to decrypt those files.
ItsAngel
09-08-2014, 10:49 PM
I am giving up on decrypting these other formats. I can't seem to get it working. I don't think the key is correct even though the Key IDs used are the same. I was looking at the source for mp4decrypt and it supports PIFF with AES CTR mode. So if we have the correct key then it should work to decrypt those files.
So you're trying to decrypt the apple.Streamkey files right?
I think we should try(as I've been unsuccessfully) to get HD in the playready method (the way that's easy to decrypt) like before. I'm not sure what netflix is doing to prevent us from getting the HD files but I'm determined to find a work around.
BlueCop
09-08-2014, 11:04 PM
ItsAngel: yeap I believe they are moving all the clients to the new DASH format with Common Encryption because it supports multiply drm schemes. I know they at least support fairplay and playready concurrently using the same AES key for the same file. They have several DRM specific boxes in the mp4 that contain the needed data for the drm module to retrieve the key.
They could turn off HLS support completely. They already limit quality options. I think they only really support it still for ipad1.
ItsAngel
09-08-2014, 11:18 PM
ItsAngel: yeap I believe they are moving all the clients to the new DASH format with Common Encryption because it supports multiply drm schemes. I know they at least support fairplay and playready concurrently using the same AES key for the same file. They have several DRM specific boxes in the mp4 that contain the needed data for the drm module to retrieve the key.
They could turn off HLS support completely. They already limit quality options. I think they only really support it still for ipad1.
You sure they have the same .key files even tho they use different key delivery methods? If that's the case then the crypt0.key file from another file can ultimately decrypt an Apple.streamkey file? Hmm I'm going to test it out
BlueCop
09-09-2014, 12:10 AM
They use the same Key ID. It is the key identifier and not the key. it identifies the key it was encrypted with.
The same content(movie or specific episode) was using the same keyID in the files. So that indicated they were encrypted with the same key. That is the whole point of what I have been attempting.
The decryption could be failing because I didn't implement the IV counter for AES_CTR correctly. They use a 64bit IV. It is expaned to 128bit by padding. I am not sure I did that right.
I thought maybe we could get the apple media play to play it correctly. The "#EXT-X-MAP:URI=" value needs to be changed to the name of the local video file UVD downloads. It is actually pointing to data embedded in the file.(length:2067 @ offset 0)
the "#EXT-X-KEY:METHOD=" value of ISO-23001-7 indicates a CENC(Common Encryption) for the video. I thought maybe we could bypass the key delivery by changing the URI to the local key file. I could never get it working. I am not sure if I should remove or change the value of the keyformat.
#EXTM3U
#EXT-X-KEY:METHOD=ISO-23001-7,
URI="f10niQg0DsZqw5uIro8MDucooPo=",
KEYFORMAT="com.apple.streamingkeydelivery",
KEYFORMATVERSIONS="1"
#EXT-X-MAP:URI="http://23.246.6.145/?o=AQGST62xhTHsk1jsUJHdtSI4ryVV4kye3ZFYFbTgvJKrhw3 SkDEAulihIXOeFm662b7G4n4UiY0e4_ElClKi6g9te9cfl2m6k 2FKRT8dtMS5SlhYArKXZV4Z1BVEKWdaBRxgHbg&v=3&e=1410065726&t=2-KEygddY3nVRFovfQcFObAptDg",
BYTERANGE="2067@0"
#EXT-X-KEY:METHOD=AES-128,URI="crypt0.key"
The files also have header values that indicate wedevine(google) drm support. I really think this format is going to be used in their future for a while.
Edit: I'm an idiot. I misread the Kids. It is actually incremented by 1. The decryption was simply failing because the key was wrong.
00000000-03C1-23FC-0000-000000000000
00000000-03C1-23FD-0000-000000000000
ItsAngel
09-09-2014, 10:11 AM
They use the same Key ID. It is the key identifier and not the key. it identifies the key it was encrypted with.
The same content(movie or specific episode) was using the same keyID in the files. So that indicated they were encrypted with the same key. That is the whole point of what I have been attempting.
The decryption could be failing because I didn't implement the IV counter for AES_CTR correctly. They use a 64bit IV. It is expaned to 128bit by padding. I am not sure I did that right.
I thought maybe we could get the apple media play to play it correctly. The "#EXT-X-MAP:URI=" value needs to be changed to the name of the local video file UVD downloads. It is actually pointing to data embedded in the file.(length:2067 @ offset 0)
the "#EXT-X-KEY:METHOD=" value of ISO-23001-7 indicates a CENC(Common Encryption) for the video. I thought maybe we could bypass the key delivery by changing the URI to the local key file. I could never get it working. I am not sure if I should remove or change the value of the keyformat.
The files also have header values that indicate wedevine(google) drm support. I really think this format is going to be used in their future for a while.
Edit: I'm an idiot. I misread the Kids. It is actually incremented by 1. The decryption was simply failing because the key was wrong.
00000000-03C1-23FC-0000-000000000000
00000000-03C1-23FD-0000-000000000000
I was trying the same thing as you. So do you think by changing that key to be the same we could get the file playing in UVD. That's ultimately what needs to happen, if we can get the file playing in IVD then we can decrypt it.
BlueCop
09-09-2014, 10:59 AM
We would still need a program to decrypt it. Apples player can do CENC. mp4decrypt might work but that hasn't really been confirmed.
BlueCop
09-09-2014, 01:18 PM
Does anyone know more about the video and audio profile values?
Values with Fairplay DASH Enabled
@{"video":@[6,7,8,9],"audio":@[24582,24588]}
Values with Fairplay DASH Disabled - HLS streaming
@{"video":@[19,16],"audio":@[24584]}
contentProfiles with nfdrm quality tweak(also disables fairplay dash)
@{"video":@[19,16,17,18],"audio":@[24584]}
so it inserts 17 and 18. This doesn't seem to work though.
Does anyone have a list of content profiles? I was going to play with modifying these but wasn't sure what to use.
BlueCop
09-10-2014, 06:25 PM
I found some more information...
the fairplay streaming key url is modified by UVD. The original looks more like this.
skd://netflix/AAAABAAAAAAD0WX938O7NZ/lEP/7WDg6urvmT5yjzMeLP/WcEJWnvzxNb6M=
the value is a base64 encoded data from data in the pssh(Protection Specific Header Box)with a system ID of 0x29701FE43CC74A348C5BAE90C7439A47 in the video file itself.
It also retrieves an application certificate signed by apple that is some how used in the process of retrieving the key.
For the the old playready HLS streams I think the decryption key is actually stored in the video itself in an encrypted envelope. I don't know the details of how that works though.
WHOOKIDSON
09-11-2014, 06:11 AM
someone post a sample along with the key and I'll see what's up
@ItsAngel .. what's going on man? long time no see :)
BlueCop
09-11-2014, 06:33 AM
WHOOKIDSON: what are you looking for? Can you get the new fairplay keys? the old play ready is easily available. If you blank the MediaServer Validation policy and UVD downloads the correct key. You can also grab if from memory.
I wrote a little piece of code to verify the Content Key against the KeyID with the playready header checksum. This will allow you to know if you have the correct key for a given KeyID.
I have been using it to check for correct key responses.
from Crypto.Cipher import AES
import base64
def keyChecksum(key,keyID):
encrypter = AES.new(key, AES.MODE_ECB)
encData = encrypter.encrypt(keyID)
return base64.b64encode(encData[:8])
The only thing that is post-abled from UVD from the new videos is the mangled key url from the original "skd://netflix/" value. Like I said that is just a value from the pssh box atom in the mp4. It is in the clear in the file. It is drm specific info to get the key and not the key itself.
Do you know how the streaming key delivery functions? I hooked into to several functions to follow the processing of the "skd://" fairplay response. The response was rather large.
BlueCop
09-12-2014, 11:19 PM
I can see the fairplay license responses but I am not sure how to parse or process them to get the correct key. There are other ways to get the content keys though.
I wrote a tool to parse the mp4(dash/piff/cenc) files originally to decrypt the files. I added the option to check a content key with the header checksum and key id. I also added an option to recreate the original m3u8 with just the video file. It parses the sidx atom box to get the correct offsets and the pssh box for the sdk:// value.
my decryption is broken though. I am still trying to figure out the problem exactly. I think i am doing something wrong with the iv.
mp4decrypt (http://www.bok.net/trac/bento4/) works to decrypt the files though if you can get the right key. You need to specify the track id and key to decrypt. I still want to get my script working correctly.
anyone who might know how to properly process these fairplay responses. drop me a pm. I am having trouble figuring it out.
henryperu77
11-20-2014, 01:20 PM
Any news on this?
Kii-lon
11-24-2014, 01:22 AM
Wow you guys...I never thought that you all were able to rip Netflix videos! Awesome job!
I would like to add to henryperu77's post and ask how the progress on decrypting the Netflix videos
through the various different DRMs that you all mentioned?
From what I read, I'm getting the feeling that non of y'all aren't able to download and decrypt the HD videos
on Netflix which is a shame...but are able to decrypt the SD videos which is alright.
You know what would be nice?
A way to do this, somehow or someway, through a computer!
That is if there are possible ways to do so...
I don't have an iOS device so I can't do anything about this...yeah.
Though it's possible to use an Android emulator on a computer but I doubt there's a way
to download/decrpyt Netflix videos on the device from what I read...
I don't know, but I would like to ask a simple question.
To BlueCop, if you're still on these forums (unlike Enrud since he hasn't replied in months unfortunately), do
you have any news/updates on the progress of decrypting netflix videos?
It would be nice if you can explain any new progress on this interesting topic! =)
That is all and i'm off!
ItsAngel
11-24-2014, 02:48 AM
Wow you guys...I never thought that you all were able to rip Netflix videos! Awesome job!
I would like to add to henryperu77's post and ask how the progress on decrypting the Netflix videos
through the various different DRMs that you all mentioned?
From what I read, I'm getting the feeling that non of y'all aren't able to download and decrypt the HD videos
on Netflix which is a shame...but are able to decrypt the SD videos which is alright.
You know what would be nice?
A way to do this, somehow or someway, through a computer!
That is if there are possible ways to do so...
I don't have an iOS device so I can't do anything about this...yeah.
Though it's possible to use an Android emulator on a computer but I doubt there's a way
to download/decrpyt Netflix videos on the device from what I read...
I don't know, but I would like to ask a simple question.
To BlueCop, if you're still on these forums (unlike Enrud since he hasn't replied in months unfortunately), do
you have any news/updates on the progress of decrypting netflix videos?
It would be nice if you can explain any new progress on this interesting topic! =)
That is all and i'm off!
We actually were able to download AND decrypt HD Netflix movies/tv shows. But it appears that Netflix caught wind of this and since then stopped allowing HD streams in a decryptable method. The SD streams can still be downloaded & decrypted.
Kii-lon
11-25-2014, 12:41 AM
We actually were able to download AND decrypt HD Netflix movies/tv shows. But it appears that Netflix caught wind of this and since then stopped allowing HD streams in a decryptable method. The SD streams can still be downloaded & decrypted.
Ah I see, that sucks a lot I gotta say.
Indeed...but at least you can still download SD videos though!
So...are there any leads/theories on how to circumvent and decrpyt HD
Streams? I was reading this whole thread and saw some things by Enrud.
Say what happen to him?
If I recall correctly, didn't he figured out a way to decrypt HD streams and was
gonna upload some tweak or something to do it?
It's odd that he round up and disappeared without keeping us updated or
something on that method of his.
Oh well, at least BlueCop has progressed a bit on figuring out a way to rip HD
Netflix streams though is stuck at the moment, leading someone who knows
Fairplay decrytion or whatnot to help him.
...I wonder if any of y'all did some testing on playready HD.
Or tried the android app and see if there's any different encryption that may
help you in getting the HD streams.
Yup!
...Say, before I go...I have a question to ask y'all about Playready.
Playready is, I believe, a Microsoft encryption/streaming media thing right?
As in an ISM Media Container?
Do you guys know how to download and say...decrypt ISM files?
If yes, please pm me a way to do so as I would like to know how to properly
decrypt an ISM file. (requiring a key or somesort.)
This isn't related to Netflix by the way but to something else that you read on the "ISM Downloader" thread here:
http://stream-recorder.com/forum/showpost.php?p=72039&postcount=37
That is all, thanks and see ya!
Any idea how to rip the subtitles with UVD? Or another method of getting them.
reydson
02-02-2015, 09:50 AM
I have an iPad 4 running iOS 8.1.3, it has never been jailbroken. If I do jailbreak my iPad will I be able to download at least the SD videos?
TSimpsons
02-02-2015, 07:36 PM
I have an iPad 4 running iOS 8.1.3, it has never been jailbroken. If I do jailbreak my iPad will I be able to download at least the SD videos?
yes, but i think jailbreak it doesnt released for 8.1.3... i think so...
reydson
02-03-2015, 03:08 AM
I have downgraded to iOS 8.1.2 and did Jailbreak my iPad 4, installed UVD 1.1.3 but I have no idea how to install Netflix 4.0 on my iDevice. Tried syncing it with iTunes but had no luck. Tried using AppCake but it won't install Netflix 4.0, it always gives me an error.
TSimpsons
02-03-2015, 08:17 AM
I have downgraded to iOS 8.1.2 and did Jailbreak my iPad 4, installed UVD 1.1.3 but I have no idea how to install Netflix 4.0 on my iDevice. Tried syncing it with iTunes but had no luck. Tried using AppCake but it won't install Netflix 4.0, it always gives me an error.
you can install vshare by going to vshare.com on your ipad and clic on download. in vshare search for netflix and select versions> and download the one that says 1886761, it worked for me. i have ios 6. i never used ios 8 so im not sure if will work fine.
I dont know howw to convert the video for watch in the pc... i just use for watch in the UVD app. Someone else could help with UVD Converter... i have no idea:confused:
reydson
02-03-2015, 06:55 PM
you can install vshare by going to vshare.com on your ipad and clic on download. in vshare search for netflix and select versions> and download the one that says 1886761, it worked for me. i have ios 6. i never used ios 8 so im not sure if will work fine.
I dont know howw to convert the video for watch in the pc... i just use for watch in the UVD app. Someone else could help with UVD Converter... i have no idea:confused:
Hey, TSimpsons, thanks to you I was finally able to download and decrypt some videos.
The problem now is when I run the php script and it muxes the audio and the video you can see some problems in the audio. It is out of sync and some times you get some "blank" milliseconds. I tried muxing the audio directly with MKVToolnix and it outputs several erros:
Warning: '/Users/reydson/Movies/audio.aac' track 0: Skipping 118 bytes (no valid AAC header found). This might cause audio/video desynchronisation.
Apparently the audio is in sync, but will it play on other devices?
TSimpsons
02-04-2015, 03:22 PM
Hey, TSimpsons, thanks to you I was finally able to download and decrypt some videos.
The problem now is when I run the php script and it muxes the audio and the video you can see some problems in the audio. It is out of sync and some times you get some "blank" milliseconds. I tried muxing the audio directly with MKVToolnix and it outputs several erros:
Warning: '/Users/reydson/Movies/audio.aac' track 0: Skipping 118 bytes (no valid AAC header found). This might cause audio/video desynchronisation.
Apparently the audio is in sync, but will it play on other devices?
I played the audio.aac on mpc-hc player and it have many ''blank'' parts to, i fix that problem by converting with pazera free audio extractor.. after that it plays without errors.
Here the link
http://www.videohelp.com/download/Pazera_Free_Audio_Extractor_PORTABLE_21.zip
Sorry for my english i speak spanish :D
reydson
02-05-2015, 03:22 AM
Anybody knows how to run the script on a Mac?
I am tired of running in a virtual machine...
reydson
03-01-2015, 07:42 PM
Is anybody still trying a way to download HD content in the ts.prdy + aac and crypt0.key format?
It would be really nice to be able to at least download 720p...
Manual
03-02-2015, 04:07 PM
If anyone figured out how to download 720p by now he'll just keep it to himself.
enrud
03-09-2015, 04:02 PM
Does anyone know more about the video and audio profile values?
Values with Fairplay DASH Enabled
Values with Fairplay DASH Disabled - HLS streaming
contentProfiles with nfdrm quality tweak(also disables fairplay dash)
so it inserts 17 and 18. This doesn't seem to work though.
Does anyone have a list of content profiles? I was going to play with modifying these but wasn't sure what to use.
Sorry for being away for a while. Life got busy.
The content profiles specify what a player is capable of playing. Adding profiles 17, 18 added the higher bitrate profiles; however, Netflix is no longer providing those profiles regardless of what you say you can play.
Content Profiles (Video)
----------------------------
"playready-mpeg4p2-piff" = 1
"playready-h264bpl30-piff" = 2
"playready-h264mpl30-piff" = 3
"playready-h264mpl31-piff" = 4
"playready-h264mpl40-piff" = 5
"playready-h264bpl30-dash" = 6
"playready-h264mpl30-dash" = 7
"playready-h264mpl31-dash" = 8
"playready-h264mpl40-dash" = 9
"playready-h264shpl30-dash" = 10
"playready-h264shpl31-dash" = 11
"playready-h264shpl40-dash" = 12
"none-h264mpl30-dash" = 13
"none-h264mpl31-dash" = 14
"none-h264mpl40-dash" = 15
"playready-h264mpl30-m2ts" = 16
"playready-h264mpl31-m2ts" = 17
"playready-h264mpl40-m2ts" = 18
"playready-h264mpl13-m2ts" = 19
Audio profiles
------------------------------
"ddplus-5.1-piff" = 24577
"heaac-2-piff" = 24578
"playready-oggvorbis-2-piff" = 24579
"playready-oggvorbis-2-dash" = 24580
"ddplus-5.1-dash" = 24581
"heaac-2-dash" = 24582
"playready-heaac-2-dash" = 24583
"heaac-2-elem" = 24584
"dd-5.1-elem" = 24585
"heaac-2-m2ts" = 24586
"dd-5.1-m2ts" = 24587
"dd-5.1-dash" = 24588
Subtitle profiles
---------------------
"simplesdh" = 49153
"webvtt-lssdh-ios" = 49154
Anyone making progress on Fairplay or PlayReady on windows? What's the state of key retrieval from an IBX?
enrud
03-10-2015, 10:11 AM
For the the old playready HLS streams I think the decryption key is actually stored in the video itself in an encrypted envelope. I don't know the details of how that works though.
You are correct. The reason for this is because of incompatibility between playready and HLS. HLS requires an AES-CBC-128 key whereas playready uses an AES-CTR-128 key. Netflix worked around this by encoding the HLS key in the encrypted envelope and then using playready to decode that key. That was the whole weakness in the HLS mechanism. At some point the Netflix app had to decrypt that envelope, grab the key and pass it off to the iOS player. And it was that point where key extraction was occurring.
Now with Fairplay, the key is not passed in the clear and extracting the key would require breaking Fairplay.
I suspect Netflix will try and drop HLS streaming as soon as possible. I would if I were them. Doing so would require Apple to either support IOS 6 on all devices or backporting Fairplay/Dash support to IOS5.
Manual
03-10-2015, 08:28 PM
It's funny because in the end you can still use a screen capture software and get a decent quality. :D
enrud
03-11-2015, 02:14 PM
It's funny because in the end you can still use a screen capture software and get a decent quality. :D
Even funnier, I could care less about downloading. What I enjoy is solving puzzles which in this case is breaking DRM.
FWIW, I think I've figured out how to extract keys from the PlayReady IBX.
piratko
03-13-2015, 12:17 PM
FWIW, I think I've figured out how to extract keys from the PlayReady IBX.
I'm very much interested. Would you care to share please?
ItsAngel
03-15-2015, 06:05 PM
Even funnier, I could care less about downloading. What I enjoy is solving puzzles which in this case is breaking DRM.
FWIW, I think I've figured out how to extract keys from the PlayReady IBX.
So glad you're back!! Please PM me about the playready key extraction when you get the chance. Also don't post it publicly because I'm 90% sure that some people from Netflix have read some of these posts.
enrud
03-16-2015, 10:36 AM
So glad you're back!! Please PM me about the playready key extraction when you get the chance. Also don't post it publicly because I'm 90% sure that some people from Netflix have read some of these posts.
Yanking out the private keys from the IBX is going to be much tougher than I anticipated. :) Still working on it though.
ItsAngel
03-21-2015, 08:16 PM
Yanking out the private keys from the IBX is going to be much tougher than I anticipated. :) Still working on it though.
Okay man, just keep me posted please😁
BlueCop
03-22-2015, 10:48 AM
enrud: I was extracting the playready public/private key pairs from a rooted chromecast. It also stores a database of XMR licenses that I could then decrypt for the content key. I have a lot of scripts for handling the XMR and playready certificate chains. It can verify privates keys and do some useful functions. I also have an MP4 atom box parsers that I meant to eventually handle decryption. I never got the code working like mp4decrypt though. I can specify the track id and content key with mp4decrypt and get correctly dercypted videos.
I investigated the silverlight playready IBX on windows and mac but it seemed heavily obfuscated. They use white box AES so the content keys aren't stored in the clear in memory. I never had much luck with the silver light IBX. I also investigated the actual silverlight request to MS that individualized the blackbox. It allowed me to generate a bunch of IBX files and certificate chains to compare.
It was interesting learning about Eliptic Curve Crypto. I have some code that can decrypt many XMR licenses to content keys. Some are special cases where they are different types of licenses(ex. leaf or seed key). I have a bunch of test XMRs collected from various playready ios apps(ex. amazon instant), chromecast, windows and mac silverlight.
The patent applications for XMR and playready were really helpful in figuring out all the various binary fields. I think I have a list of the interesting patents on another computer. here is an example http://www.google.co.in/patents/US20060265758
I wanted to publish a toolkit for playready but wasn't sure the best way to do that. I haven't really looked at it in a while. I know there are private playready hacks around because decrypted versions of playready exclusive content is available around on the web.
The chromecast has a few DRM libraries that were much easier to load into hexrays IDA Pro/decompiler because they weren't obfuscated as the SL IBX. It really helped me figured out a lot of the head scratchers.
enrud
03-24-2015, 12:52 PM
enrud: I was extracting the playready public/private key pairs from a rooted chromecast. It also stores a database of XMR licenses that I could then decrypt for the content key. I have a lot of scripts for handling the XMR and playready certificate chains. It can verify privates keys and do some useful functions. I also have an MP4 atom box parsers that I meant to eventually handle decryption. I never got the code working like mp4decrypt though. I can specify the track id and content key with mp4decrypt and get correctly dercypted videos.
I investigated the silverlight playready IBX on windows and mac but it seemed heavily obfuscated. They use white box AES so the content keys aren't stored in the clear in memory. I never had much luck with the silver light IBX. I also investigated the actual silverlight request to MS that individualized the blackbox. It allowed me to generate a bunch of IBX files and certificate chains to compare.
It was interesting learning about Eliptic Curve Crypto. I have some code that can decrypt many XMR licenses to content keys. Some are special cases where they are different types of licenses(ex. leaf or seed key). I have a bunch of test XMRs collected from various playready ios apps(ex. amazon instant), chromecast, windows and mac silverlight.
The patent applications for XMR and playready were really helpful in figuring out all the various binary fields. I think I have a list of the interesting patents on another computer. here is an example http://www.google.co.in/patents/US20060265758
I wanted to publish a toolkit for playready but wasn't sure the best way to do that. I haven't really looked at it in a while. I know there are private playready hacks around because decrypted versions of playready exclusive content is available around on the web.
The chromecast has a few DRM libraries that were much easier to load into hexrays IDA Pro/decompiler because they weren't obfuscated as the SL IBX. It really helped me figured out a lot of the head scratchers.
Sent you a PM.
Manual
03-26-2015, 11:09 AM
Does anyone know if subtitles are encrypted or not?
enrud
03-26-2015, 12:26 PM
Does anyone know if subtitles are encrypted or not?
They definitely aren't for HLS streaming. For mpeg-dash, I honestly don't know but I suspect they aren't.
zipdude778
03-27-2015, 12:12 PM
Any progress?
ASSauLTxMasTER
03-27-2015, 05:58 PM
For some reason, UVD only plays audio now, even on the 4.0 IPA.
reydson
03-27-2015, 08:30 PM
It is still working fine here. I'm using Netflix 6.0 and UVD 1.1.3.
belindaschull
05-05-2015, 08:34 AM
Is this still working?
ScarAce1989
05-05-2015, 01:32 PM
Any news on decrypting HD streams?
Jinjoni
05-06-2015, 07:19 PM
I just read through a lot of stuff here. So, maybe I'm a bit confused. Is this at all possible to to just get SD rips on Windows? Would someone please advise on how I can get SD only rips from a Windows 7 64bit machine. Even if I have to use virtual box to run an apple IOS.
Jinjoni
05-06-2015, 10:03 PM
OK. It appears that I have UVDConvert.php working properly in windows 7. Will you please just tell me the proper steps to get the m3u8_file, ts.prdy_file and the key_file please?
ASSauLTxMasTER
05-09-2015, 02:51 PM
I just read through a lot of stuff here. So, maybe I'm a bit confused. Is this at all possible to to just get SD rips on Windows? Would someone please advise on how I can get SD only rips from a Windows 7 64bit machine. Even if I have to use virtual box to run an apple IOS.
You need to pull it from the iOS app.
OK. It appears that I have UVDConvert.php working properly in windows 7. Will you please just tell me the proper steps to get the m3u8_file, ts.prdy_file and the key_file please?
After ripping the video with Universal Video Downloader, move the folder to somewhere, then follow KSV's steps.
Jinjoni
05-09-2015, 04:40 PM
You need to pull it from the iOS app.
After ripping the video with Universal Video Downloader, move the folder to somewhere, then follow KSV's steps.
Thank you very much for taking the time to help me along. I think I'm starting to get the hang of it. I'm a slow learner. :o
Jinjoni
05-10-2015, 06:09 AM
Please help me solve two problems.
1. I am only able to find version 1.1.1 of Universal Video Downloader.
2. When I download a NetFlix movie there is no key_file or ts.prdy_file.
What am I doing wrong here?
ItsAngel
05-11-2015, 09:41 AM
Please help me solve two problems.
1. I am only able to find version 1.1.1 of Universal Video Downloader.
2. When I download a NetFlix movie there is no key_file or ts.prdy_file.
What am I doing wrong here?
The .ts.prdy and key only download in older Netflix app versions, is it will only download in standard quality since Netflix found out about this method.
Hazrd
05-17-2015, 10:48 AM
Hi , i was able to download from netflix ; i get an isma and ismv files , there are many ismv each one for one quality (360p , 480p ,etc) and one isma
The audio plays fine ,but i cant play the video in PC
Here is the link , please download quickly , i will deleted
http://198.38.124.181/931489062.ismv?c=pe&n=6147&v=3&e=1431909934&t=4drKM_KU87vPxXMfWBRJgJCjVNI&p=6.gENkJ6SMT3eUfQEzaPbDx4zMY4PZPGj7RJm7eLwGJmE
Any help to decrypt de video?Thank anyways
zipdude778
05-21-2015, 05:36 AM
Hazrd,
Can I get a copy of the files?
The link seems to not work anymore. Maybe due to NF blocking it, or some cookie/ip related mismatch.
I am happy to help! :)
mrberni
06-04-2015, 10:32 AM
I want to download only the audio from a film on Netflix and read here that the audio isn't encrypted. Is this still the case? What exactly do I need to download the audio? I don't have an iPhone or iPad.
Thanks in advance.
henryperu77
06-30-2015, 09:47 AM
Hey guys, now you can find Netflix shows decrypted on the internet.. Example NTB group released all x-files season 01, it includes 5.1 sound and subtitles.. So they found a way to do it.., hope the info will be public soon
reydson
06-30-2015, 12:55 PM
I saw that. But the file sizes are huge.
Ripping the subtitles is easy. The problem is ripping the HD video.
I hope somebody shares a method. I don't think the NTb files are recorded because they have the complete ending credits, which would be cut off by the "next episode" screen, so I strongly believe there is a method to download and decrypt those files.
Manual
06-30-2015, 04:36 PM
NTB isn't "downloaded" but probably captured through HDMI output.
vBulletin® , Copyright ©2000-2025, Jelsoft Enterprises Ltd.