Skip to content

Native HLS downloader results in truncated audio stream #998

@pdball

Description

@pdball

Checklist

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

Verbose log

yt-dlp --verbose -f hls-multiple_audio_tracks-English https://video.pbs.org/video/episode-1-o8ybej/
[debug] Command-line config: ['--verbose', '-f', 'hls-multiple_audio_tracks-English', 'https://video.pbs.org/video/episode-1-o8ybej/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.09.02 
[debug] Python version 3.6.9 (CPython 64bit) - Linux-5.4.0-84-generic-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 3.4.8, ffprobe 3.4.8, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: keyring, mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] [generic] Extracting URL: https://video.pbs.org/video/episode-1-o8ybej/
[generic] episode-1-o8ybej: Requesting header
[redirect] Following redirect to https://www.pbs.org/video/episode-1-o8ybej/
[debug] Using fake IP 6.151.228.73 (US) as X-Forwarded-For
[pbs] Downloading JSON metadata
[debug] [pbs] Extracting URL: https://www.pbs.org/video/episode-1-o8ybej/
[pbs] episode-1-o8ybej: Downloading webpage
[pbs] episode-1-o8ybej: Downloading widget/partnerplayer page
[pbs] episode-1-o8ybej: Downloading portalplayer page
[pbs] episode-1-o8ybej: Downloading 0 video url info
[pbs] episode-1-o8ybej: Downloading m3u8 information
WARNING: [pbs] Ignoring subtitle tracks found in the HLS manifest; if any subtitle tracks are missing, please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see  https://github.com/yt-dlp/yt-dlp  on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
[pbs] episode-1-o8ybej: Downloading 1 video url info
[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
[info] 3058097753: Downloading 1 format(s): hls-multiple_audio_tracks-English
[debug] Invoking downloader on "https://ga.video.cdn.pbs.org/videos/guilt/17d8c436-89db-41d3-843c-f22e096ebb21/2000249857/hd-16x9-mezzanine-1080p/mast5135_r-hls-16x9-1080pAudio%20Selector%201.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 519
[download] Destination: Guilt - Episode 1 [3058097753].mp4
[download] 100% of 59.56MiB in 00:54
[debug] ffmpeg command line: ffprobe -show_streams 'file:Guilt - Episode 1 [3058097753].mp4'
[FixupM3u8] Fixing malformed AAC bitstream of "Guilt - Episode 1 [3058097753].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Guilt - Episode 1 [3058097753].mp4' -c copy -map 0 -dn -f mp4 -bsf:a aac_adtstoasc 'file:Guilt - Episode 1 [3058097753].temp.mp4'
 $ 

Description

The resulting file duration is 04:12 minutes - should be 52 minutes.
Running with --downloader=ffmpeg fixes the problem

git bisect points to this being broken from the start

Bisecting: 0 revisions left to test after this (roughly 0 steps)
[177877c] [extractor] Always prefer native hls downloader by default

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug that is not site-specific

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions