的Python APINindo.de公司
pynindo的Python项目详细描述
Youtuberrezo创建一个社交媒体图表和统计页面。我开发了 这个小Python API。它还包括一个小CLI,因此您可以编写 拥有bash脚本或从命令行查看新的媒体图表。在
为什么?在
Nindo.de非常漂亮,但我发现原始数据更令人兴奋。我看了看 通过http流量并捕获最重要的API调用。皮尼多绑定 所有的东西都放在一起,很容易得到不同的原始数据。在
如何安装?在
它是Python,因此使用pip:
pip install pynindo
也许PyPi上还没有。我真丢脸。但你可以试试:
^{pr2}$无论如何,不要忘记使用虚拟环境;-)
如何使用?在
其实很简单。从pynindo包导入api,然后使用 它。下面有一个包含所有终结点的列表:
>>> from pynindo import api >>> api.charts.youtube 1 1365880 UnsympathischTV 2 1288557 KMNGang 3 1228038 BangerMusik 4 1122593 Kontra K 5 1063852 Rezo 6 997038 MontanaBlack 7 991567 Mert 8 961703 BibisBeautyPalace 9 936666 Julien Bam 10 864054 Varion >>> api.viral.tiktok platform:tiktok | type:likes | 2500000 Anna Ix platform:tiktok | type:kommentare | 141100 Mido platform:tiktok | type:views | 60400000 Anna Ix
这只是数据的字符串表示。调用.json() 获取原始数据的终结点:
>>> api.search['rezo'].json() [{'id': '18ed6dae1cf050a2b3bc65f72ef1db0d', 'name': 'Rezo', '_channels': [{'name': 'Rezo ja lol ey', 'platform': 'youtube', 'avatar': 'https://yt3.ggpht.com/a/AGF-l7-Z43wxXREipZAy2eFGe3msWo7slqem6sfQtQ=s800-c-k-c0xffffffff-no-rj-mo', 'userID': 'UCvU1c8D5n1Rue3NFRu0pJSw'}, {'name': 'Rezo', 'platform': 'instagram', 'avatar': 'https://scontent-iad3-1.cdninstagram.com/v/t51.2885-19/s320x320/82444457_181735326360382_1854627991502454784_n.jpg?_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_ohc=2mcqiSZbzjsAX_0Heqf&oh=4c5411c7ba7c37b6ff4af746022f8988&oe=5F413D49', 'userID': '2200749531'}, {'name': 'Rezo', 'platform': 'tiktok', 'avatar': 'https://p16-va-tiktok.ibyteimg.com/img/musically-maliva-obj/1643642074164230~c5_720x720.jpeg', 'userID': '6651546051420913670'}, {'name': 'Rezo', 'platform': 'twitter', 'avatar': 'https://pbs.twimg.com/profile_images/1074977137730510849/OGFUOGl7_400x400.jpg', 'userID': 'rezomusik'}, {'name': 'rezo', 'platform': 'youtube', 'avatar': 'https://yt3.ggpht.com/a/AGF-l78WgdiaSU879chSmplIenQ5qRAzXkdNGqyPVQ=s800-c-k-c0xffffffff-no-rj-mo', 'userID': 'UCLCb_YDL9XfSYsWpS5xrO5Q'}], 'avatar': 'https://yt3.ggpht.com/a/AGF-l7-Z43wxXREipZAy2eFGe3msWo7slqem6sfQtQ=s800-c-k-c0xffffffff-no-rj-mo'}]
作为脚本
现在我们可以写一个小脚本,把更多的信息显示到上面 优步:
frompynindoimportapiforiteminapi.charts.youtube.small.json():print(api.artist[item['artistID']])
请参阅examples文件夹以了解更多有趣的内容。在
拨打
的多种方式有很多方法可以调用API。所有终结点都有\uu getitem\ 属性。这意味着:
>>> api.milestones.new
同:
>>> api['milestones'].new
或者:
>>> api['milestones']['new']
或者:
>>> api.milestones['new']
对每个人来说都是一样的,但是要小心使用search和{em1}$artist。在
可调用根
第二个重要部分是可调用的根api。你呢 可以通过调用api本身来进入终结点:
>>> api('charts', 'youtube', 'rank')
同:
>>> api.charts.youtube.rank
api类
对于某些高级用途,您可以自己创建api对象:
from pynindo.nindo import Api api = Api
命令行界面
是的,有一个,试试看:
$ pynindo -h $ pynindo charts -h $ pynindo viral -h
端点
像nindo.de公司,api有多个部分。占位符platform和 type包含以下内容:
platform = {youtube|instagram|twitter|tiktok|twitch} type = {likes|kommentare|views|retweets|max. zuschauer|längster stream}
图表
api.charts.{platform}.{type|small|rank}
每个平台的当前图表。每个平台有几个单独的 子类别。示例:
api.charts.youtube api.charts.twitter.likes api.charts.instagram.small api.charts.tiktok.rank
里程碑
api.milestones.{new|past}.{platform}
任何拥有或即将达到一定数量追随者的艺术家。 示例:
api.milestones api.milestones.new api.milestones.new.tiktok api.milestones.past
搜索
^{pr21}$找到艺术家的切入点。示例:
api.search['rezo'] api.search['rezo'].count() api.search['rezo'].first api.search['rezo'].last api.search['rezo'][0]
艺术家
api.artist['id']
所有属于艺术家的数据。示例:
api.artist['18ed6dae1cf050a2b3bc65f72ef1db0d']
发展
虚拟环境窗口:
python -m venv venv venv\Scripts\activate
虚拟环境linux:
python3 -m venv venv source venv/bin/activate
安装项目:
python -m pip install --upgrade pip wheel setuptools coverage flake8 pylint tox python -m pip install -e .
创建测试数据:
python .\tests\utils.py
运行一些测试:
tox -p auto
使用代码覆盖率运行单个测试:
coverage run --source=pynindo -m unittest discover -v coverage report -m
检查语法:
^{pr31}$创建包:
python -m pip install --upgrade twine python setup.py sdist bdist_wheel twine check dist/* twine upload dist/*
- 项目
标签: