youtube_transcript_api 1.0.0
youtube_transcript_api: ^1.0.0 copied to clipboard
Fetch YouTube transcripts/subtitles without API keys. Supports auto-generated & manual transcripts, translations, multiple formats (JSON/VTT/SRT), proxy support, and CLI.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2024-12-02 #
๐ Initial Release #
A complete Dart port of the Python youtube-transcript-api library with enhanced features.
Added #
Core Functionality
- ๐ฏ Fetch YouTube transcripts for any video without API keys
- ๐ Support for both manually created and auto-generated subtitles
- ๐ Multiple language support with intelligent fallback
- ๐ Translation support for available transcripts
- ๐ List all available transcripts for a video
- ๐ญ Filter by manually created or auto-generated transcripts
Output Formatters
- ๐ Plain text (with and without timestamps)
- ๐ JSON (simple and with full metadata)
- ๐บ WebVTT (.vtt) - Standard web video format
- ๐ฌ SubRip (.srt) - Universal subtitle format
- ๐ CSV (.csv) - Spreadsheet-compatible format
- ๐ง Extensible formatter system for custom formats
Advanced Features
- ๐ InnerTube API Integration - Bypasses YouTube's PoToken protection
- ๐ค Android client emulation for improved reliability
- ๐ Proxy support:
- Generic HTTP/HTTPS proxy configuration
- Webshare rotating residential proxy integration
- Custom headers and timeout configuration
- ๐ Automatic retry logic for blocked requests
- ๐ซ Comprehensive error handling with specific exceptions
Developer Experience
- ๐จ Null-safe, modern Dart implementation
- ๐ฆ Clean, type-safe API design
- โก Async/await throughout
- ๐ Iterator interface for FetchedTranscript
- ๐ ๏ธ Extensive documentation and examples
- โ Comprehensive test suite (32 tests, 100% passing)
- ๐ Detailed error messages with context
CLI Tool
- ๐ป Full-featured command-line interface
- ๐ฅ Multiple input/output formats
- ๐ File export support
- ๐๏ธ List available transcripts from terminal
Platform Support
- โ Dart CLI applications
- โ Flutter mobile apps (iOS & Android)
- โ Flutter web applications
- โ Flutter desktop (Windows, macOS, Linux)
Technical Highlights #
- ๐๏ธ Architecture: Clean separation of concerns with dedicated modules for HTTP, parsing, formatting, and models
- ๐ Security: Uses defusedxml principles for safe XML parsing
- ๐ฏ Reliability: InnerTube API ensures consistent access even to protected videos
- ๐ Performance: Efficient parsing with minimal memory footprint
- ๐งช Quality: 100% of core functionality covered by tests
Compatibility #
- Dart SDK: >=3.0.0 <4.0.0
- Python Library Compatibility: Feature parity with youtube-transcript-api v1.2.3
- YouTube API: Uses official InnerTube API (same as YouTube mobile apps)
[Unreleased] #
Planned #
- Batch fetching for multiple videos
- Caching support to reduce API calls
- Rate limiting protection
- Cookie-based authentication for restricted videos
- Enhanced error recovery and retry logic