litellm / services /whisper /utils /autonomous_engine.py
Ava2lon's picture
Upload 205 files
1425afc verified
Raw
History Blame Contribute Delete
2.47 kB
"""
V8 Autonomous Viral Engine
--------------------------
Fully automated pipeline for viral video generation.
"""
import os
from utils.transcription import transcribe_video
from utils.highlights import detect_highlights
from utils.clipper import create_clips
from utils.srt import generate_srt
from utils.render import render_subtitles
from utils.variations import generate_hooks
from utils.pacing import pacing_engine
from utils.viral_scorer import score_clip
# =====================================================
# CORE AUTONOMOUS PIPELINE
# =====================================================
def run_autonomous_engine(video_path):
"""
One-call system → full viral pipeline
"""
print("[V8 ENGINE] Starting autonomous pipeline...")
# 1. TRANSCRIBE
words = transcribe_video(video_path)
# 2. DETECT HIGHLIGHTS
highlights = detect_highlights(words)
if not highlights:
return {
"status": "failed",
"reason": "No highlights detected"
}
# 3. AUTO CLIP GENERATION
clips = create_clips(video_path, highlights)
if not clips:
return {
"status": "failed",
"reason": "Clip generation failed"
}
outputs = []
# 4. PROCESS EACH CLIP AUTONOMOUSLY
for i, clip in enumerate(clips):
try:
clip_words = transcribe_video(clip)
# 5. CAPTIONS
srt = generate_srt(clip_words)
# 6. PACING OPTIMIZATION (NEW V8)
paced_clip = pacing_engine(clip, clip_words)
# 7. HOOK VARIATIONS
hooks = generate_hooks(clip_words)
# 8. RENDER OUTPUT
output_path = clip.replace(".mp4", f"_v8_{i}.mp4")
final_video = render_subtitles(
paced_clip,
srt,
output_path
)
# 9. VIRAL SCORING
score = score_clip(clip_words)
outputs.append({
"clip": final_video,
"score": score,
"hooks": hooks[:3],
"index": i
})
except Exception as e:
print(f"[V8 ENGINE] Clip {i} failed:", str(e))
continue
# 10. SORT BY VIRAL SCORE
outputs = sorted(outputs, key=lambda x: x["score"], reverse=True)
return {
"status": "completed",
"best_clip": outputs[0] if outputs else None,
"all_variants": outputs
}