本文适用于希望编写YouTube
交互程序的开发者, 可以快速地了解Youtube Data API接口使用方法. Youtube
具有海量的视频, 如何根据需要快速地检索到想要的视频十分重要. 通过查阅资料发现, google
已经提供了Youtube
开发者网站, 主页为: https://developers.google.com/youtube/v3. 开发者网站对外提供web访问接口, 称为Youtube Data API
. 根据官方介绍, 由API的使用者可以归纳为两类:
- Uploader
视频上传者可以通过API上传视频, 管理播放列表和订阅,更新频道设置等. - Watcher&Searcher
视频观看者可以使用API完成基于关键词,主题,位置,发布日期等的视频检索功能, 此外还支持播放列表和频道的检索功能.
本文主要介绍使用到的Searcher功能, 通过API随机检索youtube视频, 并提取视频相关信息.
1. 准备阶段
在使用Youtube Data API前, 需要用户通过Google帐户才能访问Google API控制台, 注册获取API密钥.
进入控制台 https://console.developers.google.com/ 创建项目.
项目创建成功后, 进入API控制台选择刚注册的项目开启API https://console.developers.google.com/apis/enabled
在API列表中搜索youtube, 找到YouTube Data API v3
开启即可.
2. 视频检索
youtube视频在服务器中存在一个唯一索引即vid
. 视频检索, 即检索一个有效的vid
.
random_string = 'LXU' # 随机字符串
api_key = '注册获取的API_KEY'
api_uri = 'https://www.googleapis.com/youtube/v3/
vid_random_search_url = f'{api_uri}search?key={api_key}&maxResults=10&part=id&type=video&q={random_string}'
# maxResults=10表示检索结果的最大个数为10
通过curl即可检索到视频的vid.
3. 检索视频信息
API提供的视频信息主要包括以下内容:
snippet
title(标题), description(描述), publishedAt(发布时间), channelTitle(频道标题), channelId(频道ID), categoryId(视频所属类别ID)
contentDetails
duration(视频时长), dimension(2d/3d), definition(清晰度/分辨率hd/sd)
statistics
viewCount(观看), likeCount(点赞), dislikeCount(点踩), favoriteCount(喜爱), commentCount(评论)
//检索方式为:
vid = 'ZQrOIZgGbgQ'
video_info_search_url = f'{api_uri}videos?id={vid}&part=snippet,contentDetails,statistics,topicDetails&key={api_key}'
4. 检索CategoryId对应的类别名称
根据视频的主题/分类CategoryId
检索主题名/分类名.
topicDetails
relevantTopicIds, topicCategories
//检索方式
categoryId = '10'
video_category_search_url = f'{api_uri}videoCategories?part=snippet&id={categoryId}&key={api_key}'
5. 结果
5.1. URI
https://www.googleapis.com/youtube/v3/search?key=***API_KEY***&maxResults=2&part=id&type=video&q=LXU
https://www.googleapis.com/youtube/v3/videos?id=ZQrOIZgGbgQ&part=snippet,contentDetails,statistics,topicDetails&key=***API_KEY***
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&id=28&key=***API_KEY***
https://www.googleapis.com/youtube/v3/videos?id=y0LRXBQDpRI&part=snippet,contentDetails,statistics,topicDetails&key=***API_KEY***
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&id=10&key=***API_KEY***
5.2 检索结果
[{'vid': 'ZQrOIZgGbgQ','randomString': 'LXU','snippet': {'title': 'LXU casa prefabbricata','description': 'Il portale per consultare i prezzi case prefabbricate, case prefabbricate in legno, case prefabbricate in cemento armato.\nI progetti, i prezzi, i cantieri e le news sulle case prefabbricate','publishedAt': '2017-02-28T06:10:57Z','channelTitle': 'Prezzi Case Prefabbricate','channelId': 'UClZBymX5oADLQ_5SYGEekcg','categoryId': '28','categoryName': 'Science & Technology'},'contentDetails': {'duration': 64,'dimension': '2d','definition': 'hd'},'statistics': {'viewCount': '52553','likeCount': '144','dislikeCount': '19','favoriteCount': '0'},'topicDetails': {'relevantTopicIds': ['/m/019_rr', '/m/03glg', '/m/019_rr', '/m/03glg'],'topicCategories': ['https://en.wikipedia.org/wiki/Hobby', 'https://en.wikipedia.org/wiki/Lifestyle_(sociology)']}
}, {'vid': 'y0LRXBQDpRI','randomString': 'LXU','snippet': {'title': 'LxU - #hot16challenge2 feat. FakeFreshDumbledore [Prod. Call Me G]','description': 'Souncloud: https://soundcloud.com/user-370669292/hot16bars2-feat-fakefreshdumbledore\n\n!!!HINWEIS!!! \n\nDieses grandiose Produkt überragender Kompetenz wurde innerhalb von 72h aufgenommen, gefilmt und geschnitten und das sieht/h?rt man auch.\n\nWir übernehmen keine Verantwortung für eventuelle Verdummung und/oder daraus resultierende Abstumpfung durch den Konsum dieses Meisterwerks!\n\n\n\nHintergrund #hot16challenge2 :\n\nHot16challenge ist eine Initiative für Rapper und S?nger. Die Idee der Aktion ist, einen Vers mit 16 Takten aufzunehmen, ihn zu ver?ffentlichen und dann vier weitere Künstler zu nominieren, die 72 Stunden Zeit haben, um zu antworten. Hauptziel von Hot16challenge ist es, so viele Künstler wie m?glich zu aktivieren und zuerst die Hip-Hop-Industrie und dann hoffentlich die gesamte Musikindustrie zu mobilisieren, um COVID-19 durch Musik zu bek?mpfen. Hot16challenge-Teilnehmer und ihre Fans k?nnen auf https://www.gofundme.com/f/hot16chall... den Kampf gegen den Coronavirus spenden.\n\nVor sechs Jahren wurde #hot16challenge als Künstler-zu-Künstler-Bewegung viral. Jetzt starten wir eine Fortsetzung, aber mit einer gemeinnützigen Wendung und weltweit. \n\n\n\n\n\nNominierungen:\n\nLyrisLost:\nInstagram: https://www.instagram.com/lyrislost/\nYoutube: https://www.youtube.com/channel/UC0OZQYa84UxpPCnKN9HO51w\n\n\nLUV: SOLU :\nInstagram: https://www.instagram.com/luv_solu/\nYoutube: https://www.youtube.com/channel/UCOSGrBIYQbANrY-gsxCGkGA\n\n\nEminem:\nInstagram: https://www.instagram.com/eminem/\nYoutube: https://www.youtube.com/user/EminemMusic\n\n\nHelene Fischer:\nInstagram: https://www.instagram.com/helenefischer/\nYoutube: https://www.youtube.com/user/helenefischer\n\n\n\n\n\nLEUTE HINTER DIESEM MEISTERWERK :\n\n\n\nBeat: https://www.youtube.com/watch?v=T0Tkd6m6kpI \n\nCall me G: https://www.youtube.com/channel/UCiFS_E_63VjpSxzbIP9iRZQ\n\n\n\n\n\nVideoschnitt mit meiner Regie:\nTius\nhttps://www.instagram.com/teasingtius/\n\n\n"Kamera": \nAlina\nhttps://www.instagram.com/alina_marie2606/ \n\n\n\nIdee:\n\nLxU \nInstagram: https://www.instagram.com/l__x__u/\nYoutube: https://www.youtube.com/channel/UCUx30nt2CwLLDlwcjOkmmRw\nGmail: luckasxunknow@gmail.com\n\n\n\nKUSS AN DIE EHRENM?NNER IM VIDEO\n\n\n\nText:\n\nDas ist 16bars 2; Netflix teenage moms geil\nTeenage-Mutant-Ninja-Turtles, Hirnis sind mein Staatsfeind\nIch bin einfach nur geil, mache W?sche wieder wei?\nBro sie nenn mich wei?er Riese, dikker Stichwort Wei?er Hai\n\nDiese Haiforscherbitches suchen keine Orca Snitch ey\nSie sind auf der Suche nach dem gro?en Wei?en, in mein Slips ey\nBin so hart Lauch, vegane Hoes würden an meinem Meat nagen\nDu bist so nen Spast g?nnst dir ne Polin in nem Mietwagen\n\nSchreibe alle Texte in der Hotboxmatrix\nGeheimratsecken sind auf dieser ?berbossbasis \nAlle sagen immer ich w?r von Medusa gefickt\nDoch ich bin nur stoned lookalike von *picklerick*\n\nIch penetrier deine Mum mit meinem schei? Enderstab\nBaller ihn rein wie ein Kolben und sie schreit wie ein Schaf\nDeine Mum m?cht Hertha/h?rter bangen, ya sie steckt in einer Krise\nDoch das geht nicht denn die ist ne Randerscheinung, K?LNER ZIEGE\n\nHook (Fake Fresh Dumbledore):\n16bars, Hook bin der Hellste nennt mich Lampenlord\nIch werde zwar alt doch bleib für immer\nFresh Dumbledore\nBaller weiter deine Mum doch nicht mehr mit dem Enderstab\nSchei? einfach MC man und g?nn ihr jetzt mit Elderstab! \n\n\n\n\n\nDANKE F?R DIE NOMINIERUNG AN NIKLAS AKA LUCKYPUNCH.\n\n\n!!! EHRE AN ALLE DIE MIR NEN FEEDBACK IN DEN KOMMENTAREN HINTERLASSEN !!!','publishedAt': '2020-05-23T17:00:12Z','channelTitle': 'Luckas x Unknow','channelId': 'UCUx30nt2CwLLDlwcjOkmmRw','categoryId': '10','categoryName': 'Music'},'contentDetails': {'duration': 156,'dimension': '2d','definition': 'hd'},'statistics': {'viewCount': '190','likeCount': '21','dislikeCount': '0','favoriteCount': '0','commentCount': '4'},'topicDetails': {'relevantTopicIds': ['/m/0glt670', '/m/04rlf', '/m/04rlf', '/m/0glt670'],'topicCategories': ['https://en.wikipedia.org/wiki/Hip_hop_music', 'https://en.wikipedia.org/wiki/Music']}
}]