Search Youtube videos using python requests without Youtube API
Project description
youtube-search-requests
Search Youtube videos using python requests without Youtube API.
youtube-search-requests can search up to 120+ videos !
youtube-search-requests v0.0.2 can search unlimited videos !!!
Normally youtube-search-requests only extract urls, you can extract additional information by installing youtube-dl, for more information check usage below..
you don't need youtube-dl module anymore, youtube-search-requests now extract info by itself. And provide a very fast search rather than old version (v0.0.1)
CLI (Command Line Interface) Usage:
usage: python3 -m youtube_search_requests [-h] [--max-results={Number}] [-t={Number}] [-v] [--json]
[--json-output={Filename}] [--include-related-videos]
[--safe-search]
Search terms
Search Youtube videos using python requests without Youtube API
positional arguments:
Search terms a string terms want to search (if include space, you
must use double quotes "")
optional arguments:
-h, --help show this help message and exit
--max-results={Number}
maximum search results
-t={Number} , --timeout={Number}
give number of times to execute search, if times runs
out, search stopped & returning results
-v , --version show youtube-search-requests version
--json Return results in json format
--json-output={Filename}
Return results in output file based on json format
--include-related-videos
include all related videos each url's
--safe-search This helps hide potentially mature videos.
example usage:
python3 -m youtube_search_requests "fish" --json
# {"urls": {'title': ..., 'url': 'https://www.youtube.com/watch?v=0gT8Ty0ClHc', thumbnails: [...], ...}}
Simple usage:
from youtube_search_requests import YoutubeSearch
y = YoutubeSearch('fish', max_results=10)
videos = y.search()
print(videos)
Search with given time usage:
from youtube_search_requests import YoutubeSearch
# given time 60 seconds for searching videos
y = YoutubeSearch('fish', max_results=10, timeout=60)
# if search not complete after 60 seconds
# force it to return results
videos = y.search()
print(videos)
Search with related videos usage:
from youtube_search_requests import YoutubeSearch
y = YoutubeSearch('fish', max_results=10, include_related_videos=True)
videos = y.search()
print(videos)
youtube-search-requests support safe search !!!
this helps to prevent mature videos in search results.
search with safe search usage:
from youtube_search_requests import YoutubeSearch
y = YoutubeSearch('fish', max_results=10, safe_search=True)
videos = y.search()
print(videos)
youtube-search-requests also support asynchronous method ! (using aiohttp module)
search with async usage:
import asyncio
from youtube_search_requests import AsyncYoutubeSearch
async def search():
y = AsyncYoutubeSearch('fish', max_results=10)
results = await y.search()
print(results)
asyncio.run(search())
You might be wonder, how youtube-search-requests work ?
in-short-word:
youtube-search-requests work like Youtube in browsers (playing with POST and GET method).
in-long-word:
- First, youtube-search-requests create a session for Youtube. (every opened youtube page in browser have it own session id)
- Second, youtube-search-requests search videos using "internal Youtube API" that have been used youtube for searching videos in browsers.
- There we go, done !!! :D.
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.
Source Distribution
Hashes for youtube-search-requests-0.0.25.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 689c29eaad4cacf28db7db372c4e73c30f61fd701e1be749a44a65a82d90bbb2 |
|
MD5 | fd4e28897bd48f1ab73eca695e14df7a |
|
BLAKE2b-256 | d8c7b33ba69465465a5f5a6ddec01756d2505c74cee95b2447d95ac462653b99 |