youtube.videos()。insert AttributeError:'NoneType'对象没有属性'videos'

时间:2016-01-28 07:54:06

标签: python video youtube

我正在编写这个非常简单的示例,尝试解密youtube API v3示例中给出的一个示例。对于我所读的here,视频应该是可用的,以便上传给定的视频,但是python返回:

    youtube.videos().insert
AttributeError: 'NoneType' object has no attribute 'videos'

为了发现正在发生的事情,我重新安装了我的virtualenv,并通过easyinstall --upgrade安装了google-api-client lib。它为我安装了以下库:

google-api-python-client==1.4.2
httplib2==0.9.2
oauth2client==1.5.2
pyasn1==0.1.9
pyasn1-modules==0.0.8
rsa==3.3
simplejson==3.8.1
six==1.10.0
uritemplate==0.6
wheel==0.26.0

此方法不可用,但导入正常(导入时没有错误)

伪代码:

import httplib2
import os
from oauth2client import tools
from oauth2client.client import AccessTokenCredentials
from oauth2client.client import AccessTokenRefreshError
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
import urllib


def authenticate():
    #scope = "https://www.googleapis.com/auth/youtube.upload"
    service = build('youtube', 'v3', http=http)
    acc_token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    flow = AccessTokenCredentials(
        acc_token, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
    http = httplib2.Http()
    http = flow.authorize(http)


def initialize_upload(youtube):
    tags = None
    youtube.videos().insert
    media_body = MediaFileUpload('1977.mp4', mimetype='video/mp4',
                                 chunksize=1024 * 1024, resumable=True)


def execute():
    youtube = authenticate()
    initialize_upload(youtube)

execute()

2 个答案:

答案 0 :(得分:0)

您的authenticate函数不包含return个语句,因此其返回值为None。这个错误是一个明显的后果。

你可能想要return service。虽然我认为您的代码包含其他错误,但是您尝试将http参数传递给后来定义的build

答案 1 :(得分:0)

这是使我开始上载的链接。我现在正在刷新我的身份验证令牌。

https://developers.google.com/youtube/v3/guides/uploading_a_video