Я работал над этой проблемой некоторое время,
Я использую API YouTube, чтобы перечислить все элементы плейлиста на канале, я прочитал это ниже: API данных YouTube — Как избежать авторизации URL перенаправления Google OAuth
Но мне все равно нужно открывать браузер и аутентифицировать мою программу для доступа к моей учетной записи YouTube каждый раз, когда я ее запускаю.
Согласно этой странице: https://developers.google.com/youtube/v3/getting-started
4. If your application will use any API methods that require user authorization,
read the authentication guide to learn how to implement OAuth 2.0 authorization.
Все, что мне нужно, это перечислить все доступные видео на канале.
Примеры кода предоставлены Google:
import os
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
from google_auth_oauthlib.flow import Flow
scopes = ["https://www.googleapis.com/auth/youtube.readonly"]
def main():
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
api_service_name = "youtube"
api_version = "v3"
client_secrets_file = "CREDFILE.json"
# Get credentials and create an API client
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
client_secrets_file, scopes)
credentials = flow.run_console()
youtube = googleapiclient.discovery.build(
api_service_name, api_version, credentials=credentials)
request = youtube.playlistItems().list(
part="snippet",
maxResults=30,
playlistId="PLAYLISTID"
)
response = request.execute()
print(response)
if __name__ == "__main__":
main()
Я поместил свои файлы credential.json в качестве указанного кода, но мне все еще нужно выполнить аутентификацию, а затем вставить код аутентификации в командную строку. Меня смущает использование здесь файлов credential.json.
Похоже, что это вызвано credentials = flow.run_console()
, возможно ли использовать другой метод для получения учетных данных?