Ошибка доступа к API данных Youtube с использованием Python - PullRequest
0 голосов
/ 25 апреля 2020

Я следую инструкции, найденной здесь https://www.geeksforgeeks.org/youtube-data-api-set-1/. После запуска приведенного ниже кода я получаю ошибку «Нет модуля с именем apiclient». Я также попытался использовать «из обнаружения импорта googleapiclient», но это также дало ошибку. У кого-нибудь есть альтернативы, которые я могу попробовать?

Я уже импортировал pip install --upgrade google-api- python -client

Буду признателен за любую помощь / предложения!

Вот код:

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) 

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

С этой информацией трудно сказать, в чем проблема. Но иногда я бился головой об стену, когда устанавливал что-то с помощью pip (Python2), а затем пытался импортировать модуль в Python3 или наоборот.

Так что, если вы запускаете свой скрипт с Python3, попробуйте установить пакет с помощью pip3 install --upgrade google-api-python-client

0 голосов
/ 26 апреля 2020

Попробуйте документы на YouTube здесь:

https://developers.google.com/youtube/v3/code_samples

Они работали для меня на недавно обновленном Slackware_64 14.2

Я использую их с Python 3.8. Поскольку также может быть установлена ​​версия 2 Python, я обязательно использую это в строке интерпретатора:

! / Usr / bin / python3 .8

Аналогично с pip, я использую pip3.8 для установки зависимостей

Я установил Python из исходного кода. python3 .8 - версия Python 3.8.2

Вы также можете посмотреть это видео здесь:

https://www.youtube.com/watch?v=qDWtB2q_09g

Это как-то объясняет, как использовать обозреватель API YouTube. Вы можете скопировать примеры кода прямо оттуда. Приведенное выше видео охватывает Android, но та же концепция применима к Python в отношении использования обозревателя API YouTube.

Я согласен с предыдущим ответом относительно контроля версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...