[BUGFIX] Fix YouTube channels iterating 2x entries (#903)
A recent feature to grab channel artwork for playlists caused downloading channels to misreport the number of entries it was downloading. This change fixes that
This commit is contained in:
parent
f0b3991e3e
commit
29398862da
1 changed files with 8 additions and 6 deletions
|
|
@ -248,20 +248,22 @@ class YTDLP:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cls.logger.debug("Attempting to get parent metadata from URL %s", uploader_url)
|
cls.logger.debug("Attempting to get parent metadata from URL %s", uploader_url)
|
||||||
|
parent_dict: Optional[Dict] = None
|
||||||
try:
|
try:
|
||||||
parent_dict = cls.extract_info(
|
parent_dict = cls.extract_info(
|
||||||
ytdl_options_overrides=ytdl_options_overrides | {"playlist_items": "0:0"},
|
ytdl_options_overrides=ytdl_options_overrides | {"playlist_items": "0:0"},
|
||||||
url=uploader_url,
|
url=uploader_url,
|
||||||
)
|
)
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
# Do not try this uploader_id again
|
pass
|
||||||
entry_ids.add(uploader_id)
|
|
||||||
break
|
|
||||||
|
|
||||||
if isinstance(parent_dict, dict):
|
parent_id = parent_dict.get("id") if isinstance(parent_dict, dict) else None
|
||||||
parent_id = parent_dict.get("id")
|
if parent_id and parent_id not in entry_ids:
|
||||||
parent_dicts.append(parent_dict)
|
parent_dicts.append(parent_dict)
|
||||||
entry_ids |= {uploader_id, parent_id}
|
entry_ids.add(parent_id)
|
||||||
cls.logger.debug("Adding parent metadata with ids [%s, %s]", uploader_id, parent_id)
|
cls.logger.debug("Adding parent metadata with ids [%s, %s]", uploader_id, parent_id)
|
||||||
|
|
||||||
|
# Always add the uploader_id since it has been tried
|
||||||
|
entry_ids.add(uploader_id)
|
||||||
|
|
||||||
return entry_dicts + parent_dicts
|
return entry_dicts + parent_dicts
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue