K-S-V / Scripts

Collection of my scripts
GNU General Public License v3.0
635 stars 226 forks source link

One Solution to Akamai DRM stream #58

Closed crafmed closed 8 years ago

crafmed commented 8 years ago

I created a simple internet player that generate valid f4f fragments from akamai DRM encrypted streams. The fragments can be processed by adobeHDS, generating a flv file, and further by ffmpeg to generate a seekable mp4 file.

My script fragments the decrypted stream in 2,5mb f4f files, while playing the stream in normal speed (normal version) or in an acelerated manner (fast version). It uses a javascript-swf interface created by me, after modifing akamai swf provider file.

It uses blob to generated and download the fragments, so it not compatible with all browsers versions. In chrome works nice. It's just experimental, each fragment will be saved with the name victory_Seg1-Fragxx.f4f. Further implementation could make it more customizable.

Please check: http://aspspider.ws/crafmed/player_fast.asp http://aspspider.ws/crafmed/player.asp

Example: http://ici.radio-canada.ca/regions/saguenay-lac/2015/10/11/004-ovni-ufologie-luc-vincent-signalement.shtml?isAutoPlay=1

For the beginners: 1) All the files hosted (.js, .swf, .asp) can by placed in localserver keeping functionality.

2) In order to use the player, you should copy the manifest.f4m 'signed by time' link to the form and click play. Use browser developer mode to find the f4m link. (e.g. http://cp125678-f.akamaihd.net/z/diffusion/2015/10/medianet/ckrs/2015-10-11_17_00_00_tjsag_0000_01_,500,800,1200,.mp4.csmil/manifest.f4m?hdnea=st=1444679627~exp=1447271627~acl=/z/diffusion/2015/10/medianet/ckrs/2015-10-11_17_00_00_tjsag_0000_01_*~hmac=9c7713c4dba8bc7b657880a86b9f12f8b9b4afd0ae8cb672a470705698bc7fdf&hdcore=3.7.0).

3) If the manifest contains more the one quality level, the player will choose the best one.

K-S-V commented 8 years ago

Akamai media encryption is already supported by the latest AdobeHDS script (https://github.com/K-S-V/Scripts/commit/605e33406991c346f08ae3ac16e95c749579653d). so your solution won't be really useful at the moment. personally I had somewhat similar solution for private use before the decryption support was added to the script.