[fd/external] Fix ffmpeg input from stdin #7655
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The websockets downloader passes
-
to ffmpeg as input, and the new external FD cookies code was throwingyt-dlp/yt_dlp/downloader/websocket.py
Lines 12 to 39 in 42ded0a
thanks to @JC-Chung for discovering the issue and providing this log:
Template
Before submitting a pull request make sure you have:
In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:
What is the purpose of your pull request?
Copilot Summary
🤖 Generated by Copilot at 35ee7b9
Summary
🐛🧪🍪
Fix a bug where
yt-dlp
would fail to download some websocket streams usingffmpeg
. Add a test case forFFmpegFD
and modify its_call_downloader
method to handle non-http urls correctly.Walkthrough
test_make_cmd
intest/test_downloader_external.py
to check that non-url inputs are passed directly to ffmpeg (link)_call_downloader
inyt_dlp/downloader/external.py
to only get and pass cookies for http or https urls (link)