question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Broken] Pluto TV Movies (SAMPLE-AES)

See original GitHub issue

Checklist

  • I’m reporting a broken site support
  • I’ve verified that I’m running yt-dlp version 2021.06.01
  • I’ve checked that all provided URLs are alive and playable in a browser
  • I’ve checked that all URLs and arguments with special characters are properly quoted or escaped
  • I’ve searched the bugtracker for similar issues including closed ones

Verbose log

yt-dlp --verbose --output "/mnt/b93f4a7d-08ce-461f-aebd-4d364cb92341/Movies/%(title)s (%(release_date)s).%(ext)s" "$(xclip -o)"
[debug] Command-line config: ['--verbose', '--output', '/mnt/b93f4a7d-08ce-461f-aebd-4d364cb92341/Movies/%(title)s (%(release_date)s).%(ext)s', 'https://pluto.tv/on-demand/movies/dark-blue-2003-1-1']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.06.01 (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-4.19.0-16-amd64-x86_64-with-LinuxMint-4-debbie
[debug] exe versions: ffmpeg 4.1.6-1, ffprobe 4.1.6-1
[debug] Proxy map: {}
[debug] [PlutoTV] Extracting URL: https://pluto.tv/on-demand/movies/dark-blue-2003-1-1
[PlutoTV] dark-blue-2003-1-1: Downloading JSON metadata
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 5966922a70e766a31078cfc9: Downloading 1 format(s): hls-2396
[debug] Invoking downloader on "https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400.m3u8"
[hlsnative] Downloading m3u8 manifest
WARNING: hlsnative detected unsupported features; extraction will be delegated to ffmpeg
[download] Destination: /mnt/b93f4a7d-08ce-461f-aebd-4d364cb92341/Movies/Dark Blue (2003) (NA).mp4
[debug] ffmpeg command line: ffmpeg -y -loglevel verbose -headers 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3581.1 Safari/537.36
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
' -i https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400.m3u8 -c copy -f mp4 'file:/mnt/b93f4a7d-08ce-461f-aebd-4d364cb92341/Movies/Dark Blue (2003) (NA).mp4.part'
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[tcp @ 0x55a535724c00] Starting connection attempt to 204.102.114.43 port 443
[tcp @ 0x55a535724c00] Successfully connected to 204.102.114.43 port 443
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000000.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 0 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000001.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 1 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000002.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 2 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000003.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 3 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000004.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 4 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000005.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Failed to open segment 5 of playlist 0
[hls,applehttp @ 0x55a535721a40] HLS request for url 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000006.ts', offset 0, playlist 0
[hls,applehttp @ 0x55a535721a40] SAMPLE-AES encryption is not supported yet
[hls,applehttp @ 0x55a535721a40] Error when loading first segment 'https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400_000000.ts'
[AVIOContext @ 0x55a535a2c400] Statistics: 52672 bytes read, 0 seeks
https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400.m3u8: Invalid data found when processing input


ERROR: ffmpeg exited with code 1
  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/bin/yt-dlp/__main__.py", line 19, in <module>
    yt_dlp.main()
  File "/usr/local/bin/yt-dlp/yt_dlp/__init__.py", line 695, in main
    _real_main(argv)
  File "/usr/local/bin/yt-dlp/yt_dlp/__init__.py", line 685, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2742, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1121, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1128, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1160, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1192, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2161, in process_video_result
    self.process_info(new_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2635, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2298, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/common.py", line 384, in download
    return self.real_download(filename, info_dict), True
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/hls.py", line 100, in real_download
    return fd.real_download(filename, info_dict)
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/external.py", line 75, in real_download
    self.get_basename(), retval))
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/common.py", line 165, in report_error
    self.ydl.report_error(*args, **kargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 776, in report_error
    self.trouble(error_message, tb)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 732, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())

Description

I tried to paste the whole --verbose over yet github tells me the comment is too long. I have had quit a few videos throw this same errors the last few days on pluto tv. I notice “SAMPLE-AES encryption is not supported yet”. I figure it is something new on Pluto TV’s end and should report it in hopes it can be fixed/added. Thank you.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
Vangelis66commented, Jun 10, 2021

The problem here is not only unsupported type of HLS encryption (SAMPLE-AES), both by hlsnative and FFmpeg, but the fact that type of encryption is seldom used on its own; SAMPLE-AES is most commonly used as part of Apple’s FairPlay Full DRM implementation; if you look more closely at the HLS variant contained inside OP’s log,

https://siloh-aka.plutotv.net/abe03d_MGM_Studios/clip/5966922a70e766a31078cf8d_Dark_Blue_2003/720pDRM/20210513_081743/hls/0-end/fp/hls_2400.m3u8

you’ll notice the URI fragment /720pDRM/, which speaks volumes… Additionally, if you inspect that manifest with an editor, you’ll find line

#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://609d43178264848034b2acb8/clip/5966922a70e766a31078cf8d",KEYFORMAT="com.apple.streamingkeydelivery"

tell-tale sign of FairPlay DRM… So, IMHO, this issue is a “won’t fix” (DRM-tagged), unless one wants to simply fetch encrypted/unplayable blobs… 😉 😢

2reactions
Vangelis66commented, Jun 11, 2021

I have to add some important info regarding OP’s reported issue/predicament… 😜

I have first issued an -F query to the URL the OP used, adding also the --geo-bypass-country US flag (pun intended!), to mitigate my non-sanctioned physical location:

yt-dlp -F --geo-bypass-country US "https://pluto.tv/on-demand/movies/dark-blue-2003-1-1" =>

WARNING: Support for Python version 3.4 have been deprecated and will break in f
uture versions of yt-dlp! Update to Python 3.6 or above
[PlutoTV] dark-blue-2003-1-1: Downloading JSON metadata
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[info] Available formats for 5966922a70e766a31078cfc9:
ID       EXT RESOLUTION FPS |   TBR PROTO  | VCODEC        VBR ACODEC     ABR
-------- --- ---------- --- - ----- ------ - ----------- ----- --------- ----
hls-477  mp4 426x240    30  |  477k m3u8_n | avc1.64001f  477k mp4a.40.2   0k
hls-435  mp4 512x288    30  |  435k m3u8_n | avc1.64001f  435k mp4a.40.2   0k
hls-741  mp4 512x288    30  |  741k m3u8_n | avc1.64001f  741k mp4a.40.2   0k
hls-780  mp4 640x360    30  |  780k m3u8_n | avc1.64001f  780k mp4a.40.2   0k
hls-1145 mp4 768x432    30  | 1145k m3u8_n | avc1.64001f 1145k mp4a.40.2   0k
hls-1752 mp4 768x432    30  | 1752k m3u8_n | avc1.64001f 1752k mp4a.40.2   0k
hls-1182 mp4 854x480    30  | 1182k m3u8_n | avc1.64001f 1182k mp4a.40.2   0k
hls-1783 mp4 854x480    30  | 1783k m3u8_n | avc1.64001f 1783k mp4a.40.2   0k
hls-2381 mp4 1216x684   30  | 2381k m3u8_n | avc1.64001f 2381k mp4a.40.2   0k
hls-2396 mp4 1280x720   30  | 2396k m3u8_n | avc1.64001f 2396k mp4a.40.2   0k

Of the returned 10 available formats, it appears that only the 720p quality variant (best) is behind a full-blown FairPlay DRM fence, the rest, including the second-best variant (684p), is in a format (HLSe?) palatable to yt-dlp:

yt-dlp --geo-bypass-country US "https://pluto.tv/on-demand/movies/dark-blue-2003-1-1" -f hls-2381 =>

WARNING: Support for Python version 3.4 have been deprecated and will break in f
uture versions of yt-dlp! Update to Python 3.6 or above
[PlutoTV] dark-blue-2003-1-1: Downloading JSON metadata
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 playlist
[PlutoTV] 5966922a70e766a31078cfc9: Downloading m3u8 information
[info] 5966922a70e766a31078cfc9: Downloading 1 format(s): hls-2381
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 1416
[download] Destination: Dark Blue (2003) [5966922a70e766a31078cfc9].mp4
[download]   0.1% of ~1.37GiB at  1.04MiB/s ETA 01:04:02

While obviously 684p30@2.38k is somewhat inferior to 720p30@2.4k, I find it quite suitable for my own viewing needs (laptop screen, SD TV screen)… @ACR-Jeff, will you settle for something close to 720p? 😉 Sure is better than nothing…

@pukkandan: For future reference, perhaps issue’s title be changed to “Pluto TV’s 720p Movies are DRM’ed” or something to that context?

Thanks! 😄

Read more comments on GitHub >

github_iconTop Results From Across the Web

Broken - Watch Free on Pluto TV United States
11 year-old Skunk's innocence begins to vanish as her home, neighborhood and school all become treacherous environments where the happy certainties of ...
Read more >
Broken Memories - Pluto TV
Broken Memories on Pluto TV | Independent | | “Broken Memories” is a romantic drama that depicts the often-untold story of a family...
Read more >
It's Free TV - Pluto TV
Drop in for 100s of channels of hit movies, binge-worthy TV shows, the latest breaking news, live sports and more. Anytime. Always for...
Read more >
Pluto TV Terror on Pluto TV
The scariest, goriest, most extreme horror movies ever unleashed are here to petrify you all day and all night on Pluto TV Terror....
Read more >
Pluto TV Thrillers on Pluto TV
Your pulse is pounding, your fists are clenched, and there's danger around every corner. You must be watching Pluto TV Thrillers, where devious...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found