Skip to content

feat: YouTube playlist batch processing + note export#408

Open
fivedang wants to merge 1 commit into
JefferyHcool:masterfrom
fivedang:feat/playlist-batch-processing
Open

feat: YouTube playlist batch processing + note export#408
fivedang wants to merge 1 commit into
JefferyHcool:masterfrom
fivedang:feat/playlist-batch-processing

Conversation

@fivedang

Copy link
Copy Markdown
Contributor

Summary

Adds YouTube playlist batch processing — paste a playlist URL, load all videos, select which to process, and generate notes in bulk.

New API Endpoints

Endpoint Description
POST /api/playlist/info Extract playlist title + video list (uses yt-dlp with cookie/proxy support)
POST /api/playlist/generate Batch submit note generation with all standard VideoRequest params
POST /api/playlist/cancel Cancel running batch mid-processing
POST /api/playlist/export Export completed notes as ZIP (structured playlist_name/video_title.md)

New UI Page

/playlist.html — standalone management page accessible from the main app:

  • Paste playlist URL → instant video list with thumbnails/durations
  • Full parity with main app settings: 9 note styles, provider/model, screenshot, link, video_understanding
  • Per-video progress display with Chinese stage names (解析中→下载中→转录中→总结中→完成)
  • Progress bar + completion counter
  • Cancel button for mid-batch abort
  • Individual note download or bulk ZIP export

Dependencies

This PR depends on:

Screenshots

The UI is a dark-themed page matching BiliNote's design, with:

  • Config panel at top (provider, model, quality, style, format toggles)
  • Scrollable video list with thumbnails, checkboxes, duration
  • Progress bar at bottom
  • Download buttons appear after completion

New feature for processing entire YouTube playlists in one batch:

Backend (backend/app/routers/playlist.py):
- POST /api/playlist/info — extract playlist metadata and video list via yt-dlp
- POST /api/playlist/generate — batch submit notes with full VideoRequest params
  (all 9 note styles, screenshot, link, video_understanding)
- POST /api/playlist/cancel — cancel running batch job
- POST /api/playlist/export — export completed notes as ZIP download
  organized as playlist_name/video_title.md

Frontend (BillNote_frontend/public/playlist.html):
- Paste playlist URL → load all videos with thumbnails
- Select/deselect videos for batch processing
- Full parameter parity with main app: all 9 styles, provider/model selection,
  screenshot, link, video_understanding toggles
- Real-time per-video stage display in Chinese (解析中→下载中→转录中→总结中→完成)
- Cancel button to stop batch mid-processing
- Download individual .md or bulk ZIP with automatic naming

App registration (backend/app/__init__.py):
- Register playlist router at /api prefix
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant