Skip to main content
  1. Blog/

Podsync Download Troubleshooting Diary

Author
Chengyu
I’m Chengyu — a final-year Computer Science student at the University of Sydney. I write about the things I build and break, plus hiking, travel, gaming, and gadgets.
Table of Contents

The symptom
#

Podsync’s logs were repeatedly showing two kinds of errors.

Bot verification error:

ERROR: Sign in to confirm you're not a bot. Use --cookies-from-browser or --cookies

Rate limit error:

WARN: server responded with a 'Too Many Requests' error

Root cause analysis
#

Error typeCause
Bot verificationyt-dlp wasn’t carrying any login credentials, so YouTube flagged it as a bot
Too Many RequestsThe NAS’s outbound IP was making requests too frequently and got rate-limited, made worse by multiple containers downloading at once

The fix: configuring cookies
#

Step 1: export cookies

Install the Chrome extension “Get cookies.txt LOCALLY,” open youtube.com and confirm you’re logged in, click the extension icon to export cookies.txt immediately, and avoid visiting YouTube again afterward to keep the cookies from getting rotated out.

Step 2: upload the cookies to the NAS

The cookies file has to live inside the container’s mounted data directory, or the container won’t be able to see it.

First confirm the container’s mount path:

docker inspect <container-id> | grep -A 10 "Mounts"

Upload it to the right location (corresponding to /app/data/ inside the container):

scp ~/Downloads/cookies.txt root@192.168.5.154:/volume1/docker/podsync/data/cookies.txt

Step 3: edit the config file

Add this under each feed, or in the global [downloader] section:

[downloader]
self_update = true
youtube_dl_args = ["--cookies", "/app/data/cookies.txt"]

Note: use the container-internal path /app/data/, not the host path.

Step 4: restart the container

docker restart <container-id>

Things to watch for
#

Cookies expire. YouTube automatically rotates session cookies during regular browser use, which invalidates a previously exported cookies.txt. Under normal conditions cookies last 1–3 months, but with heavy use they can expire in as little as 2–4 weeks. The symptom is the same bot-verification error resurfacing after things were working fine, along with a log line like:

The provided YouTube account cookies are no longer valid. They have likely been rotated

When you see that, re-export and re-upload the cookies.

Too Many Requests is IP-based rate limiting, and it can still happen occasionally even with cookies configured. To mitigate it: increase each feed’s update_period to reduce request frequency, and avoid having multiple containers hammer requests at the same time.

With multiple containers deployed, each container’s config file needs to be updated individually — a batch find-and-replace command can help:

for f in config-a.toml config-b.toml config-c.toml; do
  sed -i 's|old content|new content|g' "/volume1/docker/podsync/$f"
done

Related