-
-
Save fxyw/6759e1ef9b91aadc29c54248493af742 to your computer and use it in GitHub Desktop.
Very simple Python sample to generate a refresh token for the YouTube API. Note that this will will also create a file called generate_token.py-oauth that contains this information.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import httplib2 | |
import os | |
import sys | |
from apiclient.discovery import build | |
from oauth2client.file import Storage | |
from oauth2client.client import flow_from_clientsecrets | |
from oauth2client import tools | |
# CLIENT_SECRETS_FILE, name of a file containing the OAuth 2.0 information for | |
# this application, including client_id and client_secret. You can acquire an | |
# ID/secret pair from the API Access tab on the Google APIs Console | |
# http://code.google.com/apis/console#access | |
# For more information about using OAuth2 to access Google APIs, please visit: | |
# https://developers.google.com/accounts/docs/OAuth2 | |
# For more information about the client_secrets.json file format, please visit: | |
# https://developers.google.com/api-client-library/python/guide/aaa_client_secrets | |
# Please ensure that you have enabled the YouTube Data API for your project. | |
CLIENT_SECRETS_FILE = "client_secrets.json" | |
# Helpful message to display if the CLIENT_SECRETS_FILE is missing. | |
MISSING_CLIENT_SECRETS_MESSAGE = """ | |
WARNING: Please configure OAuth 2.0 | |
To make this sample run you will need to populate the client_secrets.json file | |
found at: | |
%s | |
with information from the APIs Console | |
https://code.google.com/apis/console#access | |
For more information about the client_secrets.json file format, please visit: | |
https://developers.google.com/api-client-library/python/guide/aaa_client_secrets | |
""" % os.path.abspath(os.path.join(os.path.dirname(__file__), | |
CLIENT_SECRETS_FILE)) | |
# A limited OAuth 2 access scope that allows for uploading files, but not other | |
# types of account access. | |
YOUTUBE_READONLY_SCOPE = "https://www.googleapis.com/auth/youtube.readonly" | |
YOUTUBE_API_SERVICE_NAME = "youtube" | |
YOUTUBE_API_VERSION = "v3" | |
# use fix https://stackoverflow.com/a/35115277/2324547 for Oauth2 lib cannot import name 'run' | |
flags = tools.argparser.parse_args(args=[]) | |
# for google drive | |
flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, message=MISSING_CLIENT_SECRETS_MESSAGE, scope="https://www.googleapis.com/auth/drive.file") | |
storage = Storage("%s-oauth2.json" % sys.argv[-1]) | |
credentials = storage.get() | |
if credentials is None or credentials.invalid: | |
credentials = tools.run_flow(flow, storage, flags) | |
print ("Access Token: %s" % credentials.access_token) | |
print ("Refresh Token: %s" % credentials.refresh_token) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
use fix https://stackoverflow.com/a/35115277/2324547 for Oauth2 lib cannot import name 'run'