v0.4.7
Fast-tracked release in response to YouTube changes.
Sigh. I swear I'll pull in the message changes from staging eventually. I think most of the other changes are fairly well-tested or at least clearly not big enough to break the core application functionality, so I've promoted that lot.
Added
- Interim fix for YouTube changes where the DASH manifest URL now contains the
nparameter — this requires a deciphering operation. (#18)- Use
--unstable-cipher-solver-urlwith the URL to a cipher solver server instance. - This is not part of the stable API and may be removed or altered at any point.
- I do want to support yt-dlp/ejs directly in the near future. (Though I may have second thoughts on this depending on how often it needs to be updated.)
- Use
- Fragment dimensions are now stored in the in-progress fragment data sidecar file, simplifying the flow of restarting a download (no need to duplicate chunks of code to perform fragment analysis again).
- Improved handling for 403 responses; when a 403 is received on a request after reattempting with a valid player response, moonarchive will now:
- … skip the fragment if there are more fragments remaining in the stream (to deal with #17)
- … throw an error if it has reached the end (because our request is broken)
Fixed
- If a proof-of-origin token provider server is specified, moonarchive will continue to retry forever on timeout, instead of just continuing operations without a token.
- The content-bound proof-of-origin token is now reused for subsequent web player responses.
- … well, it would be if raw responses were working. They appear to require some additional work; currently falling back to scraping the initial response.