|
|
import uuid |
|
|
from execution_tracker import load_executed_from_gsheet, log_progress_to_gsheet |
|
|
from pipeline_processor import process_single_row, configure_row_settings |
|
|
from cleanup_manager import process_delete_entries |
|
|
from src.config import get_config_value |
|
|
from src.logger_config import logger |
|
|
|
|
|
async def run_plain_video_workflow(commit=False, job_index=None, total_jobs=None): |
|
|
"""Generate plain videos (music-synced, no AI content) with progress tracking.""" |
|
|
|
|
|
|
|
|
await process_delete_entries() |
|
|
|
|
|
if total_jobs is None or job_index is None: |
|
|
total_jobs = 1 |
|
|
job_index = 0 |
|
|
|
|
|
try: |
|
|
n = int(get_config_value("generation_count", 100)) |
|
|
except ValueError: |
|
|
n = 100 |
|
|
logger.info(f"Creating {n} plain videos...") |
|
|
|
|
|
|
|
|
|
|
|
executed = load_executed_from_gsheet(job_index=job_index) |
|
|
completed = len(executed) |
|
|
if get_config_value("test_automation"): |
|
|
completed = 0 |
|
|
|
|
|
|
|
|
per_job = n / total_jobs |
|
|
start_index = int(per_job * job_index) |
|
|
end_index = int(per_job * (job_index + 1)) |
|
|
|
|
|
|
|
|
start_index = max(start_index, completed) |
|
|
|
|
|
logger.debug( |
|
|
f"[Job {job_index}/{total_jobs}] Assigned range: {start_index} → {end_index}, " |
|
|
f"completed={completed}" |
|
|
) |
|
|
|
|
|
|
|
|
generated_results = [] |
|
|
|
|
|
for i in range(start_index, min(n, end_index)): |
|
|
logger.debug("=" * 200) |
|
|
row = { "TTS Script (AI Avatar)": uuid.uuid4().hex[:8] } |
|
|
|
|
|
|
|
|
configure_row_settings(row, i) |
|
|
results = await process_single_row(row) |
|
|
|
|
|
for result in results: |
|
|
if result.get("success", False): |
|
|
log_progress_to_gsheet(result, job_index, commit) |
|
|
|
|
|
|
|
|
generated_results.append({ |
|
|
"local_path": result.get("local_path", "N/A"), |
|
|
"gcs_path": result.get("gcs_filename", "N/A"), |
|
|
"drive_path": result.get("final_url", "N/A") |
|
|
}) |
|
|
|
|
|
logger.info(f"[Job {job_index}] Finished slice.") |
|
|
return generated_results |
|
|
|