Automated YouTube uploader with filesystem watching, subtitle generation, and intelligent scheduling.
- Go 97.1%
- Makefile 1.4%
- Shell 1.1%
- Dockerfile 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| cmd/hermes | ||
| config | ||
| docs | ||
| internal | ||
| pkg | ||
| .gitignore | ||
| .golangci.yml | ||
| .pre-commit-config.yaml | ||
| Dockerfile | ||
| example.yaml | ||
| go.mod | ||
| go.sum | ||
| hermes.service | ||
| install.sh | ||
| Makefile | ||
| README.md | ||
| ROADMAP.md | ||
hermes
Automated YouTube video uploader with filesystem watching, subtitle generation, and scheduling.
Quick Start
# Install
go install git.lan.thwap.org/thwap/hermes/cmd/hermes@latest
# Configure
cat > config.yaml <<EOF
base_dir: ./hermes-data
channels:
- id: UC...
handle: "@channel"
rate_limit: 2
EOF
# Run
hermes -config config.yaml
Features
- Filesystem watcher for staged video+zip pairs
- YouTube Data API v3 upload with OAuth2
- Whisper.cpp subtitle generation (SRT/VTT)
- Per-channel rate limiting and scheduling
- Notification hooks on upload events
- Transaction-like processing with state recovery
- Health monitoring (heartbeat, disk space)
Configuration
See docs/config.md for full reference.