[ffmpeg] Set ffmpeg_location in a contextvar

Fixes #2191 for the CLI, but not when used through the API
This commit is contained in:
pukkandan
2022-07-30 23:47:14 +05:30
parent c646d76f67
commit 6a7d3a0a09
2 changed files with 10 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ from .extractor.adobepass import MSO_INFO
from .extractor.common import InfoExtractor
from .options import parseOpts
from .postprocessor import (
FFmpegPostProcessor,
FFmpegExtractAudioPP,
FFmpegSubtitlesConvertorPP,
FFmpegThumbnailsConvertorPP,
@@ -899,6 +900,11 @@ def _real_main(argv=None):
if print_extractor_information(opts, all_urls):
return
# We may need ffmpeg_location without having access to the YoutubeDL instance
# See https://github.com/yt-dlp/yt-dlp/issues/2191
if opts.ffmpeg_location:
FFmpegPostProcessor._ffmpeg_location.set(opts.ffmpeg_location)
with YoutubeDL(ydl_opts) as ydl:
pre_process = opts.update_self or opts.rm_cachedir
actual_use = all_urls or opts.load_info_filename