Desktop app¶
Prerequisites¶
Rewyt relies on yt-dlp:
-
yt-dlp: For video information fetching. Nightly builds are recommended.
-
FFprobe: For inspecting media segments.
Additional dependencies¶
The following dependencies are optional, but strongly recommended in practice:
-
External JavaScript runtime: Required for full YouTube support
-
Proof-of-Origin (PO) token provider plugin: Required to avoid HTTP 403 errors
Install from binaries¶
Pre-built binaries for different platforms are available on the GitHub latest release page.
Download the binary for your platform and unzip it to your working directory.
Setup¶
While optional, the setup steps below are strongly recommended.
Update yt-dlp to nightly¶
YouTube changes frequently, and the stable yt-dlp release can be outdated. Switch to the nightly build, which is updated daily:
Check the result with yt-dlp --version.
Sign in with cookies¶
Some streams respond with a “Sign in to confirm you’re not a bot” error unless you provide cookies. Export your YouTube cookies from a logged-in browser (see yt-dlp’s instructions), then add a line to your yt-dlp configuration file:
Install a JavaScript runtime¶
If yt-dlp cannot find a JavaScript runtime, you will see this warning:
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is
enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to
your command/config. YouTube extraction without a JS runtime has been
deprecated, and some formats may be missing. See
https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one
Install Deno (version 2.0 or later). If it is not detected
automatically, point yt-dlp at it:
See the EJS wiki for other supported runtimes.
Avoid HTTP 403 errors with a PO token provider¶
During playback you may get transient HTTP 403 errors, caused by YouTube’s bot verification. yt-dlp works around them with a Proof-of-Origin (PO) token provider plugin:
- Install the bgutil-ytdlp-pot-provider plugin.
- Run the provider’s HTTP server, which listens on
http://127.0.0.1:4416by default.
With the default address, no further configuration is needed. If you run the server elsewhere, point yt-dlp at it:
See yt-dlp’s PO Token Guide for details.