How xxyxssw/aivideosummaryformac works
VideoSummaryAI is a native macOS app that turns pasted Douyin or Bilibili links into locally transcribed video history, then generates three optional AI text treatments on demand. The primary workflow is coordinated by Pipeline; AppState owns history and separate summary-generation requests. The README documents the broader UI and provider capabilities, while sampled excerpts confirm the core orchestration and state behavior; some view and extractor internals were not sampled.
Main entry points: Pipeline.swift Pipeline coordinator · AppState.swift App state · AppSettings.swift User preferences · AISummarizer.swift AI summarizer
Components 22
App interface
- App entry
Sources/VideoSummaryAI/VideoSummaryAIApp.swift - Link input
Sources/VideoSummaryAI/Views/HomeView.swift - History navigation
Sources/VideoSummaryAI/Views/HistorySidebar.swift - Video detail
Sources/VideoSummaryAI/Views/DetailView.swift - Summary sections
Sources/VideoSummaryAI/Views/SummarySectionView.swift - Settings
Sources/VideoSummaryAI/Views/SettingsView.swift
Media ingestion
- Pipeline coordinator
Sources/VideoSummaryAI/Services/Pipeline.swift - Link and ID parsing
Sources/VideoSummaryAI/Services/URLParser.swift - Douyin media capture
Sources/VideoSummaryAI/Services/DouyinExtractor.swift - Bilibili resolver
Sources/VideoSummaryAI/Services/BilibiliExtractor.swift - Media download
Sources/VideoSummaryAI/Services/MediaDownloader.swift - Audio conversion
Sources/VideoSummaryAI/Services/FFmpeg.swift
Transcript and summaries
- On-device transcription
Sources/VideoSummaryAI/Services/TranscriberService.swift - AI summarizer
Sources/VideoSummaryAI/Services/AISummarizer.swift
State and preferences
- App state
Sources/VideoSummaryAI/Models/AppState.swift - User preferences
Sources/VideoSummaryAI/Models/AppSettings.swift - History store
Sources/VideoSummaryAI/Models/AppState.swift
Other components
- User
- macOS Speech
- OpenAI-compatible API
- Douyin web media
- Bilibili media API
Connections 27
- User → Link input: pastes link
- App entry → Link input: presents
- Link input → App state: submits input
- App state → Pipeline coordinator: starts run
- Pipeline coordinator → Link and ID parsing: parses link
- Pipeline coordinator → Douyin media capture: captures media
- Pipeline coordinator → Bilibili resolver: resolves media
- Douyin media capture → Douyin web media: loads and captures
- Bilibili resolver → Bilibili media API: requests media
- Pipeline coordinator → Media download: downloads media
- Pipeline coordinator → Audio conversion: converts audio
- Pipeline coordinator → On-device transcription: transcribes audio
- On-device transcription → macOS Speech: uses local models
- Pipeline coordinator → App state: updates progress
- Pipeline coordinator → History store: adds transcript
- App state → History store: loads and saves
- History navigation → App state: selects history
- Video detail → App state: reads selected item
- Video detail → Summary sections: shows sections
- Summary sections → App state: requests generation
- App state → AI summarizer: generates on demand
- AI summarizer → OpenAI-compatible API: sends prompt
- App state → History store: stores generated text
- Settings → User preferences: edits preferences
- Pipeline coordinator → User preferences: reads transcription settings
- App state → User preferences: reads summary settings
- AI summarizer → User preferences: uses prompt and language