Metadata-Version: 2.4
Name: innertubei
Version: 0.5.2
Summary: A fast, async-first Python library for accessing YouTube's internal API (Innertube) - search, videos, playlists, channels, transcripts, and more.
Project-URL: Homepage, https://github.com/ohmyarthur/innertubei
Project-URL: Source, https://github.com/ohmyarthur/innertubei
Project-URL: Issues, https://github.com/ohmyarthur/innertubei/issues
Project-URL: Download, https://github.com/ohmyarthur/innertubei/releases/latest
Author-email: ohmyarthur <ohmyarthurr@gmail.com>
License: MIT
License-File: LICENSE
Keywords: async,channel,innertube,playlist,python,video-search,youtube,youtube-api,youtube-data
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx[brotli,http2]>=0.28.1
Requires-Dist: orjson>=3.11.5
Provides-Extra: dev
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Description-Content-Type: text/markdown

# innertubei

**Fast, async-first Python library for YouTube's internal API (Innertube)**

## Installation

### Using uv (recommended)
```bash
uv add innertubei
```

### Using pip
```bash
pip install innertubei
```

## Quick Start

```python
import asyncio
from innertubei import Search, Video, Playlist, Transcript, Suggestions

async def main():
    # Search videos, channels, playlists
    search = Search('NoCopyrightSounds', limit=5)
    results = await search.next()

    # Get video details + formats
    video = await Video.get('E07s5ZYygMg')

    # Get playlist info + videos
    playlist = await Playlist.get('PLRBp0Fe2GpgmsW46rJyudVFlY6IYjFBIK')

    # Get video transcript
    transcript = await Transcript.get('https://www.youtube.com/watch?v=E07s5ZYygMg')

    # Get search suggestions
    suggestions = await Suggestions.get('python tutorial')

asyncio.run(main())
```

For detailed examples, see [`example.py`](example.py).

## Development

### Using uv (recommended)
```bash
# Clone and setup
git clone https://github.com/ohmyarthur/innertubei
cd innertubei
uv sync

# Run examples
uv run example.py

# Run tests
uv run uv run python -m pytest
```

### Using traditional tools
```bash
pip install -e .
python example.py
```

## License
MIT License. See [LICENSE](/LICENSE) for details.

## Credits
- **Based on**: [py-yt-search](https://github.com/AshokShau/py-yt-search) by [AshokShau](https://github.com/AshokShau) - the original foundation
- **Maintained by**: [ohmyarthur](https://github.com/ohmyarthur)
- **Inspiration**: [youtube-search-python](https://github.com/alexmercerind/youtube-search-python) by Alex Mercer
