fix: handle playlists that don't supply video ids
This commit is contained in:
parent
1f79883b75
commit
d38d7bd1b1
2 changed files with 5 additions and 0 deletions
|
|
@ -359,6 +359,8 @@ class SubscriptionManager:
|
||||||
if not eid or not vurl:
|
if not eid or not vurl:
|
||||||
continue
|
continue
|
||||||
queue_entry = dict(ent)
|
queue_entry = dict(ent)
|
||||||
|
if "id" not in queue_entry:
|
||||||
|
queue_entry["id"] = eid
|
||||||
queue_entry["_type"] = "video"
|
queue_entry["_type"] = "video"
|
||||||
queue_entry["webpage_url"] = vurl
|
queue_entry["webpage_url"] = vurl
|
||||||
result = await self.dqueue.add_entry(
|
result = await self.dqueue.add_entry(
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ from yt_dlp.utils import STR_FORMAT_RE_TMPL, STR_FORMAT_TYPES
|
||||||
from dl_formats import get_format, get_opts, AUDIO_FORMATS
|
from dl_formats import get_format, get_opts, AUDIO_FORMATS
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from state_store import AtomicJsonStore, from_json_compatible, read_legacy_shelf, to_json_compatible
|
from state_store import AtomicJsonStore, from_json_compatible, read_legacy_shelf, to_json_compatible
|
||||||
|
from subscriptions import _entry_id
|
||||||
|
|
||||||
log = logging.getLogger('ytdl')
|
log = logging.getLogger('ytdl')
|
||||||
|
|
||||||
|
|
@ -930,6 +931,8 @@ class DownloadQueue:
|
||||||
if _add_gen is not None and self._add_generation != _add_gen:
|
if _add_gen is not None and self._add_generation != _add_gen:
|
||||||
log.info(f'Playlist add canceled after processing {len(already)} entries')
|
log.info(f'Playlist add canceled after processing {len(already)} entries')
|
||||||
return {'status': 'ok', 'msg': f'Canceled - added {len(already)} items before cancel'}
|
return {'status': 'ok', 'msg': f'Canceled - added {len(already)} items before cancel'}
|
||||||
|
if "id" not in etr:
|
||||||
|
etr["id"] = _entry_id(etr)
|
||||||
etr["_type"] = "video"
|
etr["_type"] = "video"
|
||||||
etr[etype] = entry.get("id") or entry.get("channel_id") or entry.get("channel")
|
etr[etype] = entry.get("id") or entry.get("channel_id") or entry.get("channel")
|
||||||
etr[f"{etype}_index"] = '{{0:0{0:d}d}}'.format(index_digits).format(index)
|
etr[f"{etype}_index"] = '{{0:0{0:d}d}}'.format(index_digits).format(index)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue