You are currently viewing API | Набор данных Youtube-1

API | Набор данных Youtube-1

Google предоставляет разработчику большой набор API на выбор. Каждая услуга, предоставляемая Google, имеет соответствующий API. Будучи одним из них, API данных Youtube очень прост в использовании и предоставляет такие функции, как:

  • Поиск видео
  • Обрабатывайте видео, например, извлекайте информацию о видео, вставляйте видео, удаляйте видео и т.д.
  • Обрабатывайте подписки, например, перечисляйте все подписки, вставляйте или удаляйте подписку.
  • Извлеките информацию о комментариях, таких как ответы на конкретный комментарий, указанный родительским именем и т. д.

В этой статье мы обсудим API Google Youtube. Пожалуйста, выполните следующие действия, чтобы включить API и начать его использовать.

  1. Создайте новый проект, включите API и создайте учетные данные: На этом шаге мы создадим проект и включим API.
  • Перейдите в консоль разработчиков Google и нажмите «Войти» в правом верхнем углу страницы. Войдите в систему, используя учетные данные действительной учетной записи Google. Если у вас нет учетной записи Google, сначала настройте учетную запись, а затем используйте сведения для входа на домашнюю страницу разработчиков Google.
  • Теперь перейдите на панель инструментов разработчика и создайте новый проект.
  • Нажмите на опцию Включить API.
  • В поле поиска найдите API данных Youtube и выберите опцию API данных Youtube, которая находится в раскрывающемся списке.
  • Вы будете перенаправлены на экран с информацией об API данных Youtube, а также двумя вариантами : ВКЛЮЧИТЬ и ПОПРОБОВАТЬ API
  • Нажмите на опцию ВКЛЮЧИТЬ, чтобы начать работу с API.
  • На боковой панели в разделе API и службы выберите Учетные данные.
  • На вкладке Учетные данные выберите раскрывающийся список Создать учетные данные и выберите ключ API.

Существует два типа учетных данных: Ключ API и OAuth. OAuth предоставляет вам идентификатор клиента и Секретный ключ в виде .json файл. OAuth обычно используется там, где требуется авторизация, например, в случае получения понравившихся видео пользователя. Поэтому в остальных случаях, когда авторизация не требуется, например, для поиска видео по ключевому слову или для поиска связанных видео и т. д., Мы будем использовать ключ API.

2. Установка: Клиент Google API для python можно установить с помощью простого команда pip:

pip install --upgrade google-api-python-client

Давайте начнем с Функция поиска.

Существует пять вариантов способ поиска – Поиск по ключевым словам, Поиск по местоположению, Поиск живых событий, Поиск связанных видео и Поиск моих видео. Давайте рассмотрим первые два типа метода поиска.

Функция поиска по ключевым словам: Это вернет список видео, каналов и плейлистов в соответствии с поисковым запросом. По умолчанию, если параметр типа пропускается, метод будет отображать видео, каналы и плейлисты. Значение по умолчанию максимальные результаты параметр равен 5. В этом примере извлекаются результаты, связанные с ключевым словом “ProgramBox”.

from apiclient.discovery import build

# Arguments that need to passed to the build function
DEVELOPER_KEY = "your_API_Key"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

# creating Youtube Resource Object
youtube_object = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
										developerKey = DEVELOPER_KEY)


def youtube_search_keyword(query, max_results):
	
	# calling the search.list method to
	# retrieve youtube search results
	search_keyword = youtube_object.search().list(q = query, part = "id, snippet",
											maxResults = max_results).execute()
	
	# extracting the results from search response
	results = search_keyword.get("items", [])

	# empty list to store video,
	# channel, playlist metadata
	videos = []
	playlists = []
	channels = []
	
	# extracting required info from each result object
	for result in results:
		# video result object
		if result['id']['kind'] == "youtube# video":
			videos.append("% s (% s) (% s) (% s)" % (result["snippet"]["title"],
							result["id"]["videoId"], result['snippet']['description'],
							result['snippet']['thumbnails']['default']['url']))

		# playlist result object
		elif result['id']['kind'] == "youtube# playlist":
			playlists.append("% s (% s) (% s) (% s)" % (result["snippet"]["title"],
								result["id"]["playlistId"],
								result['snippet']['description'],
								result['snippet']['thumbnails']['default']['url']))

		# channel result object
		elif result['id']['kind'] == "youtube# channel":
			channels.append("% s (% s) (% s) (% s)" % (result["snippet"]["title"],
								result["id"]["channelId"],
								result['snippet']['description'],
								result['snippet']['thumbnails']['default']['url']))
		
	print("Videos:\n", "\n".join(videos), "\n")
	print("Channels:\n", "\n".join(channels), "\n")
	print("Playlists:\n", "\n".join(playlists), "\n")

if __name__ == "__main__":
	youtube_search_keyword('Geeksforgeeks', max_results = 10)

Выход:

Функция поиска по местоположению: В этом примере извлекаются результаты, связанные с ключевым словом “ProgramBox”. Запрос извлекает 5 лучших результатов в пределах 100 км (указано locationRadius значение параметра) точки, указанной значением параметра местоположения.

from apiclient.discovery import build

# Arguments that need to passed to the build function
DEVELOPER_KEY = "your_API_Key"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

# creating Youtube Resource Object
youtube_object = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
										developerKey = DEVELOPER_KEY)


def youtube_search_location(query, max_results = 5):
	
	# calling the search.list method to retrieve youtube search results
	search_location = youtube_object.search().list(q = query, type ='video',
										location ='20.593683, 78.962883',
							locationRadius ='100km', part = "id, snippet",
										maxResults = max_results).execute()
	
	# extracting the results from search response
	results = search_location.get("items", [])

	# empty list to store video metadata
	videos = []
	
	# extracting required info from each result object
	for result in results:

		# video result object
		videos.append(result["id"]["videoId"])
	video_ids = ", ".join(videos)
	video_response = youtube_object.videos().list(id = video_ids, part ='snippet,
													recordingDetails').execute()
		
	search_videos = []
	for video_result in video_response.get("items", []):
		search_videos.append("% s, (% s, % s)" %(video_result["snippet"]["title"],
						video_result["recordingDetails"]["location"]["latitude"],
					video_result["recordingDetails"]["location"]["longitude"]))

	print ("Videos:\n", "\n".join(search_videos), "\n")
	
if __name__ == "__main__":
	youtube_search_location('Geeksforgeeks', max_results = 5)

Выход:

Примечание: location параметр-это строка, указывающая координаты широты/долготы географического местоположения.

  • параметр местоположения определяет точку в центре области.
  • Параметр locationRadius указывает максимальное расстояние, на котором может находиться местоположение, связанное с видео, от этой точки, чтобы видео все еще было включено в результаты поиска.

type аргументом может быть только Видео в этом типе метода поиска. В этом примере мы использовали координаты широты/ долготы для Дели, Индия.

Примечание: В приведенном выше примере мы использовали только ограниченные параметры. Есть много других параметров, которые можно задать, и если они не заданы, то какое значение по умолчанию они принимают, можно узнать из Документация по списку поиска Youtube. Пожалуйста, обратитесь к документации, чтобы получить полное представление о доступных параметрах.