【问题标题】:youtube.videos().insert AttributeError: 'NoneType' object has no attribute 'videos'youtube.videos().insert AttributeError: 'NoneType' 对象没有属性 'videos'
【发布时间】:2016-01-28 07:54:05
【问题描述】:

我正在编写这个非常简单的示例,以尝试解密 youtube API v3 示例给出的示例之一。对于我读到的here,应该可以使用方法 videos.insert 以上传给定的视频,但 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()

【问题讨论】:

    标签: python video youtube


    【解决方案1】:

    您的authenticate 函数不包含return 语句,因此它的返回值为None。错误是由此产生的明显后果。

    您可能想return service。虽然我相信您的代码包含其他错误,因为您试图将 http 参数传递给随后定义的 build

    【讨论】:

    • 你是对的,我必须返回(服务)我现在没有得到任何错误输出,但是参考你所说的关于尝试传递一个 http 参数来构建,代码示例来自 youtube 的是 return build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, http=credentials.authorize(httplib2.Http())) ,它正在传递令牌/用户代理流程。我现在没有错误,我怎样才能得到正在发生的事情的输出?提前谢谢你。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-01
      • 2021-12-26
      • 2019-07-23
      • 2018-05-13
      • 2020-09-07
      • 2017-05-03
      • 2023-03-16
      • 2018-07-14
      • 2013-06-16
      相关资源
      最近更新 更多