diff --git a/cron/jobs.json b/cron/jobs.json index c86c4b0..7b41d9d 100644 --- a/cron/jobs.json +++ b/cron/jobs.json @@ -53,9 +53,9 @@ "report_on": "changes", "timeout": 180, "enabled": true, - "last_run": "2026-04-24T03:00:00.002726+00:00", + "last_run": "2026-04-25T03:00:00.002815+00:00", "last_status": "ok", - "next_run": "2026-04-25T03:00:00+00:00" + "next_run": "2026-04-26T03:00:00+00:00" }, { "name": "kb-index-refresh", @@ -69,9 +69,9 @@ "report_on": "never", "timeout": 120, "enabled": true, - "last_run": "2026-04-24T03:30:00.001564+00:00", + "last_run": "2026-04-25T03:30:00.001901+00:00", "last_status": "ok", - "next_run": "2026-04-25T03:30:00+00:00" + "next_run": "2026-04-26T03:30:00+00:00" }, { "name": "archive-tasks-daily", @@ -85,9 +85,9 @@ "report_on": "changes", "timeout": 60, "enabled": true, - "last_run": "2026-04-24T03:00:00.002347+00:00", + "last_run": "2026-04-25T03:00:00.002264+00:00", "last_status": "ok", - "next_run": "2026-04-25T03:00:00+00:00" + "next_run": "2026-04-26T03:00:00+00:00" }, { "name": "backup-config", @@ -101,9 +101,9 @@ "report_on": "never", "timeout": 120, "enabled": true, - "last_run": "2026-04-24T02:00:00.001790+00:00", + "last_run": "2026-04-25T02:00:00.002819+00:00", "last_status": "ok", - "next_run": "2026-04-25T02:00:00+00:00" + "next_run": "2026-04-26T02:00:00+00:00" }, { "name": "insights-extract", @@ -269,8 +269,8 @@ "prompt": "Heartbeat check. Rulează src/heartbeat.py printr-un scurt raport de status.\nDacă nu e nimic de raportat (email=0, calendar nu are evenimente <2h, kb ok), răspunde doar cu HEARTBEAT_OK și oprește-te — nu trimite mesaj.\nDacă e ceva: raport scurt pe Discord #echo-work.", "allowed_tools": [], "enabled": true, - "last_run": "2026-04-24T16:00:00.002070+00:00", + "last_run": "2026-04-25T08:00:00.001769+00:00", "last_status": "ok", - "next_run": "2026-04-24T18:00:00+00:00" + "next_run": "2026-04-25T10:00:00+00:00" } ] diff --git a/scripts/transcribe_video.sh b/scripts/transcribe_video.sh new file mode 100755 index 0000000..74c9a86 --- /dev/null +++ b/scripts/transcribe_video.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Descarcă un video (Facebook, YouTube etc.), extrage audio, transcrie cu Whisper. +# Usage: ./transcribe_video.sh [language] +# Exemple: +# ./transcribe_video.sh "https://www.facebook.com/share/v/1EdPt3q2sq/" +# ./transcribe_video.sh "https://youtu.be/xyz" ro + +set -euo pipefail + +URL="${1:-}" +LANG="${2:-en}" +WORKDIR="/tmp/transcribe_$$" + +if [[ -z "$URL" ]]; then + echo "Usage: $0 [language (default: en)]" + exit 1 +fi + +export PATH="/home/moltbot/bin:$PATH" + +mkdir -p "$WORKDIR" +trap 'rm -rf "$WORKDIR"' EXIT + +echo "→ Descarc video..." +yt-dlp "$URL" -o "$WORKDIR/video.%(ext)s" --no-playlist -q + +VIDEO_FILE=$(ls "$WORKDIR"/video.* 2>/dev/null | head -1) +if [[ -z "$VIDEO_FILE" ]]; then + echo "Eroare: descărcarea a eșuat." + exit 1 +fi + +echo "→ Extrag audio..." +ffmpeg -i "$VIDEO_FILE" -vn -acodec pcm_s16le -ar 16000 -ac 1 "$WORKDIR/audio.wav" -y -loglevel error + +echo "→ Transcriu cu Whisper (model: small, limbă: $LANG)..." +python3 -c " +import whisper +model = whisper.load_model('small') +result = model.transcribe('$WORKDIR/audio.wav', language='$LANG') +print(result['text']) +" 2>/dev/null + +echo "" +echo "✓ Gata."