首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从YouTube、SoundCloud和其他平台获取元数据和MRL

从YouTube、SoundCloud和其他平台获取元数据和MRL
EN

Stack Overflow用户
提问于 2021-04-29 15:58:28
回答 1查看 191关注 0票数 0

目前,我正在使用LibVLC获取在线视频和音乐的元数据和MRL

但这是很多愚蠢的开销,只是为了获取这些信息。

代码语言:javascript
复制
...
from vlc import Instance as vlcInstance, MediaList, MediaListPlayer, Event, EventType, State
...
self.player = MediaListPlayer(vlcInstance(options))
...
        self.list = MediaList(self._mrls)
        self.player.set_media_list(self.list)
...
        media = self.player.get_media_player().get_media()
        if media.get_meta(1) is not None and self.trackChangedEventCallback is not None:
            self.trackChangedEventCallback(
                media.get_meta(0),  # Title
                media.get_meta(1),  # Artist
                media.get_meta(6),  # Description
                media.get_meta(10), # URL
                media.get_meta(15)  # Artlink
            )
        print(media.get_mrl()) # MRL
...

当然,有针对不同平台的包,但我不想用另一个平台替换一个愚蠢的开销。我已经快速查看了VLC的youtube.lua脚本,但我没有找到一个好主意。LibVLC是如何进行这个解析以获得元和mrl的?

网络抓取是另一个想法,但在这一点上我似乎不太可靠。

那么,我如何才能在不使用巨大开销的情况下与我的LibVLC代码相同呢?希望有一个基于urllib的工作解决方案或其他东西。

可能重复:https://stackoverflow.com/questions/67322391/how-can-i-parse-youtube-and-soundcloud

EN

回答 1

Stack Overflow用户

发布于 2021-04-29 20:01:21

经过一些测试后,我决定使用dl,因为它非常容易使用,并且支持许多平台:http://ytdl-org.github.io/youtube-dl/supportedsites.html

下面是我的示例代码:

代码语言:javascript
复制
#!/usr/bin/env python3
import youtube_dl as ydl

url = "https://www.youtube.com/watch?v=6qEzh3wKVJc"

with ydl.YoutubeDL(
    {
        "forcejson": True,
        "noplaylist": True,
        "format": "bestaudio"
    }
) as parser:
    meta = parser.extract_info(
        url,
        download=False
    )

print(meta['thumbnail'])
print(meta['title'])
print(meta['url'])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67321002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档