获取Twitch VOD MPEG-2流信息

twitchvod的Python项目详细描述


Twitchvod(v0.1.1)Build Status

安装

pip install twitchvod


兼容性

此软件包与python3兼容。目前不支持python2。

>= python 3.5.2


请注意,使用此库的风险由您自己承担。使用未记录的api接口是违反twitch服务条款的。如果你的开发者令牌 但是,如果您想了解这个库是如何工作的,请随意阅读源代码。

好吧,现在来看看更有趣的东西。


此api客户端将使用您提供的twitch developer client_id发出多个请求,以twitch api端点获取与特定vod相关的信息。您甚至可以查询所有的mpeg-2传输流文件,您可以下载到任何您想要的。在这个例子中,假设您想下载vod 372739399

>>> from twitchvod import Client

# Create client...
>>> client = Client("TWITCH-DEV-APP-CLIENT-ID")
>>> client
<Client>

# Generate access token for VOD 372739399...
>>> token = client.get_access_token(372739399)
>>> token
<AccessToken [372739399-vod_id]>

# Fetch the different vod qualities w/ token...
>>> vods = client.get_vods(token)
>>> vods
[
    <Vod [chunked,1920x1080]>,
    <Vod [720p60,1280x720]>,
    <Vod [720p30,1280x720]>,
    <Vod [480p30,852x480]>,
    <Vod [audio_only]>,
    <Vod [360p30,640x360]>,
    <Vod [160p30,284x160]>
]

# Get VOD chunks... There are 364 of them...
>>> vod_chunk = client.get_chunks(vods[0])
>>> vod_chunk
<VodChunk [364-chunks]>

# Get the MPEG-2 transport stream files... Boom!
>>> mpeg2_ts_chunks = [c for c in vod_chunks.chunks()]
>>> mpeg2_ts_chunks[:3]
[
    ('1988.ts', 'https://vod-metro.twitch.tv/.../chunked/1988.ts'),
    ('1989.ts', 'https://vod-metro.twitch.tv/.../chunked/1989.ts'),
    ('1990.ts', 'https://vod-metro.twitch.tv/.../chunked/1990.ts')
]

开发环境/设置

这个包是早期开发的,因此如果有人有任何问题或疑虑,您可以提出公关或Github回购问题。

nomadmtb/twitchvod on GitHub

  1. git克隆了上面的repo。 git clone git@github.com:nomadmtb/twitchvod.git
  2. 进入项目。 cd twitchvod
  3. 创建virtualenv(假设您有3.7) python3.7 -m venv .env
  4. 激活virtualenv。 source .env/bin/activate
  5. 安装开发要求。 pip install -r requirements.txt

通过上述设置,您可以执行以下操作开始。

  1. 运行unittests w/pytest。 make test
  2. 运行unittests w/coverage+pytest。 make coverage
  3. 安装包的本地副本。 python setup.py install
  4. 删除包的本地副本。 pip uninstall twitchvod

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我的应用程序崩溃,试图添加菜单   java如何创建TBase类实例   如何在java小程序中使用JMF功能?   数据结构Java中是否有用于双循环链表的内置接口?   java在使用JAXB读取XML文件时如何使用继承   在Java中获取和存储子进程的输出   从Java执行Windows命令   HQL中带日期的java限制   安卓如何使用GSON将单个JSON字段映射到多个JAVA字段?   std:random shuffle()和Collections之间的java差异。洗牌   Java正则表达式更高效的动态正则表达式   来自JSON的java POJO表示   active directory无法在Java中更改AD服务器中的密码   DataOutputStream出现java错误   scala如何指定JVM最大堆大小“Xmx”,以便在SBT中运行具有“run”操作的应用程序?   添加了`<f:actionListener>`之后,java`ViewScoped` bean会被重新创建吗?   python找不到满足java要求的版本(来自版本:),找不到与java匹配的发行版   java为什么刷新jdbc swing表中的按钮后数据会多次出现?   java在编程语言(尤其是dart)中,死代码是什么意思?   java为什么我必须在JDBC中使用回滚?