我正在用Python、discord.py和yt制作一个不和谐的音乐机器人。目前,由于下载和年龄限制问题,我正试图从yt切换到yt。使用yt-dl,我用这种方式从播放列表中提取音频文件:
with YoutubeDL(YDL_OPTIONS) as ydl:
info = ydl.extract_info(link, download=False)
if 'entries' in info:
for i in info['entries']:
URL = {'source': i['formats'][0]['url'], 'title': i['title']}
然而,与yt,做类似的,而不是.m4a音频文件链接,我得到.png的。守则:
with yt_dlp.YoutubeDL(YDL_OPTIONS) as ydl:
info = ydl.extract_info(link, download=False)
if 'entries' in info:
for i in info['entries']:
URL = {'source': i['formats'][0]['url'], 'title': i['title']}
响应示例:{'source': 'https://i.ytimg.com/sb/OAJxPrblJVM/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgiliZD6BA==&sigh=rs$AOn4CLBvGbBD6K5s-QiVDyRxUvag_OIPjA', 'title': "La filière technologique: une voie d'avenir pour le ly cée"} {'source': 'https://i.ytimg.com/sb/gOWP6cbdKLk/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgiT2436BA==&sigh=rs$AOn4CLAgYfXSQ0jWHKjwExmWdt1wdP-YUg', 'title': "L'orientation sera au coeur de la réforme du lycée"} {'source': 'https://i.ytimg.com/sb/og4yqREh62c/storyboard3_L0/default.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgiwkpf6BA==&sigh=rs$AOn4CLBnJodnuCqLQG7iR9pgYsZ5V6S4Qg', 'title': "La réforme du lycée repart de l'écoute des lycéens"}
此外,如果我试图提取所有的信息,我可以看到所需的音频文件链接,但我不知道如何获得它。下面是响应的一部分(完整的响应非常大),指向音频文件的必要链接被标记为粗体文本:
toahiKy96P4LXxaNMUl_W3jUcP_TpYP&itag=139&source=youtube&requiressl=yes&mh=jG&mm=31%2C29&mn=sn-gvnuxaxjvh-2x1e%2Csn-gvnuxaxjvh-bvwz&ms=au%2Crdu&mv=m&mvi=2&pl=23&initcwndbps=873750&spc=yR2vp0NTlOub5mskvyfR0I9C6-kv-2A&vprv=1&svpuc=1&mi me=audio%2Fmp4&gir=yes&clen=773851&otfp=1&dur=126.780&lmt=1580393148840606&mt=1667211200&fvip=15&keepalive=yes&fexp=24001373%2C24007246&c=ANDROID&txp=1311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2C {'url': 'https:/ /i.ytimg.com/sb/gHqYAn2L24Q/storyboard3_L2/M2.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgj02_j5BA==&sigh=rs$AOn4CLBkcDmLTu7EN56_U2UM9EQauDaJ-Q', 'duration': 29.307692307692307}], 'audio_ext': 'none', 'video_ext': 'none', 'format': 's b0 - 159x90 (storyboard)', 'resolution': '159x90', 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36', 'Accept': 'text/html,application /xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}, {'asr': 22050, 'filesize': 773851, 'format_id': '139', 'format_note': 'low', 'source_preference': -1, 'fps': None, 'au dio_channels': 2, 'height': None, 'quality': 2, 'has_drm': False, 'tbr': 48.831,
'url':'https://rr2---sn-gvnuxaxjvh-2x1e.googlevideo.com/videoplayback?expire=1667233204&ei=VKFfY5-LDqGZv_IP6Ky5qAk&ip=95.152.62.109&id=o-AEdgltBbtFpm9 svpuc%2 2Cmime‘%2Cgir%2Cclen%2Cotfp%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAPC7fHdvLuR_k0wI0v95P6mm8SbYd8hRbGqPhI_GKoP2AiEAoDeEmSq6tUQS74CbcbiONt_emQ8s-7bgiK3tYLqBxJs%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAL Mkx-elSRZ35L4pFDZbsisyh6oUK1FdUZprii24CThuAiBVmFyj1WHj7BRK0iWm_ynTyqioAFfJ7uO50VVbTuz7sg%3D%3D','width': None, 'language': '', 'language_preference': -1, 'preference': None, 'ext': 'm4a', 'vcodec': 'none', 'acodec': 'mp4a.40.5', 'd ynamic_range': None, 'abr': 48.831},
我怎么才能解决这个问题?提前感谢!
发布于 2022-11-11 19:20:27
yt支持故事板,这在youtube-dl中是不可用的。代码接受所有可用格式列表中的第一项,这是质量最低的格式,按youtube-dl/yt排序。在youtube-dl上,在YouTube视频上,这是质量最低的音频格式。然而,在yt中,也有故事板,它们被认为比音频更“糟糕”。
这里最好的方法是使用info中的requested_downloads
值,它只包含您可以在YDL_OPTIONS
中指定的格式选择器所选择的格式。
如果将formats
在YDL_OPTIONS
中设置为all[acodec!=none][vcodec=none]
,则i['requested_downloads']
应包含所有仅音频格式的列表。你还可以只获得一种格式--将其设置为bestaudio
(最佳质量音频)、worstaudio
(最差质量音频--与先前youtube-dl相同的选择),甚至类似于bestaudio.2
(第二好的音频质量)的格式。您还可以在格式选择器中设置回退,比如bestaudio.2/bestaudio
(第二好音频,如果没有第二最佳音频,则设置最佳音频)。
https://stackoverflow.com/questions/74262376
复制相似问题