v1.0.0-alpha1
·
40 commits
to main
since this release
ytsync 1.0.0-alpha1
Features
- Public Library API: Use ytsync as a Go library with high-level convenience functions
- YouTube Integration: List videos from channels using RSS feeds or yt-dlp
- Transcript Extraction: Extract transcripts with language preference support
- Metadata Fetching: Retrieve comprehensive video metadata including duration, view count, and more
- Robust Error Handling: Custom error types for programmatic error handling
- Retry Logic: Exponential backoff with jitter for resilient operations
- CLI Tool: Standalone command-line tool for all major operations
- Cross-Platform: Binaries for Linux, macOS, and Windows (both amd64 and arm64)
What's Included
ytsyncpackage for programmatic useytsync listcommand to discover videosytsync transcriptcommand to extract captionsytsync downloadcommand to get videos with metadata
Documentation
- Comprehensive godoc comments on all public APIs
- Example code for common operations
- doc.go with detailed package documentation
Requirements
- Go 1.24+ for library usage
- yt-dlp installed and available in PATH
CI/CD
- Automated testing on Go 1.23 and 1.24
- Linting and code quality checks
- Automated multi-platform builds
- GitHub Actions workflows for test, lint, build, and release
Known Limitations
- Requires yt-dlp for most operations
- YouTube may rate-limit heavy usage (retry logic helps)
- Respects YouTube Terms of Service (no private/unlisted content access)
Next Steps
- Integration tests for video list fetching
- Optional YouTube Data API v3 support
- Pagination state persistence for incremental syncs
- Rate limiting improvements for Innertube API