- Project structure
- Package.json with PeerTube metadata
- Database tables
- YouTube import hook
- YouTube ID extraction
- SponsorBlock API integration
- Segment caching in DB
- Client-side skip logic
- Progress bar markers
- Skip notifications
- REST API for segment retrieval
- Plugin settings
- Translations (EN, FR)
- CSS for markers
- Development documentation
- Test the plugin on a real PeerTube instance
- Fix bugs identified during testing
- Add missing error handling
- Validate Video.js compatibility
- Test with different segment categories
- Add a button to temporarily disable skipping
- Allow reporting a bad segment
- Statistics: total time saved
- Playlist support
- Unit tests
- Integration tests
- Linter (ESLint configuration)
- CI/CD (GitHub Actions)
- Admin page to view all mappings
- Button to force synchronization
- Dashboard with statistics
- Color-coded category markers on progress bar
- Search videos by YouTube ID
- Plugin activity logs
- Scan existing imports via POST /scan
- Periodic sync task (configurable interval)
- Detect stale segments
- Webhook if SponsorBlock supports it
- Import/export mappings
- Channel whitelist/blacklist
- Per-user settings
- "Mute" segment support (instead of skip)
- Preview before skip (skip button)
- Skipped segment history
- Verify video file access from a plugin
- Test FFmpeg from the plugin context
- Validate required permissions
- Measure performance impact on the server
- Queue processing worker (
main.js— 30s polling) - FFmpeg cut and concat integration (
server/ffmpeg.js—-c copy) - Multi-resolution support (web-videos + HLS)
- HLS playlist support
- Priority queue (
plugin_sponsorblock_processing_queue) - Automatic retry (3 attempts max,
FOR UPDATE SKIP LOCKED) - API routes:
POST /process/:videoUuidandPOST /process-all - Configurable
storage_pathsetting - Translation of messages (EN, FR)
- Automatic backup system
- Rollback on error
- S3 storage support
- Optimistic job locking (no double processing)
- Output file validation (non-empty)
- Temporary directory cleanup (try/finally)
- Video integrity check (checksum)
- CPU load limiting
- Monitoring and alerts
- None so far (plugin not tested in production)
- Support for other platforms (Vimeo, Dailymotion)
- Submit new segments to SponsorBlock
- AI-generated segments locally
- Integration with other PeerTube plugins
- API for mobile clients
- Companion browser extension
- "Preview" mode: show 2s of the segment before skipping
- Performance: Impact of skipping on mobile battery?
- UX: Should there be a "stop skipping this segment type" button?
- Legal: Copyright issues with permanent removal?
- Technical: Use PeerTube's Bull job system?
- Community: Host our own SponsorBlock server?
- Priority: Ship a stable MVP before adding features
- Keep the code simple and maintainable
- Document all technical decisions
- Test on multiple PeerTube instances