Not able to download YT live streams with --live-from-start and --cookies
This is a copy of the issue I have created on the GitHub page of yt-dlp https://github.com/yt-dlp/yt-dlp/issues/16781
Checklist
- I'm reporting that yt-dlp is broken on a supported site
- I've verified that I have updated yt-dlp to nightly or master (update instructions)
- I've checked that all provided URLs are playable in a browser with the same IP and same login details
- I've checked that all URLs and arguments with special characters are properly quoted or escaped
- I've searched known issues, the FAQ, and the bugtracker for similar issues including closed ones. DO NOT post duplicates
- I've read the policy against AI/LLM contributions and understand I may be blocked from the repository if it is violated
- I've read about sharing account credentials and I'm willing to share it if required
Region
India
Provide a description that is worded well enough to be understood
I am not able to download YT live streams when I add --live-from-start to download from the start and --cookies to prevent bot detection.
Though if I remove either of those the download works fine.
Here are the commands:
- The one not working (the output provided is for this command): yt-dlp --live-from-start --wait-for-video 600 --cookies "cookies.txt" -vU https://youtube.com/@NASA/live
These work:
- yt-dlp --wait-for-video 600 --cookies "cookies.txt" -vU https://youtube.com/@NASA/live
- yt-dlp --live-from-start --wait-for-video 600 -vU https://youtube.com/@NASA/live
I am running these commands in my local machine where I can make do without passing cookies but I want to run them in cloud environment where I need to pass cookies to pass bot detection.
Provide verbose output that clearly demonstrates the problem
- Run your yt-dlp command with -vU flag added (
yt-dlp -vU <your command line>) - If using API, add
'verbose': TruetoYoutubeDLparams instead - Copy the WHOLE output (starting with
[debug] Command-line config) and insert it below
Complete Verbose Output
[debug] Command-line config: ['--live-from-start', '--wait-for-video', '600', '--cookies', 'cookies.txt', '-vU', 'https://youtube.com/@NASA/live']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2026.05.16.233954 from yt-dlp/yt-dlp-nightly-builds [32f1671a9] (win_exe)
[debug] Python 3.10.11 (CPython AMD64 64bit) - Windows-10-10.0.26200-SP0 (OpenSSL 1.1.1t 7 Feb 2023)
[debug] exe versions: ffmpeg 2024-07-07-git-0619138639-full_build-www.gyan.dev (setts), ffprobe 2024-07-07-git-0619138639-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.04.22, curl_cffi-0.15.0, mutagen-1.47.0, requests-2.33.1, sqlite3-3.40.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: deno-2.5.6
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1864 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2026.05.16.233954 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2026.05.16.233954 from yt-dlp/yt-dlp-nightly-builds)
[debug] [youtube:tab] Found YouTube account cookies
[youtube:tab] Extracting URL: https://youtube.com/@NASA/live
[youtube:tab] @NASA/live: Downloading webpage
[debug] [youtube] Found YouTube account cookies
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno, node (unavailable), quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=FuuC4dpSQ1M
[youtube] FuuC4dpSQ1M: Downloading webpage
[debug] [youtube] Forcing "main" player JS variant for player 0d0138e0
original url = /s/player/0d0138e0/player_es6.vflset/en_US/base.js
[youtube] FuuC4dpSQ1M: Downloading tv downgraded player API JSON
WARNING: Video should already be available according to extracted info
[wait] Waiting for 00:10:00 - Press Ctrl+C to try now
[wait] Remaining time until next attempt: 00:09:52