feat(download): start real SABR download support#68
Conversation
69af82b to
7fc006a
Compare
687ff8a to
09d989c
Compare
|
@InfinityLoop1308 I think this one is ready for a first real review now. I kept it as draft while testing because SABR download is a big change and I did not want to rush it. I pushed more fixes after the first draft, especially around single-track/audio-only init recovery and retry behavior. What I tested on emulator:
I also tested a few different videos, not only one sample:
I still would like you to test it too on your side, especially with formats/videos that usually hit SABR edge cases. I could not do the final physical-device run today because my Pixel was not visible in adb anymore, but emulator testing is now much better than before. |
|
Really fast XD quick test:
|
|
and don't push yourself :) you can just take this one and I'll handle other bugs. |
9e5d16d to
ca791e9
Compare
|
@InfinityLoop1308 I pushed a small follow-up for these two points. For the percent: SABR download was forcing For resume: this is still not real segment-level resume yet. SABR currently restarts the temp transfer, but now it keeps the previous visible progress as a floor. So on resume/retry it does not jump back to 0%; the restarted transfer catches up silently, then progress continues from there. Build is still ok on my side with |
I’m fine, no worries :) And np, honestly it’s a pleasure. I like coding when I come back from work or when I have some free time, I get more fun from coding than from doing other stuff :P |
Fixes / continues InfinityLoop1308/PipePipe#2569
Context: #66 (comment)
Pairs with the extractor-side helper draft: InfinityLoop1308/PipePipeExtractor#79
Summary
This starts the real SABR download implementation.
I have something working locally now, but this is still draft. I will keep updating this PR while testing/fixing the remaining cases. Once it looks solid enough, I will ask for review.
Why
The old downloader cannot handle SABR as a normal URL.
SABR is a session, not a direct media file. So the download path needs to drive a
YoutubeSabrSession, request the selected formats, collect init/media segments, write them in order, and mux the final result.Since HLS also looks less reliable now, I think we need to start moving download toward real SABR support instead of only relying on temporary fallbacks.
What works locally right now
Tested on emulator:
Selected stream:
Audio:
Result:
ffprobesees:What changed
Still not done
This is not merge-ready yet.
I still want to test/fix:
Notes
Opening this as draft so the direction is visible early.
The base path works locally now, but I will continue updating it before asking for review.