A smart reading assistant that integrates multi-source scraping and AI automated synchronization. It automatically filters content from YouTube, Bilibili, and RSS feeds, extracts subtitles/transcripts, and syncs to Google NotebookLM for generating daily reading summaries.
-
Multi-source Content Scraping
- YouTube channels (via RSS feeds)
- Bilibili UP主 (via WBI API)
- RSS feeds
-
Subtitle/Transcript Extraction
- Bilibili: Auto-extracts Chinese subtitles via HTTP API + SESSDATA authentication
- YouTube: Native transcript support
-
Smart Source Management
- Visual dashboard with channel avatars and names
- Toggle switches to enable/disable individual sources
- Auto-caching of channel info (name, avatar)
-
NotebookLM Integration
- Automated sync via Playwright
- Direct links to generated notebooks
- Framework: Next.js (App Router)
- Scraping: 100% HTTP-based for YouTube and Bilibili (no browser needed)
- Automation: Playwright for NotebookLM sync only
- Real-time Updates: Server-Sent Events (SSE) for task progress
npm install
npx playwright install chromium
npm run devAccess http://localhost:3000 to open the dashboard.
- Add Sources: Add YouTube handles (
@channel) and Bilibili UIDs in the dashboard - Bilibili SESSDATA: Add your SESSDATA in Settings for subtitle extraction (required for Bilibili)
- Chrome Path: Set your Chrome executable path for NotebookLM sync
- NotebookLM Auth: Click the NotebookLM button to authorize
Click "Start Routine" to:
- Scrape latest videos from all enabled sources
- Extract Bilibili subtitles (if SESSDATA configured)
- Sync content to NotebookLM
src/
├── app/ # Dashboard UI & API routes
├── lib/
│ ├── scrapers/ # Platform scrapers (YouTube, Bilibili, RSS)
│ ├── coordinator.ts # Scraping orchestration
│ ├── main.ts # Daily routine logic
│ └── notebooklm.ts # NotebookLM automation
- Uses WBI API to fetch video lists (no browser needed)
- Authenticates with SESSDATA cookie for subtitle access
- Downloads and formats Chinese subtitles
- Syncs formatted content to NotebookLM
- macOS: Use LaunchAgents with the
.plistindeploy/for scheduling - Windows: Use Task Scheduler for automated runs
- Chrome Path Examples:
- Mac:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome - Windows:
C:\Program Files\Google\Chrome\Application\chrome.exe
- Mac:
Note: This project is for personal productivity. Please comply with each platform's terms of use.
