python Google API/Youtube数据api如何在应用授权后切换频道

czfnxgou  于 2023-01-01  发布在  Python
关注(0)|答案(2)|浏览(156)

嗨,所以我发现了这个东西...所以我在用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文件夹,什么也没做。搜索了网络,什么也没做。所以现在我在这里寻求帮助。

06odsfpq

06odsfpq1#

YouTube授权是基于频道的,当你第一次授权它运行时你选择了一个频道你只能访问这个频道。
存储在令牌pickle文件中的访问令牌和刷新令牌仅授予您对该通道的访问权限。
如果要上载到该通道,则需要再次授权,此时请选择不同的通道。重命名令牌pickle文件将导致它再次请求授权
您可以使用多个令牌pickle来存储不同通道的授权

izkcnapc

izkcnapc2#

我只需要删除.pickle文件

相关问题