Pluto TV on demand support #20757

Open
opened 2026-02-21 11:21:41 -05:00 by deekerman · 8 comments
Owner

Originally created by @tyuhas on GitHub (Jun 11, 2020).

Checklist

  • [X ] I'm reporting a new site support request
  • [X ] I've verified that I'm running youtube-dl version 2020.06.06
  • [X ] I've checked that all provided URLs are alive and playable in a browser
  • [X ] I've checked that none of provided URLs violate any copyrights
  • [X ] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

Still poking around so not positive how much of that playlist URL is actually necessary.

Description

Currently youtube-dl is doing with Pluto TV on demand streams very similar to issue #15748 in that the in-stream ads mess up (choppy transitions around the ad insertion point, out of sync audio etc.) the final video.

Unlike the #15748 issue, I haven't found anything in the master.m3u8 that stands-out as an ad.

master-m3u8.txt

I do notice while capturing the output that ad insertion happens like this:

[hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/c6009f_p
luto/clip/5df29776642e4b9328052d27_Engineering_Connections_Burj_al_Arab_S3E5/720
p/20191212_113935/hls/0-516520/hls_2400-00102.ts' for reading
frame=15300 fps=187 q=-1.0 size= 151588kB time=00:08:29.99 bitrate=2434.9kbits/
[hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/c6009f_p
luto/clip/5df29776642e4b9328052d27_Engineering_Connections_Burj_al_Arab_S3E5/720
p/20191212_113935/hls/0-516520/hls_2400-00103.ts' for reading
frame=15450 fps=187 q=-1.0 size= 153040kB time=00:08:35.00 bitrate=2434.3kbits/
[hls,applehttp @ 0xa4f760] Opening 'https://siloh-l3.plutotv.net/248093_59_ad/cr
eative/5ec5d94718e30b000b944683_ad/720p/20200520_182839/hls/hls_2400_keyfile_0.k
ey' for reading
[hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/248093_5
9_ad/creative/5ec5d94718e30b000b944683_ad/720p/20200520_182839/hls/hls_2400-0000
0.ts' for reading
frame=15497 fps=185 q=-1.0 size= 153592kB time=00:08:36.50 bitrate=2436.1kbits/
[mp4 @ 0xdc1920] Non-monotonous DTS in output stream 0:0; previous: 46482000, cu
rrent: -6000; changing to 46482001. This may result in incorrect timestamps in t
he output file.

All of the in-stream ads seem to have a URL that contains "_ad" and "creative" while the fragment file seems so far to be ending with -00000.ts (crypto+https://siloh-l3.plutotv.net/248093_5
9_ad/creative/5ec5d94718e30b000b944683_ad
/720p/20200520_182839/hls/hls_2400-0000
0.ts
)

youtube-dlout_ec.txt

Thanks!

Originally created by @tyuhas on GitHub (Jun 11, 2020). <!-- ###################################################################### WARNING! IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE ###################################################################### --> ## Checklist <!-- Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl: - First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.06.06. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED. - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser. - Make sure that site you are requesting is not dedicated to copyright infringement, see https://yt-dl.org/copyright-infringement. youtube-dl does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights. - Search the bugtracker for similar site support requests: http://yt-dl.org/search-issues. DO NOT post duplicates. - Finally, put x into all relevant boxes (like this [x]) --> - [X ] I'm reporting a new site support request - [X ] I've verified that I'm running youtube-dl version **2020.06.06** - [X ] I've checked that all provided URLs are alive and playable in a browser - [X ] I've checked that none of provided URLs violate any copyrights - [X ] I've searched the bugtracker for similar site support requests including closed ones ## Example URLs <!-- Provide all kinds of example URLs support for which should be included. Replace following example URLs by yours. --> - Single video: https://pluto.tv/on-demand/series/engineering-connections/season/3/episode/burj-al-arab-2011-3-5 - Playlist: https://service-stitcher.clusters.pluto.tv/stitch/hls/episode/5ecd5f1c86f709001b51ad50/master.m3u8?advertisingId=&appName=web&appStoreUrl=&appVersion=5.4.0-03751b61882e52dadae8597d2215c0142b039e02&architecture=&buildVersion=&deviceDNT=0&deviceId=8f71fdc7-a160-4ba5-b37b-006ecbbda96a&deviceLat=39.095963&deviceLon=-77.329431 &deviceMake=Chrome&deviceModel=Chrome&deviceType=web&deviceVersion=83.0.4103.97&includeExtendedEvents=false&marketingRegion=US&sid=79371dcf-5c38-4368-9229-949350682341&userId=&serverSideAds=true Still poking around so not positive how much of that playlist URL is actually necessary. ## Description <!-- Provide any additional information. If work on your issue requires account credentials please provide them or explain how one can obtain them. --> Currently youtube-dl is doing with Pluto TV on demand streams very similar to issue #15748 in that the in-stream ads mess up (choppy transitions around the ad insertion point, out of sync audio etc.) the final video. Unlike the #15748 issue, I haven't found anything in the master.m3u8 that stands-out as an ad. [master-m3u8.txt](https://github.com/ytdl-org/youtube-dl/files/4766105/master-m3u8.txt) I do notice while capturing the output that ad insertion happens like this: [hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/c6009f_p luto/clip/5df29776642e4b9328052d27_Engineering_Connections_Burj_al_Arab_S3E5/720 p/20191212_113935/hls/0-516520/hls_2400-00102.ts' for reading frame=15300 fps=187 q=-1.0 size= 151588kB time=00:08:29.99 bitrate=2434.9kbits/ [hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/c6009f_p luto/clip/5df29776642e4b9328052d27_Engineering_Connections_Burj_al_Arab_S3E5/720 p/20191212_113935/hls/0-516520/hls_2400-00103.ts' for reading frame=15450 fps=187 q=-1.0 size= 153040kB time=00:08:35.00 bitrate=2434.3kbits/ [hls,applehttp @ 0xa4f760] Opening 'https://siloh-l3.plutotv.net/248093_59_ad/cr eative/5ec5d94718e30b000b944683_ad/720p/20200520_182839/hls/hls_2400_keyfile_0.k ey' for reading [hls,applehttp @ 0xa4f760] Opening 'crypto+https://siloh-l3.plutotv.net/248093_5 9_ad/creative/5ec5d94718e30b000b944683_ad/720p/20200520_182839/hls/hls_2400-0000 0.ts' for reading frame=15497 fps=185 q=-1.0 size= 153592kB time=00:08:36.50 bitrate=2436.1kbits/ [mp4 @ 0xdc1920] Non-monotonous DTS in output stream 0:0; previous: 46482000, cu rrent: -6000; changing to 46482001. This may result in incorrect timestamps in t he output file. All of the in-stream ads seem to have a URL that contains "_ad" and "creative" while the fragment file seems so far to be ending with -00000.ts (crypto+https://siloh-l3.plutotv.net/**248093_5 9_ad/creative/5ec5d94718e30b000b944683_ad**/720p/20200520_182839/hls/**hls_2400-0000 0.ts**) [youtube-dlout_ec.txt](https://github.com/ytdl-org/youtube-dl/files/4766152/youtube-dlout_ec.txt) Thanks!
Author
Owner

@SeppSpenderRind commented on GitHub (Sep 7, 2020):

Since the Pluto TV web interface is now available in Germany, too, I would also be interested in that issue. Thank you!

Example link: https://pluto.tv/on-demand/series/teenage-mutant-ninja-turtles-de/season/1/episode/der-aufstieg-der-turtles-teil-1-2011-1-1

@SeppSpenderRind commented on GitHub (Sep 7, 2020): Since the Pluto TV web interface is now available in Germany, too, I would also be interested in that issue. Thank you! Example link: https://pluto.tv/on-demand/series/teenage-mutant-ninja-turtles-de/season/1/episode/der-aufstieg-der-turtles-teil-1-2011-1-1
Author
Owner

@kevinoconnor7 commented on GitHub (Dec 31, 2020):

Hmm yeah the ads are tricky. I created a local patch to skip over the ads by just dropping fragments that contain _ad/creative/ in the URL. It's unlikely going to be mergeable in this state though given where this code is being injected.

@kevinoconnor7 commented on GitHub (Dec 31, 2020): Hmm yeah the ads are tricky. I created a local [patch](https://gist.github.com/kevinoconnor7/dced6a9f4ebcf6002c97a64eb5788fe3) to skip over the ads by just dropping fragments that contain `_ad/creative/` in the URL. It's unlikely going to be mergeable in this state though given where this code is being injected.
Author
Owner
@ICEknigh7 commented on GitHub (Apr 13, 2021): The service has arrived to Spain now and currently gives an "Unsupported URL" error, here's an example link: https://pluto.tv/on-demand/series/smonka-es/season/1/episode/smonka-126-2005-1-126 Playlist file: https://stitcher-ipv4.pluto.tv/stitch/hls/episode/5f475541b9a18c001a4bcd69/3063648/playlist.m3u8?terminate=false&embedPartner=&serverSideAds=true&paln=&includeExtendedEvents=false&architecture=&deviceId=1d90279f-d258-45ff-b96d-dcc66342b08a&deviceVersion=89.0.4389.114&appVersion=5.16.0-d477896b413cece569cca008ddae951d02cadc9e&deviceType=web&deviceMake=Chrome%2BMobile&sid=a3243b62-9c6e-11eb-930b-0242ac110002&advertisingId=&deviceLat=43.3549&deviceLon=-5.8529&deviceDNT=0&deviceModel=web&userId=&appName=web Episode list: https://pluto.tv/on-demand/series/smonka-es/
Author
Owner

@Leatherface75 commented on GitHub (Apr 30, 2021):

Same with Live TV links

@Leatherface75 commented on GitHub (Apr 30, 2021): Same with Live TV links
Author
Owner

@heroku-miraheze commented on GitHub (Jun 20, 2021):

#27621

@heroku-miraheze commented on GitHub (Jun 20, 2021): #27621
Author
Owner

@3052 commented on GitHub (Oct 27, 2024):

it is possible to download from Pluto, but not with YouTube-DL/YT-DLP because of policy reasons:

14:14:55 INFO GET URL="https://boot.pluto.tv/v4/start?appName=web&appVersion=9&clientID=9&clientModelNumber=9&drmCapabilities=widevine%3AL3&seriesIDs=6137ee7dc79f030013e056d0"
14:14:55 INFO GET URL=https://api.pluto.tv/v2/episodes/6137ee7dc79f030013e056d0/clips.json
14:14:55 INFO GET URL=http://silo-hybrik.pluto.tv.s3.amazonaws.com/758_Paramount_Pictures_LF/clip/6137ee7bc79f030013e056cb_The_Godfather/1080pDRM/20240916_105401/dash/0-end/main.mpd
14:14:55 INFO GET URL=http://silo-hybrik.pluto.tv.s3.amazonaws.com/758_Paramount_Pictures_LF/clip/6137ee7bc79f030013e056cb_The_Godfather/1080pDRM/20240916_105401/dash/0-end/video/1080p-4500/init.mp4
14:14:55 INFO POST URL=https://service-concierge.clusters.pluto.tv/v1/wv/alt
14:14:56 INFO CDM PSSH=EhAAAAAAZuhwuecTor5gUiveEhAAAAAAZuhwuecTor5gUivfEhAAAAAAZuhwuecTor5gUivgSOPclZsG key="EcG28U+NOxVhhQ6wEa1KrA=="
14:14:57 INFO 0.09 % size="4.96 megabyte" rate="4.40 megabyte/s"
@3052 commented on GitHub (Oct 27, 2024): it is possible to download from Pluto, but not with YouTube-DL/YT-DLP because of policy reasons: ~~~ 14:14:55 INFO GET URL="https://boot.pluto.tv/v4/start?appName=web&appVersion=9&clientID=9&clientModelNumber=9&drmCapabilities=widevine%3AL3&seriesIDs=6137ee7dc79f030013e056d0" 14:14:55 INFO GET URL=https://api.pluto.tv/v2/episodes/6137ee7dc79f030013e056d0/clips.json 14:14:55 INFO GET URL=http://silo-hybrik.pluto.tv.s3.amazonaws.com/758_Paramount_Pictures_LF/clip/6137ee7bc79f030013e056cb_The_Godfather/1080pDRM/20240916_105401/dash/0-end/main.mpd 14:14:55 INFO GET URL=http://silo-hybrik.pluto.tv.s3.amazonaws.com/758_Paramount_Pictures_LF/clip/6137ee7bc79f030013e056cb_The_Godfather/1080pDRM/20240916_105401/dash/0-end/video/1080p-4500/init.mp4 14:14:55 INFO POST URL=https://service-concierge.clusters.pluto.tv/v1/wv/alt 14:14:56 INFO CDM PSSH=EhAAAAAAZuhwuecTor5gUiveEhAAAAAAZuhwuecTor5gUivfEhAAAAAAZuhwuecTor5gUivgSOPclZsG key="EcG28U+NOxVhhQ6wEa1KrA==" 14:14:57 INFO 0.09 % size="4.96 megabyte" rate="4.40 megabyte/s" ~~~
Author
Owner

@dirkf commented on GitHub (Oct 28, 2024):

The yt-dlp extractor is using the v3 API and also needs updating for current URL formats; I expect that's also true of the linked PR.

@dirkf commented on GitHub (Oct 28, 2024): The _yt-dlp_ extractor is using the v3 API and also needs updating for current URL formats; I expect that's also true of the linked PR.
Author
Owner

@3052 commented on GitHub (Dec 10, 2025):

its been a long time, but I think I finally discovered how to get 1080p with the new API, while also avoiding ads. I have the code in my repo, but I believe its out of scope for YouTube-DL/YT-DLP because its only DRM

@3052 commented on GitHub (Dec 10, 2025): its been a long time, but I think I finally discovered how to get 1080p with the new API, while also avoiding ads. I have the code in my repo, but I believe its out of scope for YouTube-DL/YT-DLP because its only DRM
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/youtube-dl-ytdl-org#20757
No description provided.