7659d7187e30c33192ebe97c289a58d6ca89384a
Deploy t-youtube / Build & Deploy (push) Failing after 28s
T YouTube - Text-Based YouTube Digest
A text-based reader for YouTube. It syncs with your logged-in YouTube subscription feed, fetches video transcripts, generates concise summaries via Claude 3.5 Haiku, and displays them in a Svelte 5 + FastAPI web dashboard.
🚀 Setup Instructions
1. Extract your YouTube browser cookies
Since YouTube restricts subscription feeds to logged-in users, you need to export your logged-in cookies so yt-dlp can request the feed on your behalf:
- Install a browser extension like Get cookies.txt LOCALLY (Chrome/Edge) or cookies.txt (Firefox).
- Open YouTube in your browser and ensure you are logged in to your account.
- Click the extension icon and export the cookies for
youtube.comas a Netscape-formatted text file. - Create a folder named
configin your project root, rename the exported file tocookies.txt, and save it inside:t-youtube/config/cookies.txt
2. Configure Environment Variables
Create a .env file in the root directory:
# Optional: Override the fallback OpenAI / Anthropic key
OPENAI_API_KEY=sk-Kq5JbgmnEEkdzTqNAQ6bV6nztQ0ngeHTHF9Vg8nUglQvrOlx
3. Build & Deploy using Docker Compose
Run the following command to build the multi-stage image (compiles frontend static assets using Node, then packages backend with Python) and start the container:
docker compose up -d --build
The server will boot up and listen on port 8000.
📁 Repository Structure
t-youtube/
├── backend/
│ ├── main.py # FastAPI server & endpoints
│ ├── db.py # aiosqlite database schema initialization
│ ├── fetcher.py # Subscription scraper using yt-dlp
│ ├── summarizer.py # Transcript retriever & Claude API client
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── routes/
│ │ │ └── YoutubeDashboard.svelte # Svelte 5 runes UI
│ │ ├── App.svelte # Svelte App entry point
│ │ └── main.js
│ ├── package.json # NPM package definitions
│ └── vite.config.js # Vite dev server proxy rules
├── Dockerfile # Multi-stage production build script
└── docker-compose.yml # Synology NAS deployment config
📋 Features & Usage
- Sync Subscriptions: Click the Sync Subscriptions button at the top of the dashboard. This triggers a background process that fetches your subscription feed, compares it with the database, adds new entries, extracts transcripts, and generates Claude digests automatically.
- Fast Reading Layout: Click on any video card in the sidebar. You will instantly see the channel name, publish date, video length, and the AI-generated digest containing:
- Core Hook (Bolded)
- Key Takeaways (Bullet list)
- Actionable Verdict
- Read/Skip State: Mark videos as Read or Skip to clear them from your pending queue, allowing you to only keep track of what's unread.
- View Full Transcript: Expand the accordion at the bottom of the digest to read the raw transcripts if needed.
Description
Languages
Python
60%
Svelte
34.6%
Shell
3.4%
Dockerfile
0.7%
JavaScript
0.5%
Other
0.8%