[docs,cleanup] Fix linter and misc cleanup

Closes #2419
This commit is contained in:
pukkandan 2022-01-24 01:21:39 +05:30
parent bb66c24797
commit 88f23a18e0
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698
10 changed files with 16 additions and 12 deletions

View file

@ -3,3 +3,6 @@ contact_links:
- name: Get help from the community on Discord - name: Get help from the community on Discord
url: https://discord.gg/H5MNcFW63r url: https://discord.gg/H5MNcFW63r
about: Join the yt-dlp Discord for community-powered support! about: Join the yt-dlp Discord for community-powered support!
- name: Matrix Bridge to the Discord server
url: https://matrix.to/#/#yt-dlp:matrix.org
about: For those who do not want to use Discord

View file

@ -379,8 +379,9 @@ ## Network Options:
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. --proxy URL Use the specified HTTP/HTTPS/SOCKS proxy.
To enable SOCKS proxy, specify a proper To enable SOCKS proxy, specify a proper
scheme. For example scheme. For example
socks5://127.0.0.1:1080/. Pass in an empty socks5://user:pass@127.0.0.1:1080/. Pass in
string (--proxy "") for direct connection an empty string (--proxy "") for direct
connection
--socket-timeout SECONDS Time to wait before giving up, in seconds --socket-timeout SECONDS Time to wait before giving up, in seconds
--source-address IP Client-side IP address to bind to --source-address IP Client-side IP address to bind to
-4, --force-ipv4 Make all connections via IPv4 -4, --force-ipv4 Make all connections via IPv4
@ -1049,7 +1050,7 @@ # CONFIGURATION
1. **Main Configuration**: The file given by `--config-location` 1. **Main Configuration**: The file given by `--config-location`
1. **Portable Configuration**: `yt-dlp.conf` in the same directory as the bundled binary. If you are running from source-code (`<root dir>/yt_dlp/__main__.py`), the root directory is used instead. 1. **Portable Configuration**: `yt-dlp.conf` in the same directory as the bundled binary. If you are running from source-code (`<root dir>/yt_dlp/__main__.py`), the root directory is used instead.
1. **Home Configuration**: `yt-dlp.conf` in the home path given by `-P "home:<path>"`, or in the current directory if no such path is given 1. **Home Configuration**: `yt-dlp.conf` in the home path given by `-P`, or in the current directory if no such path is given
1. **User Configuration**: 1. **User Configuration**:
* `%XDG_CONFIG_HOME%/yt-dlp/config` (recommended on Linux/macOS) * `%XDG_CONFIG_HOME%/yt-dlp/config` (recommended on Linux/macOS)
* `%XDG_CONFIG_HOME%/yt-dlp.conf` * `%XDG_CONFIG_HOME%/yt-dlp.conf`

View file

@ -220,7 +220,7 @@ def sanitize_got_info_dict(got_dict):
IGNORED_PREFIXES = ('', 'playlist', 'requested', 'webpage') IGNORED_PREFIXES = ('', 'playlist', 'requested', 'webpage')
def sanitize(key, value): def sanitize(key, value):
if isinstance(value, str) and len(value) > 100: if isinstance(value, str) and len(value) > 100 and key != 'thumbnail':
return f'md5:{md5(value)}' return f'md5:{md5(value)}'
elif isinstance(value, list) and len(value) > 10: elif isinstance(value, list) and len(value) > 10:
return f'count:{len(value)}' return f'count:{len(value)}'

View file

@ -484,6 +484,7 @@ class YoutubeDL(object):
extractor_args: A dictionary of arguments to be passed to the extractors. extractor_args: A dictionary of arguments to be passed to the extractors.
See "EXTRACTOR ARGUMENTS" for details. See "EXTRACTOR ARGUMENTS" for details.
Eg: {'youtube': {'skip': ['dash', 'hls']}} Eg: {'youtube': {'skip': ['dash', 'hls']}}
mark_watched: Mark videos watched (even with --simulate). Only for YouTube
youtube_include_dash_manifest: Deprecated - Use extractor_args instead. youtube_include_dash_manifest: Deprecated - Use extractor_args instead.
If True (default), DASH manifests and related If True (default), DASH manifests and related
data will be downloaded and processed by extractor. data will be downloaded and processed by extractor.
@ -3504,7 +3505,7 @@ def render_formats_table(self, info_dict):
delim=self._format_screen('\u2500', self.Styles.DELIM, '-', test_encoding=True)) delim=self._format_screen('\u2500', self.Styles.DELIM, '-', test_encoding=True))
def render_thumbnails_table(self, info_dict): def render_thumbnails_table(self, info_dict):
thumbnails = list(info_dict.get('thumbnails')) thumbnails = list(info_dict.get('thumbnails') or [])
if not thumbnails: if not thumbnails:
return None return None
return render_table( return render_table(

View file

@ -300,7 +300,7 @@ def _real_extract(self, url):
unescapeHTML(webpage_data).encode('utf-8').decode('unicode_escape'), show_id) unescapeHTML(webpage_data).encode('utf-8').decode('unicode_escape'), show_id)
video_data = video_data['route']['pageData']['_embedded'] video_data = video_data['route']['pageData']['_embedded']
highlight = try_get(video_data, lambda x: ['highlightVideo']['shareUrl']) highlight = try_get(video_data, lambda x: x['highlightVideo']['shareUrl'])
if not self._yes_playlist(show_id, bool(highlight), video_label='highlight video'): if not self._yes_playlist(show_id, bool(highlight), video_label='highlight video'):
return self.url_result(highlight, ie=ABCIViewIE.ie_key()) return self.url_result(highlight, ie=ABCIViewIE.ie_key())

View file

@ -440,7 +440,7 @@ class YoutubeWebArchiveIE(InfoExtractor):
}, { }, {
'url': 'ytarchive:BaW_jenozKc:20050214000000', 'url': 'ytarchive:BaW_jenozKc:20050214000000',
'only_matching': True 'only_matching': True
},{ }, {
'url': 'ytarchive:BaW_jenozKc', 'url': 'ytarchive:BaW_jenozKc',
'only_matching': True 'only_matching': True
}, },

View file

@ -65,7 +65,7 @@ def _extract_playlist(self, season_list, video_id, program_info, prompt=True):
return self.playlist_result(all_episodes, content_id, episode_title) return self.playlist_result(all_episodes, content_id, episode_title)
def _real_extract(self, url): def _real_extract(self, url):
url, data = unsmuggle_url(url, {}) url, smuggled_data = unsmuggle_url(url, {})
video_id = self._match_id(url) video_id = self._match_id(url)

View file

@ -22,7 +22,6 @@
unified_strdate, unified_strdate,
unsmuggle_url, unsmuggle_url,
url_or_none, url_or_none,
urljoin,
) )

View file

@ -345,7 +345,7 @@ def _dict_from_options_callback(
help=( help=(
'Use the specified HTTP/HTTPS/SOCKS proxy. To enable ' 'Use the specified HTTP/HTTPS/SOCKS proxy. To enable '
'SOCKS proxy, specify a proper scheme. For example ' 'SOCKS proxy, specify a proper scheme. For example '
'socks5://127.0.0.1:1080/. Pass in an empty string (--proxy "") ' 'socks5://user:pass@127.0.0.1:1080/. Pass in an empty string (--proxy "") '
'for direct connection')) 'for direct connection'))
network.add_option( network.add_option(
'--socket-timeout', '--socket-timeout',

View file

@ -66,7 +66,7 @@ def f(info):
self.write_debug(f'Searching for {out_re.pattern!r} in {template!r}') self.write_debug(f'Searching for {out_re.pattern!r} in {template!r}')
match = out_re.search(data_to_parse) match = out_re.search(data_to_parse)
if match is None: if match is None:
self.report_warning(f'Could not interpret {inp!r} as {out!r}') self.to_screen(f'Could not interpret {inp!r} as {out!r}')
return return
for attribute, value in match.groupdict().items(): for attribute, value in match.groupdict().items():
info[attribute] = value info[attribute] = value
@ -80,7 +80,7 @@ def replacer(self, field, search, replace):
def f(info): def f(info):
val = info.get(field) val = info.get(field)
if val is None: if val is None:
self.report_warning(f'Video does not have a {field}') self.to_screen(f'Video does not have a {field}')
return return
elif not isinstance(val, str): elif not isinstance(val, str):
self.report_warning(f'Cannot replace in field {field} since it is a {type(val).__name__}') self.report_warning(f'Cannot replace in field {field} since it is a {type(val).__name__}')