expand_url: watch-ссылка с list= раскрывается в весь плейлист
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,9 +18,19 @@ _VIDEO_EXTS = {".mp4", ".mkv", ".webm", ".m4a", ".mp3", ".mov", ".opus", ".ogg",
|
||||
def expand_url(url: str) -> dict:
|
||||
"""Определяет, видео это или плейлист, и возвращает список элементов.
|
||||
|
||||
Ссылка вида watch?v=…&list=… (видео внутри плейлиста) трактуется как весь
|
||||
плейлист — именно её люди копируют из адресной строки.
|
||||
|
||||
Returns: {"kind": "video"|"playlist", "title": str,
|
||||
"entries": [{"url": str, "title": str}, ...]}
|
||||
"""
|
||||
m = re.search(r"[?&]list=([A-Za-z0-9_\-]+)", url)
|
||||
if m and "playlist?" not in url:
|
||||
# RD… и LL/WL — авто-миксы и служебные списки, их не разворачиваем
|
||||
list_id = m.group(1)
|
||||
if not list_id.startswith(("RD", "LL", "WL")):
|
||||
url = f"https://www.youtube.com/playlist?list={list_id}"
|
||||
|
||||
opts = {
|
||||
"extract_flat": "in_playlist",
|
||||
"quiet": True,
|
||||
|
||||
Reference in New Issue
Block a user