UGC Reactions from Real Creators
Real creator library videos at $11 and images at $8. Custom production from $25/video with a $250 minimum. Commercial licensing included.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A 4-agent pipeline that writes, edits, uploads, and reports on daily faceless history YouTube Shorts — entirely on free tiers. Plus a node-graph dashboard that shows each agent as idle / running / done / error in real time.
script_agent -> video_agent -> upload_agent -> discord_agent
!latest and
!stats.python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp config/.env.example config/.env
You'll also need ffmpeg and imagemagick installed locally
(macOS: brew install ffmpeg imagemagick, Ubuntu: sudo apt install ffmpeg imagemagick).
config/.env as PEXELS_API_KEY.config/.env as FREESOUND_API_KEY.config/client_secret.json.config/.env as YOUTUBE_CHANNEL_ID.python agents/upload_agent.py once locally — it'll open a
browser for one-time consent and save config/token.json. After
this, uploads are fully automatic (the token auto-refreshes).config/.env as
YOUTUBE_API_KEY — this powers the analytics dashboard (subscriber/
view counts). No OAuth consent needed, it's read-only public data.config/.env as DISCORD_BOT_TOKEN.bot, permission Send Messages, open the generated URL to invite it to your server.config/.env as DISCORD_WEBHOOK_URL.# one full pipeline run: script -> video -> upload -> discord ping
python orchestrator.py
Watch it live:
# in a second terminal
python serve_dashboard.py
# open http://localhost:5050
For the interactive !latest / !stats Discord bot (separate from
the pipeline, keep it running continuously):
python agents/discord_agent.py bot
This is the "set it and forget it" free-hosting option — 6 scheduled shorts/day, right at YouTube's 6-upload/day quota, at zero dollar cost. A separate weekly long-form pipeline (~10 minute military-history videos) also runs on Actions every Sunday — see section 6. Sunday's 6th Short is skipped to make room for it under the 6-upload/day quota.
.gitignore is respected —
never commit .env, client_secret.json, or token.json directly).PEXELS_API_KEYFREESOUND_API_KEYYOUTUBE_CHANNEL_IDYOUTUBE_API_KEYDISCORD_WEBHOOK_URLYOUTUBE_CLIENT_SECRET_JSON — paste the full contents of your
local config/client_secret.jsonYOUTUBE_TOKEN_JSON — paste the full contents of your local
config/token.json (generated in step 1.4.7 above).github/workflows/pipeline.yml runs automatically
6x/day. Adjust the six cron lines to your preferred posting times
(they're in UTC)..github/workflows/analytics.yml runs separately every 4 hours to
snapshot channel/video stats for the dashboard — same
YOUTUBE_API_KEY and YOUTUBE_CHANNEL_ID secrets, no extra setup.Note: the interactive Discord bot (!stats, !latest) needs a
long-lived connection, so it can't run on GitHub Actions' scheduled
jobs. Run it on your own machine, or a small always-on free host like
Railway's or Fly.io's free tier.
agents/script_agent.py to change
pacing/hook style._build_scene_clip() in agents/video_agent.py.voice = "en-US-GuyNeural" in video_agent.py for any other
free edge-tts voice — run edge-tts --list-voices to see all options.This is the beginning of the README. Read the rest at the original. Read the full README ↗