baijiayun.client.api.video 源代码

# encoding: utf-8
from __future__ import absolute_import, unicode_literals

import datetime

from optionaldict import optionaldict

from .base import BaseAPI


[文档]class Video(BaseAPI): """ 视频 """
[文档] def get_upload_url( self, file_name, definition, audio_with_view=0, format=None, encrypt=None, use_https=0, ): """ 获取视频/音频上传地址 通过此接口,可以初始化一个视频/音频,并获取上传地址。 :param file_name: 文件名 :param definition: 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) :param audio_with_view: 是否作为音频处理 0:否 1:是 :param format: 转码格式(1:mp4 2:flv 4:m3u8 多种格式用英文逗号分隔)默认是3种格式都转 :param encrypt: 是否生成加密格式视频/音频1:是 2:否(该功能需要申请加密视频/音频的权限,开通加密视频/音频权限后,默认都会加密) :param use_https: 是否使用https上传地址,默认不使用 """ return self._post( '/openapi/video/getUploadUrl', optionaldict({ 'partner_id': self.partner_id, 'file_name': file_name, 'definition': definition, 'audio_with_view': audio_with_view, 'format': format, 'encrypt': encrypt, 'use_https': use_https, }), )
[文档] def get_resume_upload_url( self, video_id, use_https=0, ): """ 获取断点续传地址 视频分片上传时,如果只上传了一部分中止了,可以通过此接口获取续传的地址,已上传的那部分不用再上传。 :param video_id: 视频id :param use_https: 是否使用https上传地址,默认不使用 """ return self._post( '/openapi/video/getResumeUploadUrl', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'use_https': use_https, }), )
[文档] def get_status( self, video_id, ): """ 查询视频转码状态 :param video_id: 视频id """ return self._post( '/openapi/video/getStatus', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, }), )
[文档] def get_info( self, video_id, ): """ 获取指定ID视频信息 获取指定ID的视频信息(不包括已删除的视频) :param video_id: 视频id """ return self._post( '/openapi/video/getInfo', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, }), )
[文档] def get_image( self, video_id, ): """ 获取指定ID视频截图 获取指定ID的视频截图(不包括已删除的视频) :param video_id: 视频id """ return self._post( '/openapi/video/getImage', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, }), )
[文档] def remove_definition( self, video_id, definition, type="1", ): """ 清除指定清晰度的转码文件 该接口可以清除指定清晰度的视频文件,以减少占用的存储空间 :param video_id: 视频id :param definition: 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) :param type: 目标类型(1:mp4 2:flv 4:m3u8 8:encrypt 多种类型用英文逗号分隔) """ return self._post( '/openapi/video/removeDefinition', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'definition': definition, 'type': type, }), )
[文档] def transcode_again( self, video_id, definition, format=None, ): """ 视频二次转码 如果视频初始化时只指了某几种清晰度,后面需要转其它清晰度,则可以调用此接口 :param video_id: 视频id :param definition: 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) :param format: 转码格式(1:mp4 2:flv 4:m3u8 多种格式用英文逗号分隔)默认是3种格式都转 """ return self._post( '/openapi/video/transcodeAgain', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'definition': definition, 'format': format, }), )
[文档] def update( self, video_id, name, ): """ 更新视频信息 该接口可以更新视频信息,目前只有名称可以更新 :param video_id: 视频id :param name: 视频名称 """ return self._post( '/openapi/video/update', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'name': name, }), result_processor=lambda x: x['video_id'] )
[文档] def delete( self, video_id, ): """ 删除视频 :param video_id: 视频id """ return self._post( '/openapi/video/delete', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, }), result_processor=lambda x: x['video_id'] )
[文档] def get_category_list( self, ): """ 获取所有分类 该接口用于获取所有的分类信息 """ return self._post( '/openapi/video/getCategoryList', optionaldict({ 'partner_id': self.partner_id, }), result_processor=lambda x: x['list'] )
[文档] def get_category_info( self, category_id=0, ): """ 获取指定ID分类信息 该接口用于获取分类信息 :param category_id: 分类ID """ return self._post( '/openapi/video/getCategoryInfo', optionaldict({ 'partner_id': self.partner_id, 'category_id': category_id, }), )
[文档] def add_category( self, name, parent_id=0, ): """ 添加分类 该接口用于添加分类 :param name: 分类名称 :param parent_id: 父分类ID,如果添加的是一级分类,则可以填0或不传 """ return self._post( '/openapi/video/addCategory', optionaldict({ 'partner_id': self.partner_id, 'name': name, 'parent_id': parent_id, }), )
[文档] def delete_category( self, category_id, ): """ 删除分类 该接口用于删除分类,若该分类下有视频,则不可删除 :param category_id: 分类ID """ return self._post( '/openapi/video/deleteCategory', optionaldict({ 'partner_id': self.partner_id, 'category_id': category_id, }), result_processor=lambda x: x['category_id'] )
[文档] def get_category_video( self, category_id, page_size=20, page=1, ): """ 获取指定分类下的视频 获取指定分类下的视频,如果是一级分类ID,则返回挂在该分类下的视频及挂在该分类下的二级分类里的视频 :param category_id: 分类ID :param page_size: 每页条数,不得超过100,默认值20 :param page: 页码,默认1 """ return self._post( '/openapi/video/getCategoryVideo', optionaldict({ 'partner_id': self.partner_id, 'category_id': category_id, 'page_size': page_size, 'page': page, }), )
[文档] def set_video_category( self, video_id, category_id, ): """ 设置视频分类 设置一个视频的分类 :param video_id: 视频ID :param category_id: 分类ID """ return self._post( '/openapi/video/setVideoCategory', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'category_id': category_id, }), )
[文档] def get_player_token( self, video_id, expires_in, ): """ 获取播放器token 获取视频播放token,服务端获取token后传给客户端,客户端就可以使用该token播放视频 :param video_id: 视频ID :param expires_in: 过期时间,以秒为单位。如果传0则表示不过期 """ return self._post( '/openapi/video/getPlayerToken', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'expires_in': expires_in, }), result_processor=lambda x: x['token'] )
[文档] def get_player_token_batch( self, video_ids, expires_in, ): """ 批量获取播放器token 获取视频播放token,服务端获取token后传给客户端,客户端就可以使用该token播放视频 :param video_ids: 多个视频ID以英文逗号分隔 :param expires_in: 过期时间,以秒为单位。如果传0则表示不过期 """ return self._post( '/openapi/video/getPlayerTokenBatch', optionaldict({ 'partner_id': self.partner_id, 'video_ids': video_ids, 'expires_in': expires_in, }), )
[文档] def get_url( self, video_id, format=None, expires_in=None, ): """ 获取转码后视频/音频地址 该接口用于获取转码后视频的不同清晰度播放地址,以及视频宽高等信息。 :param video_id: 视频ID :param format: 视频格式,可选值有:mp4/m3u8/flv/encrypt,默认是mp4,encrypt表示加密格式,账号开启了点播加密功能才会有该格式的视频 :param expires_in: 视频失效时间,单位为秒,默认是12小时 """ return self._post( '/openapi/video/getUrl', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'format': format, 'expires_in': expires_in, }), )
[文档] def set_publish_status( self, video_id, status, ): """ 设置视频发布状态 该接口用于设置视频的发布状态。默认情况下,视频转码成功后会自动发布。 :param video_id: 视频ID :param status: 发布状态 1:发布 2:屏蔽 """ return self._post( '/openapi/video/setPublishStatus', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, 'status': status, }), result_processor=lambda x: x['status'] )
[文档] def get_share_url( self, video_id, ): """ 获取视频分享地址 该接口用于获取视频的分享地址,包含iframe方式、js方式、flash方式 :param video_id: 视频ID """ return self._post( '/openapi/video/getShareUrl', optionaldict({ 'partner_id': self.partner_id, 'video_id': video_id, }), )
[文档] def get_video_list( self, page_size=20, page=1, create_time=None, ): """ 获取点播视频列表 获取点播的视频列表 :param page_size: 每页条数,不得超过1000,默认值20 :param page: 页码,默认1 :param create_time: 默认不加上时间筛选 """ if isinstance(create_time, datetime.datetime): create_time = create_time.strftime('%Y-%m-%d %H:%M:%S') return self._post( '/openapi/video/getVideoList', optionaldict({ 'partner_id': self.partner_id, 'page_size': page_size, 'page': page, 'create_time': create_time, }), )