VideoHelp Forum




+ Reply to Thread
Results 1 to 3 of 3
  1. I use freevine to download from Pluto in 720p without ads and drm, and sometimes it shows that there is a 1080p stream available, but Freevine is unable to access it (I think "ERROR: The 'file' scheme is not supported" means the server returned an Access denied error saying 1080p is not available for streaming via m3u8 drm free scheme).
    Is there a way to download a 1080p stream from Pluto? (which is probably available only in a drm protected mpd for certain devices and not available for PCs web browsers).
    For example Have Gun Will Travel (region locked for United States) season 5 episodes 23, 24, 25 should have a 1080p stream according to Freevine.
    pluto.tv/us/on-demand/series/635317c8f2de430013c325cd/season/5

    14:15:17.786 INFO : N_m3u8DL-RE (Beta version) 20241203
    14:15:17.800 INFO : Loading URL: tmp\manifest.m3u8
    14:15:17.802 INFO : Content Matched: HTTP Live Streaming
    14:15:17.803 INFO : Parsing streams...
    14:15:17.803 WARN : Master List detected, try parse all streams
    14:15:17.804 WARN : Writing meta json
    14:15:17.805 INFO : Extracted, there are 7 streams, with 6 basic streams, 0 audio streams, 1 subtitle streams
    14:15:17.805 INFO : Vid 1920x1080 | 4084 Kbps | 30 | avc1.640028,mp4a.40.2
    14:15:17.805 INFO : Vid 1216x684 | 2398 Kbps | 30 | avc1.64001F,mp4a.40.2
    14:15:17.805 INFO : Vid 1024x576 | 1669 Kbps | 30 | avc1.64001F,mp4a.40.2
    14:15:17.805 INFO : Vid 854x480 | 1179 Kbps | 30 | avc1.64001F,mp4a.40.2
    14:15:17.806 INFO : Vid 640x360 | 777 Kbps | 30 | avc1.64001F,mp4a.40.2
    14:15:17.806 INFO : Vid 426x240 | 476 Kbps | 30 | avc1.64001F,mp4a.40.2
    14:15:17.806 INFO : Sub subtitles | en | English | describes-music-and-sound
    14:15:17.806 INFO : Parsing streams...
    14:15:17.876 ERROR: The 'file' scheme is not supported.​
    Quote Quote  
  2. I just checked, and you can actually access the encrypted 1080p stream in a browser if you change /video/576p-1600/00001.m4s to /video/1080p-4500/00001.m4s
    The question is, how to find out if L3 cdm can get the keys for it?
    Quote Quote  
  3. I figured it out.
    Their SD widevine keys work for HD streams including 1080p and their license server accepts any L3 cdm including Android Studio, so we can easily get the keys via Widevine Proxy extension (I used Firefox, but it should also work in Chrome).
    If I'm not mistaken there is no way to get an mpd without ads from Pluto, so you have to use a trick to access a full video without ads by changing 00001.m4s url path.
    In Firefox/Chrome Developer Tools choose to search for m4s files in the Network tab, and you will notice that Pluto cuts the video on the server side to serve ads like that:
    .../dash/0-42400/video/360p-600/00001.m4s
    so we have to trick Pluto to serve us the full 1080p video stream chunks without ads by changing the url path like that:
    .../dash/0-end/video/1080p-4500/00001.m4s

    Please note, that a 1080p stream is rarely available on Pluto, it is only accessible when the m4s full url path contains the string 1080pDRM.

    Without an mpd you have to download init.mp4 + hundreds .m4s chunks manually via curl, merge them into source.mp4 and decrypt source.mp4 with the keys from Widevine Proxy by using mp4decrypt (the same method applies to an audio stream, or you can simply use freevine or devine to get an uncrypted video and audio in a mkv containter, and then replace the video stream in that file in MKVtoolnix with the manually downloaded one).

    Here is an example:
    .../dash/0-end/video/1080p-4500/init.mpd
    .../dash/0-end/video/1080p-4500/00001.m4s
    .../dash/0-end/video/1080p-4500/00002.m4s
    .../dash/0-end/video/1080p-4500/00003.m4s
    We keep downloading chunks until their server returns an error page/tiny file with Access Denied. It means that there are no more video chunks).
    .../dash/0-end/video/1080p-4500/00309.m4s

    In my case it is 309 chunks for a 25 minutes video. For a 50 minutes video it will probably be 620 chunks.

    Usefull commands:
    To download hundreds of .m4s chunks with one command (if you install curl on Windows):
    curl -O https://.../dash/0-end/video/1080p-4500/00[001-309].m4s
    and to download init.mp4
    curl -O https://.../dash/0-end/video/1080p-4500/init.mp4

    on Linux/Mac curl is preinstalled:
    curl -O https://.../dash/0-end/video/1080p-4500/init.mp4
    curl -O https://.../dash/0-end/video/1080p-4500/00\[001-309\].m4s

    To merge init.mp4 and .m4s chunks on Windows use the command:
    copy /b init.mp4 + 0*.m4s source.mp4
    on Linux/Mac use:
    cat init.mp4 0*.m4s > source.mp4

    To decrypt source.mp4:
    mp4decrypt --key 000000006712df46c511b1d643c4832c:f8aad1c47268c33a7 26ac69b3f3922a3 --key 000000006712df46c511b1d643c4832d:982095489e161ad40 3cb1d2be244c9c1 --key 000000006712df46c511b1d643c4832e:23a089eb8f7ac26f6 b73ba67b5543498 source.mp4 source-dec.mp4
    The keys are obviously different for each video.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!