Focused YouTube research & creator toolkit — find a niche, mine keywords, clone winning videos, ship scripts in EN/KO/JA/VI.
Five focused tools, wired together as a single seamless pipeline: discover a niche, mine keywords, hunt outlier videos, clone winners → drop any of it into Studio → walk it through Topic → Title → Outline → Script → Humanize Rewrite. No copy-pasting between tools.
| # | Tool | What it does | API keys |
|---|---|---|---|
| 01 | Niche Finder | Trends + long-tail + top channels + outlier (breakout) detection + opportunity score + Trend Pulse 7d (HOT / cooling / stable) + audience sentiment + AI verdict. | YouTube + DeepSeek |
| 02 | Keyword Finder | Long-tail suggestions from YouTube Autocomplete + VidIQ-style Keyword Score (Volume + Competition gauges, proxy) + VPH bar chart of top results + KGR ease-to-rank + question buckets (how/what/why/when/where). |
None / YouTube |
| 03 | Video Cloner | Paste a URL → fingerprint, hook/structure breakdown, N title clones, full script clone, thumbnail copy & SEO tags — auto-detects the source video's language. Transcript backend uses youtube-transcript-api with yt-dlp fallback for cloud-IP environments. |
YouTube + DeepSeek |
| 04 | Outlier Finder ⭐ | Find small channels with viral videos in the last 7/14/30 days. Filters by subs ≤ N and views/subs ≥ K×. Per-row 🎯 Clone + 📝 Studio topic handoff. CSV export. |
YouTube |
| # | Tool | What it does | API keys |
|---|---|---|---|
| 05 | Studio | 5-step wizard: ① 20 topic ideas → ② 10 titles (top 3 CTR marked) → ③ 8-part long-form outline (Hook · Empathy · Problem 1 · Small Change · Story · Problems 2&3 · Reflection · CTA) → ④ full long-form script (chunked, up to 24,000 chars) → ⑤ humanize rewrite. State persists across steps; Niche / Keyword / Cloner / Outlier all prefill any step via "→ Send to Studio". | DeepSeek |
UI and AI output respect the language picker (English / 한국어 / 日本語 / Tiếng Việt) in the sidebar — and Video Cloner overrides it with the source video's detected language unless you force otherwise.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 01 Niche │ │ 02 Keyword │ │ 03 Cloner │ │ 04 Outlier │
│ • Pulse 7d │ │ • Vol/Comp │ │ • lang det │ │ • subs≤100k │
│ • outliers │ │ • VPH chart │ │ • clone kit │ │ • views/sub │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │ │
└─── → Send to Studio · → Clone via Cloner ─────┘
│
▼
┌──────────────────────────────┐
│ 05 Studio (5 steps) │
│ ① Topic ideas (×20) │
│ ② Titles (×10 + top-3 CTR) │
│ ③ 8-part outline │
│ ④ Long-form script (chunked) │
│ ⑤ Humanize rewrite │
└──────────────────────────────┘
# Clone repo
git clone https://github.com/quyenmanhnguyen/tube-atlas-oss.git
cd tube-atlas-oss
# Cài dependencies
pip install -r requirements.txt
# Cấu hình API keys
cp .env.example .env
# Sửa .env → thêm YOUTUBE_API_KEY và DEEPSEEK_API_KEY
# Chạy
streamlit run app.pyMở browser tại http://localhost:8501 🎉
docker build -t tube-atlas-oss .
docker run -p 8501:8501 --env-file .env tube-atlas-oss- Fork repo này
- Vào share.streamlit.io → Connect GitHub
- Chọn repo
tube-atlas-oss→ Main file:app.py - Advanced settings → Secrets:
YOUTUBE_API_KEY = "AIza..." DEEPSEEK_API_KEY = "sk-..."
- Click Deploy → có URL public trong ~2 phút
- Vào Google Cloud Console
- Tạo Project → Enable YouTube Data API v3
- Credentials → Create → API key
- Dán vào
.env:YOUTUBE_API_KEY=AIza...
- Vào platform.deepseek.com
- Tạo API key
- Dán vào
.env:DEEPSEEK_API_KEY=sk-...
| Endpoint | Cost/call | Ước tính/ngày |
|---|---|---|
search.list |
100 units | ~100 lần search |
videos.list (50 ID) |
1 unit | ~10,000 video lookup |
channels.list |
1 unit | ~10,000 kênh |
commentThreads.list |
1 unit | ~10,000 lần |
| Layer | Tech |
|---|---|
| Frontend | Streamlit (multi-page, dark theme) |
| YouTube API | google-api-python-client |
| Transcript | youtube-transcript-api (7.3k★) |
| Comments | youtube-comment-downloader |
| Trends | pytrends (gprop='youtube') |
| Sentiment | vaderSentiment |
| AI | DeepSeek via OpenAI SDK |
| Container | Docker |
tube-atlas-oss/
├── .env.example # Template API keys
├── .github/
│ └── workflows/
│ └── ci.yml # Ruff lint + syntax check
├── .streamlit/
│ └── config.toml # Dark premium theme
├── Dockerfile # Docker container
├── app.py # Dashboard chính
├── core/
│ ├── autocomplete.py # YouTube keyword suggestions
│ ├── comments.py # Comment downloader (no API key)
│ ├── i18n.py # EN/KO/JA/VI strings + language selector
│ ├── keywords.py # KGR-style score + question buckets
│ ├── lang_detect.py # Detect transcript language → LangCode
│ ├── llm.py # DeepSeek integration + Studio pipeline helpers
│ ├── theme.py # Shared CSS + page_header helper
│ ├── transcript.py # YouTube transcript (no API key)
│ ├── trends.py # pytrends YouTube
│ ├── utils.py # Helpers
│ └── youtube.py # YouTube Data API v3 + outliers + opportunity score
├── pages/
│ ├── 01_Niche_Finder.py # opportunity score + breakouts + AI verdict
│ ├── 02_Keyword_Finder.py # KGR score + question buckets + Send-to-Studio
│ ├── 03_Video_Cloner.py # auto-language detect + clone kit
│ └── 04_Studio.py # 5-step wizard (Topic→Title→Outline→Script→Rewrite)
├── tests/ # pytest unit tests
├── assets/
└── requirements.txt
PRs welcome! Fork → Branch → Commit → Pull Request.
MIT — tự do sử dụng, chỉnh sửa, chia sẻ.
Made with ❤️ using Streamlit + DeepSeek + YouTube Data API
⭐ Star repo nếu thấy hữu ích!


