Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python youtube.videos().插入AttributeError:';非类型';对象没有属性';视频';_Python_Video_Youtube - Fatal编程技术网

Python youtube.videos().插入AttributeError:';非类型';对象没有属性';视频';

Python youtube.videos().插入AttributeError:';非类型';对象没有属性';视频';,python,video,youtube,Python,Video,Youtube,我正在编写这个非常简单的示例,试图解密youtube API v3示例给出的示例之一。据我所知,应该可以使用videos.insert方法上传给定的视频,但python返回: youtube.videos().insert AttributeError: 'NoneType' object has no attribute 'videos' 为了发现发生了什么,我重新安装了virtualenv,并通过easyinstall——upgrade安装了google api客户端库。它为我安装

我正在编写这个非常简单的示例,试图解密youtube API v3示例给出的示例之一。据我所知,应该可以使用videos.insert方法上传给定的视频,但python返回:

    youtube.videos().insert
AttributeError: 'NoneType' object has no attribute 'videos'
为了发现发生了什么,我重新安装了virtualenv,并通过easyinstall——upgrade安装了google api客户端库。它为我安装了以下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()

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


您可能想
退回服务
。虽然我相信您的代码包含其他错误,但因为您试图将
http
参数传递给
build
,这是后来定义的。

以下是让我开始上传的链接。我现在正在刷新我的身份验证令牌


你是对的,我必须返回(服务)我现在没有得到任何错误输出,但是参考你所说的关于尝试传递http参数来构建的内容,youtube的代码示例是
返回构建(youtube\u API\u服务\u名称,youtube\u API\u版本,http=credentials.authorize(httplib2.http())
,wich正在传递令牌/用户代理流。我现在没有错误了,我怎样才能得到正在发生的事情的输出?先谢谢你。