InnerTube API is a high-performance, open-source REST API that unlocks the full power of YouTube without the limitations. Built on top of the reverse-engineered InnerTube client, it provides unlimited access to data that the official Data API hides or restricts.
🛑 No API Keys Required 🔓 No OAuth Headaches 🚀 No Rate Limits (other than YouTube's own)
Whether you're building a music player, a data analysis tool, or a custom YouTube frontend, InnerTube API gives you the raw power you need.
| Feature | Description |
|---|---|
| 🎥 Core YouTube | Search videos, channels, playlists. Get detailed metadata, streaming URLs, and recommendations. |
| 🎵 YouTube Music | Full support for YouTube Music. Search artists, albums, tracks, and get lyrics. |
| ⚡ High Performance | Built with FastAPI and AsyncIO. Includes intelligent TTL Caching for blazing fast responses. |
| 🔄 Batch Processing | Execute up to 10 API calls in a single HTTP request to save bandwidth and latency. |
| 📊 Rich Data | Access hidden metrics, live stream status, captions/subtitles, and detailed analytics. |
| 🎨 Premium UI | Comes with a beautiful, glassmorphism-styled Interactive API Explorer running on localhost. |
- Python 3.8+
pip
-
Clone the repository
git clone https://github.com/MohammadKobirShah/InnerTube-API.git cd InnerTube-API -
Install dependencies
pip install -r requirements.txt
-
Launch the Server
# Windows start_server.bat # Linux/Mac python main.py
GET /api/search- Search for videos, channels, playlistsGET /api/browse/{browse_id}- Browse specific YouTube pagesGET /api/trending- Get current trending videosGET /api/homepage- Get the YouTube homepage feed
GET /api/video/{video_id}- Get comprehensive video metadataGET /api/player/{video_id}- Get streaming formats and adaptive streamsGET /api/next/{video_id}- Get "Up Next" and related videosGET /api/captions/{video_id}- Get video subtitles/captions
GET /api/channel/{channel_id}- Get channel profile and statsGET /api/channel/{channel_id}/videos- Get all videos from a channelGET /api/playlist/{playlist_id}- Get full playlist details
GET /api/music/search- Search specifically on YouTube MusicGET /api/music/artist/{artist_id}- Get artist discographyGET /api/music/album/{album_id}- Get album tracklist
POST /api/batch- [POWER FEATURE] Run multiple requests at onceGET /api/analytics- View server cache stats and usage
Customize your experience in config.py:
# Cache Settings (Seconds)
CACHE_TTL = {
"search": 300, # 5 mins
"video": 600, # 10 mins
"channel": 1800 # 30 mins
}
# Client Selection
DEFAULT_CLIENT = "WEB" # Options: WEB, ANDROID, IOS, TVContributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request