Youku API Python SDK
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test rename method Jan 17, 2015
youku update youku api from openapi.youku.com to api.youku.com Oct 17, 2018
.gitignore
LICENSE
README.md new release for python 3 Oct 17, 2016
setup.cfg for pypi Jan 18, 2015
setup.py

README.md

youku

Youku API Python SDK / 优酷 API Python 客户端

功能说明

优酷 API Python 客户端比较完整地实现了优酷开放平台官方的各种 API,具体功能和对应的类分别是:

  • 视频上传 (Video Upload) ,支持中断续传,YoukuUpload
  • OAuth2 授权,YoukuOauth
  • 用户(users),YoukuUsers
  • 评论(comments),YoukuComments
  • 视频(videos),YoukuVideos
  • 节目(shows),YoukuShows
  • 专辑(playlists),YoukuPlaylists
  • 搜索(searches),YoukuSearchs
  • 人物(persons),YoukuPersons
  • 数据约束(schemas),YoukuSchemas

注:本客户端不支持优酷视频下载功能,一方面官方 API 就不支持,另一方面已经 有很多第三方库实现了视频下载功能。

视频(videos) 与 节目(shows) 的区别: video 是任意的视频基本信息,包括普通用户上传的,也包括优酷提供的版权视频。 show 是指电影、电视剧、综艺节目等优酷自有内容。在 video 基础之上提供更多信息,如演员、导演等。

用户(users) 与 人物(persons) 的区别: user 指优酷网站上的注册用户, person 指节目中的演员、导演等特定实体。

开发说明

使用 pip 安装 youku: pip install youku

客户端已在 Python 2.6.x 以上测试过,兼容 Python 3 。依赖的第三方库只有 requests,使用 pip 安装时会自动安装 requests 。

各种 API 细节,如参数、返回值等请参考优酷 API 官方文档和本项目中的源代码及测试代码,基本上都是一一对应的。

基本说明: 各个功能分别对应相应的模块。例如查询一个视频的基本信息:

from youku import YoukuVideos

def main():
    youku = YoukuVideos(CLIENT_ID)
    video = youku.find_video_by_id(VIDEO_ID)

if __name__ == "__main__":
    main()

上传功能使用示例:

from youku import YoukuUpload

def main():
    file_info = {
      'title': u'Google I/O 2014',
      'tags': 'Google,IO',
      'description': 'I/O Keynote'
    }
    file = '/home/hanguokai/filename.mp4'
    youku = YoukuUpload(CLIENT_ID, ACCESS_TOKEN, file)
    youku.upload(file_info)

if __name__ == "__main__":
    main()

client_id 在这里获取。 access_token 可以从这里手工获取。

因为上传包含内部状态,所以每个上传文件需要新建一个 YoukuUpload 对象,并在一个线程中执行。 其它各功能 API 都是简单的无状态 REST 调用,所有请求只需要构建一个对象使用即可。

异常处理,所有功能产生的异常都会抛出 YoukuError 异常对象,表示优酷官方定义的异常。异常对象包括如下属性

  • status_code,返回的 HTTP 状态码
  • code,错误码
  • type,错误类型
  • description,错误描述