我创建了一个client_secrets.json文件,并编写了我从google api控制台获得的所有必填字段。现在我有一个测试播放列表,对该播放列表中的所有视频都有相同的描述,我想更新该播放列表,并使用python代码更改它的描述。
我已经复制了开发人员谷歌提供的这个链接https://developers.google.com/youtube/v3/docs/playlists/update#usage
中的代码,现在我不知道接下来的步骤是什么,因为我不熟悉python编程。任何人都可以指导我运行此程序并更新播放列表说明
在此先感谢
这是我复制的代码
import os
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
CLIENT_SECRETS_FILE = "client_secrets.json"
SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']
API_SERVICE_NAME = 'youtube'
API_VERSION = 'v3'
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 print_response(response):
print(response)
def build_resource(properties):
resource = {}
for p in properties:
prop_array = p.split('.')
ref = resource
for pa in range(0, len(prop_array)):
is_array = False
key = prop_array[pa]
if key[-2:] == '[]':
key = key[0:len(key)-2:]
is_array = True
if pa == (len(prop_array) - 1):
if properties[p]:
if is_array:
ref[key] = properties[p].split(',')
else:
ref[key] = properties[p]
elif key not in ref:
ref[key] = {}
ref = ref[key]
else:
ref = ref[key]
return resource
def remove_empty_kwargs(**kwargs):
good_kwargs = {}
if kwargs is not None:
for key, value in kwargs.iteritems():
if value:
good_kwargs[key] = value
return good_kwargs
def playlists_update(client, properties, **kwargs):
resource = build_resource(properties)
kwargs = remove_empty_kwargs(**kwargs)
response = client.playlists().update(
body=resource,
**kwargs
).execute()
return print_response(response)
if __name__ == '__main__':
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
client = get_authenticated_service()
playlists_update(client,
{'id': '',
'snippet.title': '',
'snippet.description': '',
'snippet.tags[]': '',
'status.privacyStatus': ''},
part='snippet,status',
onBehalfOfContentOwner='')
答案 0 :(得分:0)
我无法找到直接解决方案。 但经过一些研究,我可以给你以下指示。
根据我的说法,地图看起来像这样
就我而言,似乎没有直接的方法。