Python asynchronous wrapper for youtube data api v3.
Project description
ytpy
Python wrapper for youtube data api v3. Simple asynchronous wrapper to get youtube video or playlist data. The purpose of this project is to make it easier for developers to extract data from YouTube.
Requirements
- Python 3.x
- Get Google API' Credential 'API KEY' for
YoutubeApiV3Client
Dependencies
- urllib
For examples & tests
- asyncio
- aiohttp
Install
pip install --upgrade ytpy
Run Test Code
- On project root. run command:
python ytpy/test/test_import.py
Asynchronous Youtube API V3 Client
Use AioYoutubeService
or YoutubeApiV3Client
for asynchronous tasks.
You can pass your api key on dev_key
param when building the object or just set your api key on environment variable named DEVELOPER_KEY
and AioYoutubeService
object will get it for you.
import aiohttp
session = aiohttp.ClientSession()
# will get your api key from environment (named DEVELOPER_KEY).
ayt = AioYoutubeService(session)
# you can also pass it on dev_key param.
ayt = AioYoutubeService(session, dev_key='replace me')
session.close()
Basic Usage: Search Video by Keywords
https://developers.google.com/youtube/v3/docs/search
params:
q
, string. Search key. default: empty string.part
, string. Valid parts: snippet, contentDetails, player, statistics, status. default: snippet.type
, string. Valid types: video, playlist, channel.
Example Search
method
import os
import asyncio
import aiohttp
from ytpy import YoutubeApiV3Client
async def main(loop):
session = aiohttp.ClientSession()
# Pass the aiohttp client session
ayt = YoutubeApiV3Client(session, dev_key=os.environ["DEVELOPER_KEY"])
# test search
results = await ayt.search(q="d&e lost",
search_type="video",
max_results=1)
print(results)
await session.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
Basic Usage: Search Video by Keywords
(Without api key)
params:
q
, string. Search key. default: empty string.max_results
Example Search
method (Without api key)
from ytpy import YoutubeClient
import asyncio
import aiohttp
async def main(loop):
session = aiohttp.ClientSession()
client = YoutubeClient(session)
response = await client.search('chico love letter')
print(response)
await session.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
Examples
Check examples for the full code example
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests/examples as appropriate.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.