revolutionary research to make as-live formats faster

experimented with the args in the playlist urls
l = length of time default 15, 15 seconds = 3 fragments in the m3u8
tried to set it to the length of the full programme (eg 30min), cant do that unfortunately

discovered through trial and error that the max is 300, ie 5 minutes/60 fragments
great epic put it in the extractor and rejoice at the fastish downloads
except no, ffmpeg only downloads one at a time, 1x speed ie real time
and the live format still only adds frags in real time, so this would only make the initial 5 mins faster
sad

might be able to combine this with the seek parameter, download in 5-min chunks but unless i can specify multiple m3u8s to be treated as one i dont think it’ll be practical [18:45] garret: would it be possible to specify multiple m3u8s for a single vid, that get concatenated into one file at the end? i can see there's the multi_video type, but i assume that just downloads them separately [18:45] garret: for a jank workaround if radiko ever gets rid of the not-live format fair enough if no, i hope to never have to do it lol [18:46] bashonly: i think you would have to use multi_video, which will concat [18:46] garret: oh right [18:46] bashonly: but they are treated as a playlist it could work! but extreme jank, ie 6-item playlist for a 30min show

the idea

1. get initial live 5 mins, grab all - as on-demand, do not use ffmpeg, do not refresh the playlist 2. use seek arg in new playlist to seek forwards 5 minutes - new 5 min chunk - grab all as on-demand 3. repeat 4. change chunk size at the end if the length isnt divisible by 5min can only implement this when we actually have some as-live streams so i think i’d have to do github issue #18 first, and then incorporate it (as an option?) there attempted in a branch, got the chunking working but god multi_video is aids not sure how to make it work honestly

its over

the chunking works yes, but the starts/ends arent seamless, so you get a kind-of-glitch every 5 mins dammit

UPDATE- we're so back

2025-07-09 (remembered these pages exist)

I gave up due to ^ glitch

jackyzy823 posted the same idea in my issue tracker, i replied with ^my attempt here
and he corrected me and said i should be using the seek parameter
so i tried with that and it worked beautifully

I initially implemented it with the multi_video type. but that only worked per video when we needed per format
so it stalled again
a few days later a new yt-dlp feature was added for unrelated reasons- the hls_media_playlist_data field, which lets you pass custom HLS playlists
for exactly this sort of thing where the extractor needs to do custom processing
so, amazing solution, cat all the 5-min m3u8s together and pass it to the downloader, it works lmao

there was some jank with wowza stream, where the 300s i requested was actually longer than 300s
so i ended up having to track the actual length based on the #EXTINF tags in the HLS playlist

the chunking workaround was added on 17th and 18th may 2025, and released in v1.5 on 24th may 2025

ref: garret1317/yt-dlp-rajiko #24