How zhouxiaoka/autoclip_mvp works
AutoClip is a deprecated web application for turning local or Bilibili video and subtitles into AI-selected clips and recommended collections. Users submit a source through the web interface, the backend manages a project and runs a six-stage analysis/rendering pipeline, then users review and edit clips and collections and download outputs. The README documents Bilibili ingest, settings, progress, and project archives; those capabilities are included, though some implementation details were not sampled. Edges are limited to relationships supported by shown excerpts or README statements.
Main entry points: main.py Pipeline orchestration · llm_factory.py LLM provider factory · api.ts API client · backend_server.py HTTP API
Components 30
Web experience
- App routing
frontend/src/App.tsx - Project home
frontend/src/pages/HomePage.tsx - Video intake
frontend/src/components/FileUpload.tsx - Bilibili intake
frontend/src/components/BilibiliDownload.tsx - Project review
frontend/src/pages/ProjectDetailPage.tsx - Collection editor
frontend/src/components/CollectionPreviewModal.tsx - Collection export
frontend/src/hooks/useCollectionVideoDownload.ts - AI settings
frontend/src/pages/SettingsPage.tsx - Project state
frontend/src/store/useProjectStore.ts - API client
frontend/src/services/api.ts
Backend service
- HTTP API
backend_server.py - Project files
src/utils/project_manager.py - Project archive
backend_server.py
Clip processing
- Pipeline orchestration
src/main.py - Outline extraction
src/pipeline/step1_outline.py - Timeline generation
src/pipeline/step2_timeline.py - Clip scoring
src/pipeline/step3_scoring.py - Clip titles
src/pipeline/step4_title.py - Collection clustering
src/pipeline/step5_clustering.py - Video rendering
src/pipeline/step6_video.py
AI and media
- Bilibili downloader
src/utils/bilibili_downloader.py - Configuration
src/config.py - LLM provider factory
src/utils/llm_factory.py - DashScope client
src/utils/llm_client.py - SiliconFlow client
src/utils/siliconflow_client.py - Subtitle processing
src/utils/text_processor.py - Media processing
src/utils/video_processor.py
Other components
- User
- Bilibili
- AI providers
Connections 45
- User → App routing: uses
README.md - App routing → Project home: routes to
frontend/src/App.tsx - App routing → Project review: routes to
frontend/src/App.tsx - App routing → AI settings: routes to
frontend/src/App.tsx - Project home → Video intake: offers upload
frontend/src/pages/HomePage.tsx - Project home → Bilibili intake: offers download
frontend/src/pages/HomePage.tsx - Project home → API client: requests projects
frontend/src/pages/HomePage.tsx - Project review → Collection editor: opens editor
frontend/src/pages/ProjectDetailPage.tsx - Collection editor → Collection export: starts export
frontend/src/components/CollectionPreviewModal.tsx - Collection export → API client: requests export
frontend/src/hooks/useCollectionVideoDownload.ts - Project review → Project state: reads state
frontend/src/pages/ProjectDetailPage.tsx - Project state → API client: calls project API
frontend/src/store/useProjectStore.ts - Project home → Project state: updates state
frontend/src/pages/HomePage.tsx - AI settings → API client: updates settings
frontend/src/pages/SettingsPage.tsx - Video intake → API client: uploads files
- Bilibili intake → API client: creates download
- API client → HTTP API: sends requests
frontend/src/services/api.ts - HTTP API → Project files: manages projects
backend_server.py - HTTP API → Pipeline orchestration: runs processing
backend_server.py - HTTP API → Bilibili downloader: dispatches download
backend_server.py - HTTP API → Project archive: packages project
README.md - Pipeline orchestration → Project files: reads project inputs
src/main.py - Pipeline orchestration → Outline extraction: runs step one
src/main.py - Pipeline orchestration → Timeline generation: runs step two
src/main.py - Pipeline orchestration → Clip scoring: runs step three
src/main.py - Pipeline orchestration → Clip titles: runs step four
src/main.py - Pipeline orchestration → Collection clustering: runs step five
src/main.py - Pipeline orchestration → Video rendering: runs step six
src/main.py - Outline extraction → LLM provider factory: creates client
src/pipeline/step1_outline.py - Timeline generation → LLM provider factory: creates client
src/pipeline/step2_timeline.py - Clip scoring → LLM provider factory: creates client
src/pipeline/step3_scoring.py - Clip titles → LLM provider factory: creates client
src/pipeline/step4_title.py - Collection clustering → LLM provider factory: creates client
src/pipeline/step5_clustering.py - Outline extraction → Subtitle processing: uses text tools
src/pipeline/step1_outline.py - Timeline generation → Subtitle processing: uses text tools
src/pipeline/step2_timeline.py - Clip scoring → Subtitle processing: uses text tools
src/pipeline/step3_scoring.py - Clip titles → Subtitle processing: uses text tools
src/pipeline/step4_title.py - Video rendering → Media processing: uses media tools
src/pipeline/step6_video.py - LLM provider factory → DashScope client: selects provider
src/utils/llm_factory.py - LLM provider factory → SiliconFlow client: selects provider
src/utils/llm_factory.py - Configuration → LLM provider factory: selects provider
src/utils/llm_factory.py - DashScope client → AI providers: calls API
- SiliconFlow client → AI providers: calls API
- Bilibili downloader → Bilibili: downloads source
README.md - Configuration → HTTP API: configures service
backend_server.py