В предыдущей части я создал приложение на Google Cloud Platform и получил API Key — ключ приложения. С этим ключом я уже могу обращаться к YouTube API и получать общедоступную статистику.
Сегодня напишу простой скрипт на Python, который сможет получать заголовок, описание и статистику произвольного публичного канала и видео.
Установка клиента Google API Python Client
Сначала нужно установить библиотеку https://github.com/googleapis/google-api-python-client . Она будет работать под Python > 3.6. Установка как обычно
pip install --upgrade google-api-python-client. Я работаю с этой библиотекой и она официально поддерживается Google, однако у гугла есть и свой клиент https://github.com/googleapis/google-cloud-python , который вроде как более рекомендован для новых приложений. Однако я с ним ещё не работал.
У библиотеки Google API Python Client есть отдельный репозиторий с примерами https://github.com/youtube/api-samples посмотреть на них полезно. Но, местами, они чрезмерно усложнены, а мой скрипт максимально упрощен. Я не использовал сегодня никаких ключей (кроме API Key) и областей видимости.
Код скрипта
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import json from googleapiclient.discovery import build ''' !!!! Usefull links !!!!! https://github.com/googleapis/google-api-python-client https://github.com/youtube/api-samples https://developers.google.com/youtube/v3/docs https://developers.google.com/youtube/v3/determine_quota_cost pip install --upgrade google-api-python-client https://github.com/googleapis/google-cloud-python ''' print("** Hola Hey, Azzrael_YT subs!!!") API_KEY = '***************************' ''' Get YouTube API service w API Key only ''' def get_service(): service = build('youtube', 'v3', developerKey=API_KEY) return service ''' Get Channel Info (title, desc, stats) https://developers.google.com/youtube/v3/docs/channels/list Type og Channels Urls https://www.youtube.com/channel/UCXlhVxzpYqr2WguSWbzRNMw https://www.youtube.com/c/tntonlineru https://www.youtube.com/user/tn4east but my script works only w channel_id (hash) or w user/tn4east -> replace id=channel_id to forUsername='username' ''' def get_channel_info(channel_id = 'UCf6kozNejHoQuFhBDB8cfxA'): r = get_service().channels().list(id=channel_id, part='snippet,statistics').execute() # print(json.dumps(r)) print(r['items'][0]['snippet']['title']) print(r['items'][0]['snippet']['publishedAt']) print(r['items'][0]['statistics']['viewCount']) ''' Get Video Info (title, desc, stats) https://developers.google.com/youtube/v3/docs/videos/list ''' def get_video_info(video_id = 'nIGeJDX8kzg'): r = get_service().videos().list(id=video_id, part='snippet,statistics').execute() # print(json.dumps(r['items'])) print(r['items'][1]['snippet']['title']) print(r['items'][1]['statistics']['viewCount']) if __name__ == '__main__': # get_channel_info() # get_channel_info('UCkbSaWqttPHTS00K0fjniTQ') get_video_info('Ji4OKuRGN0k,4qgR-CmqV88') # get_video_info('T8OHuABIaro') |
Пояснение в коде скрипта и в видео
Также могут пригодиться такие ссылки.
- https://developers.google.com/docs/api/quickstart/python
- https://developers.google.com/youtube/v3/docs
- https://github.com/googleapis/google-api-python-client
- https://github.com/youtube/api-samples
Квоты YouTube API приложения
Напомню что у Google API есть квоты на использование. Они расходуются во время работы приложения. Проверяйте состояние квот в консоли в разделе iam-admin/quotas (в видео этот момент тоже есть).
Владимир 2021-05-08
"pip install —upgrade google-api-python-client" - на сайте одно длинное тире.
"pip install --upgrade google-api-python-client" - а в видео 2 коротких тире.