嗨,所以我发现了这个东西...所以我在用Python脚本上传YouTube视频。
from Google import Create_Service
from googleapiclient.http import MediaFileUpload
CLIENT_SECRET_FILE = 'client_secret.json'
API_NAME = 'youtube'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/youtube.upload']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
request_body = {
'snippet': {
'categoryI': 19,
'title': '<title>',
'description': '<description>',
'tags': [<tags>]
},
'status': {
'privacyStatus': 'public',
'selfDeclaredMadeForKids': False,
},
'notifySubscribers': True
}
mediaFile = MediaFileUpload('video_f.mp4')
response_upload = service.videos().insert(
part='snippet,status',
body=request_body,
media_body=mediaFile
).execute()
一切正常,但现在我需要改变YouTube频道,它上传到它不...
我试着删除client_secrets. json,然后用new oauth从其他google账户中用一个新的来替换它,但是没有用,python仍然在上传到旧的频道。
from Google import Create_Service
from googleapiclient.http import MediaFileUpload
CLIENT_SECRET_FILE = '' # <------- no client_secrets.json
API_NAME = 'youtube'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/youtube.upload']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
request_body = {
'snippet': {
'categoryI': 19,
'title': '<title>',
'description': '<description>',
'tags': [<tags>]
},
'status': {
'privacyStatus': 'public',
'selfDeclaredMadeForKids': False,
},
'notifySubscribers': True
}
mediaFile = MediaFileUpload('video_f.mp4')
response_upload = service.videos().insert(
part='snippet,status',
body=request_body,
media_body=mediaFile
).execute()
它甚至可以在没有客户端文件的情况下工作。我也试过删除pycache文件夹,什么也没做。搜索了网络,什么也没做。所以现在我在这里寻求帮助。
2条答案
按热度按时间06odsfpq1#
YouTube授权是基于频道的,当你第一次授权它运行时你选择了一个频道你只能访问这个频道。
存储在令牌pickle文件中的访问令牌和刷新令牌仅授予您对该通道的访问权限。
如果要上载到该通道,则需要再次授权,此时请选择不同的通道。重命名令牌pickle文件将导致它再次请求授权
您可以使用多个令牌pickle来存储不同通道的授权
izkcnapc2#
我只需要删除.pickle文件