Reverbic streams YouTube audio through yt-dlp, using the Deno runtime to solve YouTube's JavaScript signature challenges. Both binaries are downloaded automatically from their official GitHub releases, verified by SHA256 checksum, and yt-dlp keeps itself up to date (daily check) — YouTube changes its anti-bot measures constantly, and an outdated yt-dlp is the most common cause of playback breakage.
| Feature | How to use it |
|---|---|
| Search and play | Type in the YouTube tab, ↵ to play |
| Liked videos & playlists | ←→ sub-tabs (requires cookies, see below) |
| Continuous playback | When a track ends, the next one in the list plays automatically |
| Mix (infinite radio) | Ctrl+R on any video starts an auto-extending queue of similar songs |
| Chapters | In long videos, the current chapter shows next to the title; [ and ] jump between chapters |
| Crossfade | Settings → YouTube Crossfade blends the end of each track into the next |
| SponsorBlock | Settings → SponsorBlock (YouTube) skips non-music sections. Off by default; when enabled, the video ID is sent to the community SponsorBlock API |
| Precise seeking | Tracks download to a temporary file at full speed, so seeking is instant and playback survives network drops |
- Resolved URLs are cached for 4 hours in
youtube_url_cache.jsoninside the cache directory (~/.cache/reverbic/, or%LOCALAPPDATA%\Reverbic\cache\on Windows), so replaying a recent video starts almost instantly — even after restarting Reverbic. The 4-hour limit comes from YouTube: its stream URLs self-expire after ~6 hours, so caching longer is not possible. - Only anonymous resolutions are persisted. Anything resolved with your cookies stays in memory and never touches disk.
- URLs are tied to your IP: if you switch networks or enable a VPN, a cached URL may stop working — Reverbic detects this, discards it, and re-resolves automatically on the next play.
- The downloaded audio (
youtube/*.m4ainside the cache directory) is temporary: it is wiped every time Reverbic starts, so no YouTube media accumulates on disk.
Some videos require signing in (age-restricted, region-locked, or members-only content). Reverbic can use a cookies.txt file to access them.
Warning
Use a secondary ("burner") account — never your main Google account. The cookies file grants access to that account's YouTube session, and yt-dlp may rewrite the file as cookies rotate.
-
Install Get cookies.txt LOCALLY (Chrome, Edge, or Firefox), an open-source extension that never sends your cookies anywhere. To use it in a private window you must allow it explicitly: in your browser's extension settings, enable Allow in Incognito (Chrome) / Allow in InPrivate (Edge) / Run in Private Windows (Firefox).
-
Open a private/incognito window and sign in to YouTube with your secondary account.
-
While on youtube.com, click the extension's icon and press Export — it downloads a
cookies.txtin Netscape format for the current site. Save it somewhere private.
-
Close the private window without signing out (signing out invalidates the exported cookies).
-
In Reverbic, open Settings and set YouTube Cookies File to the saved file's path.
-
Use Validate YouTube session in Settings at any time to check that the cookies still work.
File hygiene: on Linux/macOS run chmod 600 cookies.txt; on Windows, avoid cloud-synced folders (OneDrive, Dropbox, etc.).
Privacy: Reverbic only passes the file path to yt-dlp — cookies are never transmitted elsewhere, and session data is never written to Reverbic's caches or logs. Public videos are always resolved without cookies; the session is only used as a fallback for videos that require it.
- "Sign in to confirm you're not a bot" — YouTube's anti-bot system (PO Tokens) can block stream access regardless of cookies. It usually resolves itself within hours; yt-dlp updates also help, and Reverbic installs them automatically.
- A restricted video plays for a second and skips — videos that require cookies only get YouTube's combined web format, whose HE-AAC audio variant the audio decoder cannot play yet. Reverbic detects the failure and moves on to the next track instead of hanging.
- HTTP 403 on a recently played video — stream URLs expire after ~6 hours and are tied to your IP. Reverbic discards the dead URL automatically; just play the video again.
- A video is unavailable in Mix or search — region blocks, deleted videos, and "made for kids" restrictions come straight from YouTube.
Reverbic logs every resolution and playback event:
Get-Content "$env:LOCALAPPDATA\Reverbic\cache\logs\reverbic.log" | Select-String "yt-dlp|youtube:|track finished|ended early"A healthy resolution logs resolved YouTube audio format with format_id=140 (audio-only AAC). If you open an issue, include the relevant log lines.