import os
import subprocess
import tempfile
import json
import re

# 修改主程序，让它保存临时目录路径
def run_main_program():
    # 运行主程序
    result = subprocess.run(['python', 'subtitle_video_merger.py'], capture_output=True, text=True, encoding='utf-8', errors='ignore')
    
    # 查找临时目录
    temp_dir = None
    for line in result.stdout.split('\n'):
        if '暂停视频创建成功:' in line:
            # 提取临时目录路径
            match = re.search(r'暂停视频创建成功: (.+)', line)
            if match:
                file_path = match.group(1)
                temp_dir = os.path.dirname(file_path)
                break
    
    return temp_dir, result.stdout

# 检查视频文件时长
def check_video_duration(video_path):
    cmd = [
        'ffprobe', '-v', 'quiet', '-print_format', 'json', 
        '-show_format', video_path
    ]
    try:
        result = subprocess.run(cmd, capture_output=True, text=True, check=True)
        info = json.loads(result.stdout)
        duration = float(info['format']['duration'])
        return duration
    except Exception as e:
        print(f"无法获取{video_path}的信息: {e}")
        return 0.0

# 主函数
def main():
    print("运行主程序...")
    temp_dir, output = run_main_program()
    
    print("\n主程序输出:")
    print(output)
    
    if temp_dir and os.path.exists(temp_dir):
        print(f"\n找到临时目录: {temp_dir}")
        
        # 列出临时目录中的文件
        files = os.listdir(temp_dir)
        video_files = [f for f in files if f.endswith('.mp4')]
        audio_files = [f for f in files if f.endswith('.mp3')]
        
        print(f"\n临时目录中的视频文件: {video_files}")
        print(f"临时目录中的音频文件: {audio_files}")
        
        # 检查每个视频文件的时长
        total_duration = 0.0
        print("\n各个片段时长:")
        for video_file in sorted(video_files):
            video_path = os.path.join(temp_dir, video_file)
            duration = check_video_duration(video_path)
            total_duration += duration
            print(f"{video_file}: {duration:.2f}秒")
        
        print(f"\n片段总时长: {total_duration:.2f}秒")
        
        # 检查音频文件的时长
        print("\n音频文件时长:")
        for audio_file in sorted(audio_files):
            audio_path = os.path.join(temp_dir, audio_file)
            duration = check_video_duration(audio_path)
            print(f"{audio_file}: {duration:.2f}秒")
    else:
        print("未找到临时目录")

if __name__ == "__main__":
    main()
