TL;DR — TubeArchivist ⭐ 8.1k is the best turnkey option: import a Firefox cookie once via its companion extension and liked videos / Watch Later become ordinary subscribed playlists [1]. For CLI-only use,
yt-dlp --cookies-from-browser firefox --download-archive archive.txt "https://www.youtube.com/playlist?list=LL"does incremental sync but needs cookie refresh every ~2 weeks [3] [4]. ⚠ All cookie-based sync carries an IP-ban risk — yt-dlp itself now flags this [7].
The core challenge
YouTube’s Liked Videos (?list=LL) and Watch Later (?list=WL) are private playlists — no public URL, no unauthenticated access. Every tool ultimately passes browser cookies to yt-dlp [3], which accesses YouTube via the InnerTube API [16]. That means two recurring headaches:
- Cookie extraction: Only Firefox works reliably in 2026. Chrome 127+ (July 2024) introduced app-bound encryption that blocks all external cookie readers [4]. OAuth and bearer-token approaches don’t work with yt-dlp’s InnerTube path [16].
- Cookie lifespan: YouTube expires cookies in approximately two weeks when used outside a browser [7] [16]. Re-exporting Firefox cookies is a recurring manual step unless automated.
Additionally, yt-dlp has a known, unresolved bug where the liked playlist sometimes returns only ~11 items instead of the full list — YouTube’s dynamic pagination isn’t always fully traversed [5]. Running the command multiple times (with --download-archive) usually recovers the full set.
Tool comparison
| Tool | Liked ✓/✗ | Watch Later ✓/✗ | Auth method | Auto-sync | Notes |
|---|---|---|---|---|---|
| TubeArchivist ⭐ 8.1k | ✓ | ✓ | Cookie (ext or paste) | ✓ | Becomes a regular subscribed playlist [1] |
| Pinchflat ⭐ 5.0k | ✓ | ✓ | cookies.txt |
✓ | Per-source cookie behavior; ⚠ IP ban risk [7] |
| yt-dlp ⭐ 169k | ✓ | ✓ | --cookies-from-browser |
Via cron | Partial-items bug [5]; manual cookie refresh [4] |
| ytdl-sub ⭐ 2.8k | ✓ | ✓ | cookiefile passthrough |
Via cron | No dedicated liked-videos UI [9] |
| Syncify ⭐ 77 | ✓ | ✓ | cookies.txt |
✓ | Scheduled sync; not liked-specific [8] |
| ytm-yld ⭐ 6 | ✓ (YTM only) | ✗ | OAuth (ytmusicapi) | Manual | YouTube Music liked songs only; deletes removed tracks [11] |
TubeArchivist — recommended for liked/saved sync
TubeArchivist ⭐ 8.1k [2] has the best UX for this use case. The Companion browser extension ⭐ 256 (Firefox and Chrome) pushes your cookies directly into TubeArchivist with one click [15]. Once imported, liked videos and Watch Later are treated identically to any other playlist subscription [10]:
- Add the liked videos URL (
https://www.youtube.com/playlist?list=LL) as a playlist subscription - Enable periodic rescan in settings → TubeArchivist pulls new likes automatically
- A single cookie is shared across all TubeArchivist users on the instance
Validation: TubeArchivist considers a cookie valid only if yt-dlp can successfully access the private liked playlist — so you know immediately if auth has expired [1].
Pinchflat — flexible with caveats
Pinchflat ⭐ 5.0k [6] supports cookies via a cookies.txt file placed in the config directory. Three behaviors are configurable per source [7]:
- Disabled — never uses cookies
- When Needed — tries without cookies first, retries with them on failure
- All Operations — cookies on every request
⚠ As of 2026, yt-dlp’s own documentation warns that YouTube cookies can trigger IP bans and recommends users “proceed at their own risk” [7].
yt-dlp CLI — incremental sync pattern
For a cron-driven setup, the standard command [13] [14]:
yt-dlp \
--cookies-from-browser firefox \
--download-archive ~/yt-liked.txt \
--limit-rate 5M \
--sleep-interval 5 --max-sleep-interval 15 \
"https://www.youtube.com/playlist?list=LL"
The --download-archive flag appends each downloaded video ID; subsequent runs skip already-archived items [13]. Rate-limiting flags (--limit-rate, --sleep-interval) reduce ban risk for unattended jobs [14].
Watch Later uses the same pattern with ?list=WL.
Note: the partial-items bug [5] means a single run may not fetch all liked videos. Running the command 2–3 times in sequence (archive prevents re-downloads) usually recovers the full list.
YouTube Music liked songs (separate path)
YouTube Music liked songs are a distinct dataset from YouTube liked videos. ytm-yld ⭐ 6 [11] uses OAuth via ytmusicapi — no cookies needed, no IP-ban risk — and syncs the Your Likes playlist with local deletion of removed tracks. The tradeoff: it’s YTMusic-only, not the main YouTube feed.
Cookie refresh strategy
Since cookies expire in ~2 weeks [7] [4], schedule refresh before expiry:
- Open Firefox, log into YouTube
- Re-export cookies (browser extension, or manual Netscape export)
- Re-import into TubeArchivist / overwrite
cookies.txtin Pinchflat/Syncify - Validate in TubeArchivist settings
Automating this export is theoretically possible via a Firefox profile query script, but cookie misuse risks account bans — manual re-import is the safer cadence [4] [12].