Some checks failed
ci/woodpecker/push/woodpecker Pipeline was canceled
Given a YouTube video ID or URL, runs the same caption-extraction +
LLM-analysis pipeline the watcher uses in prod, then prints the
extracted tickers + actions sorted by action priority and conviction
descending. No DB writes, no Redis publish — strictly observational.
Two entry points:
- scripts/analyze_kevin_video.py — pure Python; needs yt-dlp +
Anthropic OAuth token in env. Local laptop yt-dlp tends to hit
"Sign in to confirm you're not a bot" rate-limits; running inside
a cluster pod avoids this.
- scripts/kevin-analyze.sh — wrapper that finds the running
trading-bot-workers pod and execs the Python script in the
meet-kevin-watcher container. Easiest invocation.
Example:
$ ./scripts/kevin-analyze.sh poUJIZRmFew
=== Meet Kevin analysis — poUJIZRmFew ===
Market outlook: bullish
TICKERS (12):
SYMBOL ACTION CONV HORIZON RATIONALE
APPF buy 85.0% long_term Apploven's looking fantastic ...
SOX buy 80.0% months Semiconductor ETF momentum ...
...
27 lines
735 B
Bash
Executable file
27 lines
735 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# Ad-hoc Meet Kevin video analyzer wrapper.
|
|
#
|
|
# Usage:
|
|
# ./scripts/kevin-analyze.sh <video-id-or-url>
|
|
#
|
|
# Picks the running meet-kevin-watcher container (which already has
|
|
# yt-dlp + ffmpeg + the Anthropic token + the right Python env) and
|
|
# runs scripts/analyze_kevin_video.py inside it.
|
|
|
|
set -euo pipefail
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "usage: $0 <youtube-video-id-or-url>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
POD=$(kubectl -n trading-bot get pod -l app=trading-bot-workers \
|
|
-o jsonpath='{.items[0].metadata.name}')
|
|
|
|
if [[ -z "$POD" ]]; then
|
|
echo "no trading-bot-workers pod found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec kubectl -n trading-bot exec "$POD" -c meet-kevin-watcher -- \
|
|
python -m scripts.analyze_kevin_video "$1"
|