视频嵌入代码清理器
项目描述
清理和更新您的视频嵌入代码。
随着时间的推移,从各种提供者使用的视频嵌入代码已经发生变化和演变,以使它们与更广泛的设备更加兼容。
这就是vecc的用途所在:它从给定的嵌入代码中检测视频提供者和ID,并提供各种工具来清理此代码并验证视频是否仍然可用。
安装
可以使用pip,这是最简单的方法
$ pip install vecc
或者从http://pypi.python.org/pypi/vecc下载tarball,解压,然后手动安装
$ python setup.py install
用法
$ vecc -h usage: vecc [-h] [--version] {clean,validate} ... Video Embed Code Cleaner. optional arguments: -h, --help show this help message and exit -t TIMEOUT, --timeout TIMEOUT timeout for the validation (10 seconds by default) --version show program's version number and exit sub-commands: {clean,validate} clean clean the embed code validate validate that the video is still available
子命令
clean:接受一个视频嵌入代码,并返回视频ID、提供者和新的嵌入代码。可选的-v|--validate参数,用于检查视频是否仍然可用。
validate:接受视频ID和提供者,并检查它是否仍然可用。
返回代码
可能有三种不同的返回代码
1: 验证视频时超时(执行 HEAD 请求)
2: 找不到提供商
3: 视频不再可用
示例
$ vecc clean '<object width="480" height="381"><param name="movie" value="http://www.dailymotion.com/swf/k6Lg9UXest3kho5p9X&related=0"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.dailymotion.com/swf/k6Lg9UXest3kho5p9X&related=0" type="application/x-shockwave-flash" width="480" height="381" allowFullScreen="true" allowScriptAccess="always"></embed></object>' -v video id: k6Lg9UXest3kho5p9X provider: dailymotion embed code: <iframe frameborder="0" width="480" height="270" src="http://www.dailymotion.com/embed/video/k6Lg9UXest3kho5p9X"></iframe> This video is still valid
API
extract: 接收视频嵌入代码和一系列流媒体视频类型列表(例如 .flv 或 .mp4)作为直接视频 URL,并返回以下值
status: 如果 vecc 提取了视频信息,则为 True,否则为 False。有关错误信息的扩展信息,请参阅 errno 和 errmsg
video_id: 提取的视频 ID
provider: 识别出的提供商
clean_code: 嵌入代码
real_link: 带有播放器的视频的网页浏览器链接
title: 视频标题字符串
description: 视频的描述或文本内容(字符串)
image: 视频预览图片的 URL 链接
duration: 视频时长,格式为 HH:MM:SS
created_date: 视频发布的时间(Python 日期)
errno: 如果 errno > 0:HTTP 请求错误代码或特定 API 错误代码,如果 errno == -1:全局连接错误,即无法连接到提供商(无互联网连接或提供商网站故障),如果 errno == -2:错误的代码格式
errmsg: 与错误代码相关的错误信息。
代码示例
# import extract from vecc library from vecc import extract video_link = 'a video url' video_infos = extract(video_link, ['mp4', 'flv'])
提供商
视频提供商(Google 视频、YouTube、Vimeo、Dailymotion、Facebook 等)配置在 vecc/providers.py 文件中。
每个提供商配置包括
名称:youtube
链接模板:用于构建清理代码的字符串模板(将使用 format 进行插值)。这是嵌入视频播放器的链接。需要 {video_id} 标签。
嵌入模板:用于构建新嵌入代码的字符串模板。需要 {video_link} 标签。
验证模板:用于构建用于验证视频是否仍然可用的链接的字符串模板。这是视频本身的链接(在提供商网站上可见)。需要 {video_id} 标签。
匹配:用于将视频嵌入代码“匹配”到视频提供商的正则表达式。必须捕获视频 ID。
变更日志
v1.01:
为 extract 添加了验证_link 选项
v1.0:
在测试了 20000 个不同的视频链接后,进行了许多错误修复,第一个成熟版本
v0.16:
添加了 created_date 信息
v0.15:
添加了 Facebook API
v0.14:
添加了流媒体提供商
v0.13:
添加了 extract 函数
v0.12:
修复了破坏 vecc.clean 的前一个提交
v0.11:
为验证添加了 timeout 参数
现在使用适当的返回代码进行失败
v0.10:
修复了从 py2 迁移到 py3 后的打印问题
v0.9:
为默认提供商使用无模式 URL
让 travis 使用 tox
提供 wheel 软件包
v0.8:
兼容 Python 2.6 到 Python 3.3
100% 测试覆盖率
v0.7:
删除了 allowfullscreen
在视频链接上添加了 autoPlay=1&related=0
v0.6:
清理嵌入代码的视频尺寸现在是 480x395
所有使用 iframes 的嵌入代码现在都使用相同的格式,带有 allowfullscreen="true",autoPlay="1",related="0"
版本 0.5:
与 Python 2.6 兼容:作为依赖项的 argparse
版本 0.4:
与 Python 2.6 兼容:使用 format 需要字段编号
vecc-1.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8286d5600bf8fa8efb2337002043afb01d680dac791ccfb9fcde9662fc8b362 |
|
MD5 | fa6c710561424188b253d89a5d6fd5e5 |
|
BLAKE2b-256 | c6d0abd028caa8ab1a0b71c2e340bcbe07553a5aa4230cfe4af6c25cf729d06b |