•  


Update auth libraries, fix script · puppup420247-org/api-samples@b38c3d2 · GitHub
Skip to content

Commit

Permalink
Update auth libraries, fix script
Browse files Browse the repository at this point in the history
The oauth2client library is deprecated. This update changes the sample to use the google-auth and google-auth-oauthlib libraries instead.

This update also fixes this script so that it executes properly.
  • Loading branch information
AndyDiamondstein committed Oct 20, 2017
1 parent 3702238 commit b38c3d2
Showing 1 changed file with 56 additions and 65 deletions .
121 changes: 56 additions & 65 deletions python/my_uploads.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
#!/usr/bin/python

import httplib2
# Retrieve the authenticated user's uploaded videos.
# Sample usage:
# python my_uploads.py

import argparse
import os
import sys
import re

from apiclient . discovery import build
from oauth2client . client import flow_from_clientsecrets
from oauth2client . file import Storage
from oauth2client . tools import argparser , run_flow
import google . oauth2 . credentials
import google_auth_oauthlib . flow
from googleapiclient . discovery import build
from googleapiclient . errors import HttpError
from google_auth_oauthlib . flow import InstalledAppFlow


# The CLIENT_SECRETS_FILE variable specifies the name of a file that contains
Expand All @@ -20,77 +25,63 @@
# https://developers.google.com/youtube/v3/guides/authentication
# For more information about the client_secrets.json file format, see:
# https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
CLIENT_SECRETS_FILE = "client_secrets.json"

# This variable defines a 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 {{ Cloud Console }}
{{ https://cloud.google.com/console }}
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 ))
CLIENT_SECRETS_FILE = 'client_secret.json'

# This OAuth 2.0 access scope allows for read-only access to the authenticated
# user's account, 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"

flow = flow_from_clientsecrets ( CLIENT_SECRETS_FILE ,
message = MISSING_CLIENT_SECRETS_MESSAGE ,
scope = YOUTUBE_READONLY_SCOPE )

storage = Storage ( "%s-oauth2.json" % sys . argv [ 0 ])
credentials = storage . get ()

if credentials is None or credentials . invalid :
flags = argparser . parse_args ()
credentials = run_flow ( flow , storage , flags )

youtube = build ( YOUTUBE_API_SERVICE_NAME , YOUTUBE_API_VERSION ,
http = credentials . authorize ( httplib2 . Http ()))

# Retrieve the contentDetails part of the channel resource for the
# authenticated user's channel.
channels_response = youtube . channels (). list (
mine = True ,
part = "contentDetails"
). execute ()

for channel in channels_response [ "items" ]:
# From the API response, extract the playlist ID that identifies the list
# of videos uploaded to the authenticated user's channel.
uploads_list_id = channel [ "contentDetails" ][ "relatedPlaylists" ][ "uploads" ]

print "Videos in list %s" % uploads_list_id

SCOPES = [ 'https://www.googleapis.com/auth/youtube.readonly' ]
API_SERVICE_NAME = 'youtube'
API_VERSION = 'v3'

# Authorize the request and store authorization credentials.
def get_authenticated_service ():
flow = InstalledAppFlow . from_client_secrets_file ( CLIENT_SECRETS_FILE , SCOPES )
credentials = flow . run_console ()
return build ( API_SERVICE_NAME , API_VERSION , credentials = credentials )

def get_my_uploads_list ():
# Retrieve the contentDetails part of the channel resource for the
# authenticated user's channel.
channels_response = youtube . channels (). list (
mine = True ,
part = 'contentDetails'
). execute ()

for channel in channels_response [ 'items' ]:
# From the API response, extract the playlist ID that identifies the list
# of videos uploaded to the authenticated user's channel.
return channel [ 'contentDetails' ][ 'relatedPlaylists' ][ 'uploads' ]

return None

def list_my_uploaded_videos ( uploads_playlist_id ):
# Retrieve the list of videos uploaded to the authenticated user's channel.
playlistitems_list_request = youtube . playlistItems (). list (
playlistId = uploads_list_id ,
part = " snippet " ,
maxResults = 50
playlistId = uploads_playlist_id ,
part = ' snippet ' ,
maxResults = 5
)

print 'Videos in list %s' % uploads_playlist_id
while playlistitems_list_request :
playlistitems_list_response = playlistitems_list_request . execute ()

# Print information about each video.
for playlist_item in playlistitems_list_response [ " items " ]:
title = playlist_item [ " snippet " ][ " title " ]
video_id = playlist_item [ " snippet " ][ " resourceId " ][ " videoId " ]
print " %s (%s) " % ( title , video_id )
for playlist_item in playlistitems_list_response [ ' items ' ]:
title = playlist_item [ ' snippet ' ][ ' title ' ]
video_id = playlist_item [ ' snippet ' ][ ' resourceId ' ][ ' videoId ' ]
print ' %s (%s) ' % ( title , video_id )

playlistitems_list_request = youtube . playlistItems (). list_next (
playlistitems_list_request , playlistitems_list_response )

print
if __name__ == '__main__' :
youtube = get_authenticated_service ()
try :
uploads_playlist_id = get_my_uploads_list ()
if uploads_playlist_id :
list_my_uploaded_videos ( uploads_playlist_id )
else :
print ( 'There is no uploaded videos playlist for this user.' )
except HttpError , e :
print 'An HTTP error %d occurred: \n %s' % ( e . resp . status , e . content )

0 comments on commit b38c3d2

Please sign in to comment.
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본