Last-Order / Minyami

A lovely video downloader for HLS videos
GNU General Public License v3.0
555 stars 36 forks source link

Supporting Master Playlist Formats? #88

Open iebb opened 2 years ago

iebb commented 2 years ago

As defined in RFC8216, Section 8.6

#EXTM3U
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="English", \
      DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en", \
      URI="main/english-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsch", \
      DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de", \
      URI="main/german-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Commentary", \
      DEFAULT=NO,AUTOSELECT=NO,LANGUAGE="en", \
      URI="commentary/audio-only.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",AUDIO="aac"
   low/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",AUDIO="aac"
   mid/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",AUDIO="aac"
   hi/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5",AUDIO="aac"
   main/english-audio.m3u8

A master playlist could contain multiple variants of video (could be different in resolution) and multiple audio tracks (useful for multi-language videos).

Providing a master m3u8 directly with Minyami would result in its sub-m3u8s being downloaded and merged, while that's 100% not the desired result (though using entries from the master m3u8 worked).

iebb commented 2 years ago

image

Last-Order commented 2 years ago

I've experimentally supported master playlist in 4.4.0. When giving a master playlist to Minyami, the best quality stream will be downloaded.

#EXT-X-MEDIA is not supported now but maybe supported in the future.