FEATURES.md 6.9 KB

GrabZilla 2.1 - Future Features

Created: October 5, 2025 Status: Feature backlog for future development Priority: To be determined based on user feedback


🎯 Feature Backlog

Performance & UX

1. Resume Interrupted Downloads

Description: Continue downloads from where they stopped instead of restarting Technical approach:

  • Track download progress state (bytes downloaded)
  • Use yt-dlp's --continue flag
  • Restore download state on app restart Estimated effort: 4-6 hours User benefit: Avoid wasted bandwidth on failed downloads

3. Estimated Time Remaining

Description: Show ETA for each download based on current speed Technical approach:

  • Calculate from: (total_size - downloaded_size) / current_speed
  • Update ETA every 2-3 seconds
  • Display in video list (e.g., "5 min remaining") Estimated effort: 3-4 hours User benefit: Better visibility into download progress

4. Thumbnail Preview Hover

Description: Show larger preview on hover over video thumbnail Technical approach:

  • CSS hover state with scaled thumbnail
  • Preload higher-res thumbnail on hover
  • Smooth transition animation Estimated effort: 1-2 hours User benefit: Better video identification before download

Video Management

5. Batch Quality/Format Change

Description: Change settings for multiple selected videos at once Technical approach:

  • Multi-select checkbox UI
  • Bulk update dialog for quality/format
  • Update all selected videos in state Estimated effort: 3-4 hours User benefit: Faster workflow when managing many videos

7. Export/Import Video List

Description: Save and load video queues for later use Technical approach:

  • Export to JSON file (URLs, settings, metadata)
  • Import JSON and restore video objects
  • File format validation Estimated effort: 4-5 hours User benefit: Save work-in-progress queues, share lists with others

8. Duplicate URL Detection Enhancement

Description: Better handling of duplicate URLs with merge option Technical approach:

  • Detect duplicates before adding
  • Show dialog: "Skip", "Replace", or "Keep Both"
  • Smart merge: keep best quality/format Estimated effort: 2-3 hours User benefit: Avoid accidental duplicates, smart handling

Download Features

9. Audio-Only Extraction

Description: Download just the audio track (MP3, M4A) Technical approach:

  • Add "Audio Only" format option
  • Use yt-dlp -f bestaudio + --extract-audio
  • Support MP3, M4A, FLAC, WAV formats Estimated effort: 3-4 hours User benefit: Smaller file sizes for music/podcasts

Advanced

15. Automatic Retry Logic

Description: Auto-retry failed downloads with exponential backoff Technical approach:

  • Already partially implemented in DownloadManager
  • Enhance UI to show retry attempts
  • Configurable max retries (default: 3)
  • Exponential backoff: 5s, 15s, 45s delays Estimated effort: 2-3 hours (mostly UI work) User benefit: Reduce manual intervention for transient failures

Integration

17. Browser Extension

Description: Send URLs from browser to GrabZilla Technical approach:

  • Chrome/Firefox extension with context menu
  • Native messaging protocol to Electron app
  • "Send to GrabZilla" on YouTube/Vimeo pages Estimated effort: 8-12 hours (extension + native messaging) User benefit: Seamless browser integration

18. Clipboard Monitoring

Description: Auto-detect URLs copied to clipboard Technical approach:

  • Monitor clipboard for video URLs
  • Show toast notification: "Video URL detected"
  • One-click to add to queue
  • Enable/disable toggle in settings Estimated effort: 3-4 hours User benefit: Faster workflow, no manual paste

19. Playlist Bulk Operations

Description: Better playlist management and bulk actions Technical approach:

  • "Download All" button for playlists
  • Selective download (checkboxes per video)
  • Playlist metadata (title, video count)
  • Progress bar for playlist extraction Estimated effort: 5-6 hours User benefit: Easier batch playlist downloads

20. Video Preview Player

Description: Preview videos before downloading Technical approach:

  • Embed YouTube/Vimeo player in modal
  • Show video info (views, likes, description)
  • Quick quality comparison Estimated effort: 4-5 hours User benefit: Verify video content before downloading

📊 Feature Priority Matrix

High Impact, Low Effort (Quick Wins)

  • [4] Thumbnail preview hover (1-2 hours)
  • [15] Automatic retry logic UI (2-3 hours)
  • [8] Duplicate URL detection enhancement (2-3 hours)

High Impact, Medium Effort

  • [9] Audio-only extraction (3-4 hours)
  • [3] Estimated time remaining (3-4 hours)
  • [5] Batch quality/format change (3-4 hours)
  • [18] Clipboard monitoring (3-4 hours)

High Impact, High Effort

  • [1] Resume interrupted downloads (4-6 hours)
  • [7] Export/Import video list (4-5 hours)
  • [19] Playlist bulk operations (5-6 hours)
  • [20] Video preview player (4-5 hours)
  • [17] Browser extension (8-12 hours)

🚀 Suggested Implementation Order

Phase 1: Quick Wins (5-7 hours total)

  1. Thumbnail preview hover
  2. Automatic retry logic UI
  3. Duplicate URL detection enhancement

Phase 2: High-Value Features (12-15 hours total)

  1. Audio-only extraction
  2. Estimated time remaining
  3. Clipboard monitoring
  4. Batch quality/format change

Phase 3: Advanced Features (20-25 hours total)

  1. Resume interrupted downloads
  2. Export/Import video list
  3. Playlist bulk operations
  4. Video preview player

Phase 4: Integration (8-12 hours)

  1. Browser extension

💡 Implementation Notes

Dependencies

  • All features require existing architecture (DownloadManager, AppState, IPC)
  • Browser extension requires separate repository/build process
  • Some features may need additional npm packages

Testing Requirements

  • Each feature needs unit tests
  • Integration tests for IPC-based features
  • Manual testing procedures for UI features

Documentation Updates

  • CLAUDE.md patterns for new features
  • HANDOFF_NOTES.md with implementation details
  • User-facing README updates

📝 Feature Request Process

When implementing a feature from this list:

  1. Read feature description - Understand requirements
  2. Check technical approach - Review suggested implementation
  3. Estimate actual effort - Adjust based on current codebase
  4. Create implementation plan - Break into smaller tasks
  5. Write tests first - TDD approach when possible
  6. Implement feature - Follow existing patterns
  7. Update documentation - CLAUDE.md, HANDOFF_NOTES.md, etc.
  8. Manual testing - Verify in running app
  9. Commit with detailed message - Explain what and why

🎯 User-Requested Features

Add user-requested features here as they come up:

  • (None yet)

Last Updated: October 5, 2025 Status: Ready for future development Next Review: After current bug fixes complete