Gan, Jimmy
77c6a9d963
sprint: fixes batch — saveNote history, DeepSeek retry, channel rotation, test fixes, docker env, blocking transcript, sync errors
2026-06-28 17:08:32 +08:00
Gan, Jimmy
d87c2aba44
feat: RSS hybrid fetcher — 221 channels, 2,414 videos, ~50 units (was 2,000)
2026-06-24 02:47:34 +08:00
Gan, Jimmy
d5af5e9b7d
feat: rotate 50 channels daily — covers all 229 over 5 days
2026-06-24 02:38:04 +08:00
Gan, Jimmy
8ce359764f
feat: 50 channels, daily 3AM cron sync, countdown timer, remove manual button
2026-06-24 02:35:22 +08:00
Gan, Jimmy
1c4f9dc713
fix: decode HTML entities in titles; add note timestamps; reorder layout — title first, AI digest below
2026-06-24 02:18:18 +08:00
Gan, Jimmy
a0ffa41c9e
feat: replace yt-dlp cookies with YouTube Data API v3 OAuth
...
- Add auth.py: OAuth credential manager with auto-refresh
- Rewrite fetcher.py: use googleapiclient subscriptions/search
- Add google-auth, google-api-python-client dependencies
- Update docker-compose for config volume mount
- Add .gitignore for secrets (client_secret.json, token.pickle)
- Live test: 198 videos ingested from 229 channels
2026-06-24 00:14:16 +08:00
Gan, Jimmy
dba070531e
Add --extractor-args youtubetab:skip=authcheck to yt-dlp to bypass blocking
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 13:55:09 +08:00
Gan, Jimmy
dbd3dc0237
Initial commit: Add T YouTube text-based reader web app
...
- FastAPI backend running on port 8000
- Svelte 5 runes frontend dashboard supporting Read/Skip state toggles
- YouTube subscription feed scraper using yt-dlp & Netscape cookies.txt
- Transcript downloader and Claude 3.5 Haiku summarizer via bytecatcode proxy
- Multi-stage Dockerfile and docker-compose.yml configuration
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 11:00:34 +08:00