yt-flow / start.sh
Arshit Malik
full API key integration: prefer free keys, fallback to Kaggle
6fffeba
#!/bin/bash
set -e
echo "[boot] Configuring Kaggle credentials..."
if [ -n "$KAGGLE_USERNAME" ] && [ -n "$KAGGLE_KEY" ]; then
mkdir -p ~/.kaggle
printf '{"username":"%s","key":"%s"}' "$KAGGLE_USERNAME" "$KAGGLE_KEY" > ~/.kaggle/kaggle.json
chmod 600 ~/.kaggle/kaggle.json
fi
echo "[boot] Configuring YouTube client secrets..."
if [ -n "$YOUTUBE_CLIENT_ID" ] && [ -n "$YOUTUBE_CLIENT_SECRET" ]; then
python3 -c "
import json,os
d={'installed':{'client_id':os.environ['YOUTUBE_CLIENT_ID'],'project_id':'yt-ai-bot','auth_uri':'https://accounts.google.com/o/oauth2/auth','token_uri':'https://oauth2.googleapis.com/token','auth_provider_x509_cert_url':'https://www.googleapis.com/oauth2/v1/certs','client_secret':os.environ['YOUTUBE_CLIENT_SECRET'],'redirect_uris':['http://localhost']}}
open('/app/client_secrets.json','w').write(json.dumps(d))
print('[boot] client_secrets.json written')"
fi
echo "[boot] Pulling state + key pool from HF Dataset..."
python3 -c "
import sys; sys.path.insert(0,'/app')
try:
from sync_hub import pull_state
from pathlib import Path
pull_state(Path('/app'))
except Exception as e:
print(f'[boot] Hub pull skipped: {e}')
try:
from key_pool import download_pool
download_pool()
from key_pool import pool
print(f'[boot] Key pool loaded: {sum(len(v) for v in pool.values())} keys')
except Exception as e:
print(f'[boot] Key pool not loaded: {e}')
"
echo "[boot] Starting nginx..."
nginx
echo "[boot] Starting status server on port 8080..."
python3 /app/status_server.py &
echo "[boot] Starting key pool background service..."
python3 -c "
from key_pool import start
start()
" &
echo "[boot] Starting pipeline..."
python3 /app/automation.py >> /app/pipeline.log 2>&1 &
echo "[boot] Pipeline PID: $!"
sleep infinity