Skip to content

v0.4.7

Choose a tag to compare

@nosoop nosoop released this 16 Jan 16:48
· 64 commits to main since this release

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 n parameter — this requires a deciphering operation. (#18)
    • Use --unstable-cipher-solver-url with 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.)
  • 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.