[cleanup] Misc

Closes #5471, Closes #5312

Authored by: pukkandan, Alienmaster
pull/5834/head
Robert Geislinger 2 years ago committed by pukkandan
parent 8522226d2f
commit 7aaf4cd2a8
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39

@ -1204,6 +1204,10 @@ To summarize, the general syntax for a field is:
Additionally, you can set different output templates for the various metadata files separately from the general output template by specifying the type of file followed by the template separated by a colon `:`. The different file types supported are `subtitle`, `thumbnail`, `description`, `annotation` (deprecated), `infojson`, `link`, `pl_thumbnail`, `pl_description`, `pl_infojson`, `chapter`, `pl_video`. E.g. `-o "%(title)s.%(ext)s" -o "thumbnail:%(title)s\%(title)s.%(ext)s"` will put the thumbnails in a folder with the same name as the video. If any of the templates is empty, that type of file will not be written. E.g. `--write-thumbnail -o "thumbnail:"` will write thumbnails only for playlists and not for video. Additionally, you can set different output templates for the various metadata files separately from the general output template by specifying the type of file followed by the template separated by a colon `:`. The different file types supported are `subtitle`, `thumbnail`, `description`, `annotation` (deprecated), `infojson`, `link`, `pl_thumbnail`, `pl_description`, `pl_infojson`, `chapter`, `pl_video`. E.g. `-o "%(title)s.%(ext)s" -o "thumbnail:%(title)s\%(title)s.%(ext)s"` will put the thumbnails in a folder with the same name as the video. If any of the templates is empty, that type of file will not be written. E.g. `--write-thumbnail -o "thumbnail:"` will write thumbnails only for playlists and not for video.
<a id="outtmpl-postprocess-note"></a>
Note: Due to post-processing (i.e. merging etc.), the actual output filename might differ. Use `--print after_move:filepath` to get the name after all post-processing is complete.
The available fields are: The available fields are:
- `id` (string): Video identifier - `id` (string): Video identifier
@ -1304,7 +1308,7 @@ Available only when using `--download-sections` and for `chapter:` prefix when u
Available only when used in `--print`: Available only when used in `--print`:
- `urls` (string): The URLs of all requested formats, one in each line - `urls` (string): The URLs of all requested formats, one in each line
- `filename` (string): Name of the video file. Note that the actual filename may be different due to post-processing. Use `--exec echo` to get the name after all postprocessing is complete - `filename` (string): Name of the video file. Note that the [actual filename may differ](#outtmpl-postprocess-note)
- `formats_table` (table): The video format table as printed by `--list-formats` - `formats_table` (table): The video format table as printed by `--list-formats`
- `thumbnails_table` (table): The thumbnail format table as printed by `--list-thumbnails` - `thumbnails_table` (table): The thumbnail format table as printed by `--list-thumbnails`
- `subtitles_table` (table): The subtitle format table as printed by `--list-subs` - `subtitles_table` (table): The subtitle format table as printed by `--list-subs`

@ -254,14 +254,11 @@ def expect_info_dict(self, got_dict, expected_dict):
return v.__name__ return v.__name__
else: else:
return repr(v) return repr(v)
info_dict_str = '' info_dict_str = ''.join(
if len(missing_keys) != len(expected_dict): f' {_repr(k)}: {_repr(v)},\n'
info_dict_str += ''.join( for k, v in test_info_dict.items() if k not in missing_keys)
f' {_repr(k)}: {_repr(v)},\n' if info_dict_str:
for k, v in test_info_dict.items() if k not in missing_keys) info_dict_str += '\n'
if info_dict_str:
info_dict_str += '\n'
info_dict_str += ''.join( info_dict_str += ''.join(
f' {_repr(k)}: {_repr(test_info_dict[k])},\n' f' {_repr(k)}: {_repr(test_info_dict[k])},\n'
for k in missing_keys) for k in missing_keys)

@ -5,7 +5,7 @@
import sys import sys
if __package__ is None and not hasattr(sys, 'frozen'): if __package__ is None and not getattr(sys, 'frozen', False):
# direct call of __main__.py # direct call of __main__.py
import os.path import os.path
path = os.path.realpath(os.path.abspath(__file__)) path = os.path.realpath(os.path.abspath(__file__))

@ -9,6 +9,7 @@ from ..utils import (
class SlidesLiveIE(InfoExtractor): class SlidesLiveIE(InfoExtractor):
_VALID_URL = r'https?://slideslive\.com/(?P<id>[0-9]+)' _VALID_URL = r'https?://slideslive\.com/(?P<id>[0-9]+)'
_WORKING = False
_TESTS = [{ _TESTS = [{
# video_service_name = YOUTUBE # video_service_name = YOUTUBE
'url': 'https://slideslive.com/38902413/gcc-ia16-backend', 'url': 'https://slideslive.com/38902413/gcc-ia16-backend',

@ -21,7 +21,7 @@ class TestURLIE(InfoExtractor):
matching_extractors = [e for e in gen_extractor_classes() if rex.search(e.IE_NAME)] matching_extractors = [e for e in gen_extractor_classes() if rex.search(e.IE_NAME)]
if len(matching_extractors) == 0: if len(matching_extractors) == 0:
raise ExtractorError('No extractors matching {extractor_id!r} found', expected=True) raise ExtractorError(f'No extractors matching {extractor_id!r} found', expected=True)
elif len(matching_extractors) > 1: elif len(matching_extractors) > 1:
try: # Check for exact match try: # Check for exact match
extractor = next( extractor = next(

@ -137,7 +137,7 @@ class FFmpegPostProcessor(PostProcessor):
path = self._paths.get(prog) path = self._paths.get(prog)
if path in self._version_cache: if path in self._version_cache:
return self._version_cache[path], self._features_cache.get(path, {}) return self._version_cache[path], self._features_cache.get(path, {})
out = _get_exe_version_output(path, ['-bsfs'], to_screen=self.write_debug) out = _get_exe_version_output(path, ['-bsfs'])
ver = detect_exe_version(out) if out else False ver = detect_exe_version(out) if out else False
if ver: if ver:
regexs = [ regexs = [

@ -30,13 +30,13 @@ API_URL = f'https://api.github.com/repos/{REPOSITORY}/releases'
@functools.cache @functools.cache
def _get_variant_and_executable_path(): def _get_variant_and_executable_path():
"""@returns (variant, executable_path)""" """@returns (variant, executable_path)"""
if hasattr(sys, 'frozen'): if getattr(sys, 'frozen', False):
path = sys.executable path = sys.executable
if not hasattr(sys, '_MEIPASS'): if not hasattr(sys, '_MEIPASS'):
return 'py2exe', path return 'py2exe', path
if sys._MEIPASS == os.path.dirname(path): elif sys._MEIPASS == os.path.dirname(path):
return f'{sys.platform}_dir', path return f'{sys.platform}_dir', path
if sys.platform == 'darwin': elif sys.platform == 'darwin':
machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else '' machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else ''
else: else:
machine = f'_{platform.machine().lower()}' machine = f'_{platform.machine().lower()}'
@ -288,7 +288,7 @@ class Updater:
# There is no sys.orig_argv in py < 3.10. Also, it can be [] when frozen # There is no sys.orig_argv in py < 3.10. Also, it can be [] when frozen
if getattr(sys, 'orig_argv', None): if getattr(sys, 'orig_argv', None):
return sys.orig_argv return sys.orig_argv
elif hasattr(sys, 'frozen'): elif getattr(sys, 'frozen', False):
return sys.argv return sys.argv
def restart(self): def restart(self):

@ -2698,9 +2698,7 @@ def check_executable(exe, args=[]):
return exe return exe
def _get_exe_version_output(exe, args, *, to_screen=None): def _get_exe_version_output(exe, args):
if to_screen:
to_screen(f'Checking exe version: {shell_quote([exe] + args)}')
try: try:
# STDIN should be redirected too. On UNIX-like systems, ffmpeg triggers # STDIN should be redirected too. On UNIX-like systems, ffmpeg triggers
# SIGTTOU if yt-dlp is run in the background. # SIGTTOU if yt-dlp is run in the background.

Loading…
Cancel
Save