从youtube ID获取流派

时间:2016-07-19 07:20:05

标签: python youtube

def get_data(key, region, *ids):
    url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id={ids}&key={api_key}"
    r = requests.get(url.format(ids=",".join(ids), api_key=key))
    js = r.json()
    items = js["items"]
    cat_js = requests.get("https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&regionCode={}&key={}".format(region,
    key)).json()
    categories = {d['id']: d["snippet"]['title'] for d in cat_js["items"]}
    for item in items:
        yield item["snippet"]["title"], categories[item["snippet"]["categoryId"]]  

我有上述功能来获取youtube类别和视频名称。有没有办法获得音乐视频的流派,即Pop,Rock,House等?请帮忙!

1 个答案:

答案 0 :(得分:5)

我不知道这种类型是否被标记 - 可能不会。

如果没有,我建议两个选择。

轻松

  • 获取音乐流派列表(例如here,但您可以根据自己的任务定义自己的音乐流派)
  • 每次获得标题时,请分隔艺术家姓名和音乐名称
  • 使用艺术家姓名查询维基百科,并检查是否引用了某些音乐类型。
  • 如果存在,请使用歌词名称查询维基百科以检查是否引用了类型。

PS:如果需要,您可以引用其他网站(例如更准确)。作为另一个开源数据库,请选中http://musicbrainz.org/,为每位艺术家提供标签。你必须自动查询这些页面 - 维基百科很容易,因此第一个命题(check that)。

很难:

  • 获取一系列标有其流派的音乐
  • 提取音频功能
  • 使用之前的功能训练分类器
  • 通过此分类器对任何新音乐进行分类(例如,对于给定的音乐,将概率与每个类型相关联 - 并定义thresold(s)以保留其中一些)
  • 如果做得好,请到主要音乐公司聘请 - 有些人尝试过不太好的结果