mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-08-12 07:09:11 +03:00
[cleanup] Misc (#16697)
Authored by: Grub4K, bashonly Co-authored-by: bashonly <bashonly@protonmail.com>
This commit is contained in:
co-authored by
bashonly
parent
25056f0d2d
commit
821bef0f00
+13
-3
@@ -1313,6 +1313,7 @@ class YoutubeDL:
|
||||
)$''')
|
||||
SAFE_EXEC_CONVERSIONS = 'difq'
|
||||
UNSAFE_DEFAULT_CHARS = '"\' \n\t;&|^$%*<>{}()[]`#\\'
|
||||
EXEC_ADVISORY_MSG = 'See https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-69qj-pvh9-c5wg for details'
|
||||
|
||||
def _from_user_input(field):
|
||||
if field == ':':
|
||||
@@ -1440,12 +1441,21 @@ class YoutubeDL:
|
||||
# Validate safety of exec commands
|
||||
if _exec:
|
||||
if fmt[-1] not in SAFE_EXEC_CONVERSIONS:
|
||||
raise UnsafeExecExpansionError(f'Unsafe conversion(s) in exec command: {outtmpl!r}')
|
||||
raise UnsafeExecExpansionError(
|
||||
f'Unsafe conversion(s) in exec command: {outtmpl!r}\n'
|
||||
f'Conversions such as %()s are too dangerous to be used in '
|
||||
f'--exec command templates; use %()q instead. {EXEC_ADVISORY_MSG}')
|
||||
elif any(unsafe_char in default for unsafe_char in UNSAFE_DEFAULT_CHARS):
|
||||
if default == na:
|
||||
raise UnsafeExecExpansionError(f'Unsafe placeholder for exec command: {na!r}')
|
||||
raise UnsafeExecExpansionError(
|
||||
f'Unsafe placeholder for exec command: {na!r}\n'
|
||||
f'The --output-na-placeholder argument also applies to '
|
||||
f'--exec command templates. {EXEC_ADVISORY_MSG}')
|
||||
else:
|
||||
raise UnsafeExecExpansionError(f'Unsafe default(s) in exec command: {outtmpl!r}')
|
||||
raise UnsafeExecExpansionError(
|
||||
f'Unsafe default(s) in exec command: {outtmpl!r}\n'
|
||||
f'Conversions are not applied to --exec command template defaults, '
|
||||
f'e.g. %(...|DEFAULT;)q. {EXEC_ADVISORY_MSG}')
|
||||
|
||||
flags = outer_mobj.group('conversion') or ''
|
||||
str_fmt = f'{fmt[:-1]}s'
|
||||
|
||||
@@ -11,6 +11,7 @@ import time
|
||||
from .fragment import FragmentFD
|
||||
from ..postprocessor.ffmpeg import EXT_TO_OUT_FORMATS, FFmpegPostProcessor
|
||||
from ..utils import (
|
||||
DownloadError,
|
||||
Popen,
|
||||
RetryManager,
|
||||
_configuration_args,
|
||||
@@ -136,8 +137,6 @@ class ExternalFD(FragmentFD):
|
||||
self.to_screen(f'[download] Writing temporary cookies file to "{self._cookies_tempfile}"')
|
||||
# real_download resets _cookies_tempfile; if it's None then save() will write to cookiejar.filename
|
||||
self.ydl.cookiejar.save(self._cookies_tempfile, True, True)
|
||||
with open(self.ydl.cookiejar.filename or self._cookies_tempfile, "r") as file:
|
||||
print("cookies", repr(file.read()))
|
||||
return self.ydl.cookiejar.filename or self._cookies_tempfile
|
||||
|
||||
def _call_downloader(self, tmpfilename, info_dict):
|
||||
@@ -224,8 +223,7 @@ class CurlFD(ExternalFD):
|
||||
else:
|
||||
cookies_file = self._write_cookies()
|
||||
if '=' in cookies_file:
|
||||
# XXX: what to raise here?
|
||||
raise RuntimeError('curl version too old or temp directory contains `=`; please use another downloader or update curl')
|
||||
raise DownloadError('curl version too old or temp directory contains `=`; please use another downloader or update curl')
|
||||
assert cookies_file != '-'
|
||||
cmd += ['--cookie', cookies_file]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user