Get meta data and MRL from YouTube, SoundCloud, and other platforms(从YouTube、SoundCloud和其他平台获取元数据和MRL)
本文介绍了从YouTube、SoundCloud和其他平台获取元数据和MRL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
目前我正在使用LibVLC获取在线视频和音乐的元数据和MRL。
但仅为了获取此信息就需要大量愚蠢的开销。
...
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-Code相同的功能呢?希望有一个基于urllib的工作解决方案或其他解决方案。
可能的重复项:How can I parse YouTube and SoundCloud?
推荐答案
经过测试,我决定使用youtube_dl,因为它非常好用,并且支持很多平台:http://ytdl-org.github.io/youtube-dl/supportedsites.html
以下是我的示例代码:
#!/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'])
这篇关于从YouTube、SoundCloud和其他平台获取元数据和MRL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:从YouTube、SoundCloud和其他平台获取元数据和MRL
基础教程推荐
猜你喜欢
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
