Common issues
Antivirus flags the executable
Antivirus flags the executable
The pre-built
DouyinLiveRecorder.exe may trigger a false positive on some Windows antivirus products. This is a known issue with PyInstaller-packaged Python executables. The binary is safe to use.To verify: download only from the official GitHub Releases page, and check the SHA hash if one is provided. If your browser blocks the download, try a different browser.Alternatively, run from source with Python instead of using the pre-built binary.Recording stops after approximately 2 minutes on Huya
Recording stops after approximately 2 minutes on Huya
This was a known bug in older versions caused by how Huya’s stream tokens expire. It has been fixed in recent releases (changelog entry: 20240701).Update to the latest release. If the issue persists, check that your Huya cookie in
config/config.ini is valid and not expired.TikTok, SOOP, or Twitch won't record
TikTok, SOOP, or Twitch won't record
These platforms are geo-restricted and require a proxy to access from mainland China or other regions.If Faceit is not in the list, add it to the extra proxy field:At startup, the recorder checks whether Google is reachable to detect proxy availability. If no proxy is detected, a warning is printed — overseas platforms will fail silently in this state.
- Set up a proxy that can reach the platform.
- In
config/config.ini, enable proxy use and enter your proxy address:
- Confirm the platform is in the proxy list (default value from
config.ini):
Cookie expired or 401 / authentication errors
Cookie expired or 401 / authentication errors
Recorded video file is corrupted or won't play
Recorded video file is corrupted or won't play
This usually happens when a recording is interrupted abruptly — for example by killing the process, a system crash, or a Docker container being force-stopped.TS format is the most resilient. MPEG-TS does not require a complete footer to be readable. FLV and MP4 containers do, so an interrupted recording in those formats may produce an unplayable file.Switching to TS format with auto-convert to MP4 gives you both resilience and a clean final file:If you already have a corrupted file, try repairing it with:
High error count or possible IP ban
High error count or possible IP ban
The status display shows
目前瞬时错误数为: N. A sustained high error count can indicate that the platform is rate-limiting or blocking your IP.Steps to reduce errors:- Increase the loop interval in
config/config.ini(default is 300 seconds): - Reduce the number of concurrent threads:
- Consider using a proxy or rotating IPs.
FFmpeg not found
FFmpeg not found
DouyinLiveRecorder requires FFmpeg to be available on the system PATH.After installation, verify with:
- Windows
- Ubuntu / Debian
- CentOS / RHEL
- macOS
The pre-built release includes
ffmpeg.exe in the same directory — no additional setup is needed.If running from source, either place ffmpeg.exe in the project root or add it to your system PATH. Download FFmpeg builds from ffmpeg.org.Can't record Taobao live
Can't record Taobao live
Taobao requires a valid cookie with an active logged-in session. An empty or expired cookie will result in failed requests.Taobao sessions are relatively short-lived. You may need to refresh the cookie every few days.
- Log in to Taobao in a browser.
- Copy the full
Cookieheader value from a request totaobao.comin DevTools. - Paste it into
config/config.ini:
Douyin wind control (风控) — can't get stream data
Douyin wind control (风控) — can't get stream data
Douyin’s anti-scraping system (风控) blocks requests that use stale or fingerprint-mismatched cookies.Remedies:
- Refresh the
抖音cookievalue inconfig/config.iniby copying a fresh cookie from a logged-in browser session. - For short links (
v.douyin.com) or profile URLs, the recorder automatically uses the app stream path which is more stable. - If the problem persists, wait a few hours before retrying — Douyin rate-limits may reset.
Docker container produces corrupt files when stopped
Docker container produces corrupt files when stopped
Force-stopping a Docker container (for example with This sends SIGTERM, which gives FFmpeg time to flush and close output files cleanly.Using TS format also mitigates this — TS files remain readable even when the process is killed abruptly.
docker kill or Ctrl+C on docker-compose up) sends SIGKILL, which terminates FFmpeg immediately without flushing the file buffer. This corrupts files in formats that require a trailer (MP4, FLV).Use the graceful stop command instead:Log files
DouyinLiveRecorder writes logs to thelogs/ directory in the project root. Each session appends to the log file. Logs include:
- Stream fetch errors and HTTP status codes
- FFmpeg exit codes and error messages
- Proxy detection results
- Script execution output
logs/ to help diagnose the issue.