Youtube Data API使用简介

本文适用于希望编写YouTube交互程序的开发者, 可以快速地了解Youtube Data API接口使用方法. Youtube具有海量的视频, 如何根据需要快速地检索到想要的视频十分重要. 通过查阅资料发现, google已经提供了Youtube开发者网站, 主页为: https://developers.google.com/youtube/v3. 开发者网站对外提供web访问接口, 称为Youtube Data API. 根据官方介绍, 由API的使用者可以归纳为两类:

  1. Uploader
    视频上传者可以通过API上传视频, 管理播放列表和订阅,更新频道设置等.
  2. Watcher&Searcher
    视频观看者可以使用API完成基于关键词,主题,位置,发布日期等的视频检索功能, 此外还支持播放列表和频道的检索功能.

本文主要介绍使用到的Searcher功能, 通过API随机检索youtube视频, 并提取视频相关信息.

1. 准备阶段

在使用Youtube Data API前, 需要用户通过Google帐户才能访问Google API控制台, 注册获取API密钥.
进入控制台 https://console.developers.google.com/ 创建项目.
Youtube Data API使用简介_第1张图片

项目创建成功后, 进入API控制台选择刚注册的项目开启API https://console.developers.google.com/apis/enabled
Youtube Data API使用简介_第2张图片

在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: [email protected]\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']
	}
}]

你可能感兴趣的:(爬虫,api,google)