浏览代码

dont process files with subtitles

Karl 7 月之前
父节点
当前提交
e44448e33e
共有 2 个文件被更改,包括 17 次插入3 次删除
  1. 5 3
      bazarr-ai-sub-generator/main.py
  2. 12 0
      bazarr-ai-sub-generator/utils/ffmpeg.py

+ 5 - 3
bazarr-ai-sub-generator/main.py

@@ -4,7 +4,7 @@ import tempfile
 import time
 from typing import List, Dict, Any
 from utils.files import filename, write_srt
-from utils.ffmpeg import get_audio, add_subtitles_to_mp4
+from utils.ffmpeg import get_audio, add_subtitles_to_mp4, check_for_subtitles
 from utils.bazarr import get_wanted_episodes, get_episode_details, sync_series
 from utils.sonarr import update_show_in_sonarr
 from utils.faster_whisper import WhisperAI as fasterWhisperAI
@@ -50,7 +50,8 @@ def folder_flow(folder: str, model_args: Dict[str, Any], args: Dict[str, Any], b
     for file in files:
         path = os.path.join(folder, file)
         print(f"Processing file {path}")
-        process_audio_and_subtitles(path, model_args, args, backend)
+        if not check_for_subtitles(path):
+            process_audio_and_subtitles(path, model_args, args, backend)
 
 
 def file_flow(file_path: str, model_args: Dict[str, Any], args: Dict[str, Any], backend: str) -> None:
@@ -66,7 +67,8 @@ def file_flow(file_path: str, model_args: Dict[str, Any], args: Dict[str, Any],
         None
     """
     print(f"Processing file {file_path}")
-    process_audio_and_subtitles(file_path, model_args, args, backend)
+    if not check_for_subtitles(file_path):
+        process_audio_and_subtitles(file_path, model_args, args, backend)
 
 
 def bazzar_flow(show: str, model_args: Dict[str, Any], args: Dict[str, Any], backend: str) -> None:

+ 12 - 0
bazarr-ai-sub-generator/utils/ffmpeg.py

@@ -4,6 +4,18 @@ import ffmpeg
 from .files import filename
 
 
+def check_for_subtitles(video_path:str):
+    # Probe the video file to get information about its streams
+    probe = ffmpeg.probe(video_path)
+    
+    # Check if there are any subtitle streams
+    for stream in probe['streams']:
+        if stream['codec_type'] == 'subtitle':
+            print("File has subtitles")
+            return True
+    
+    return False
+
 def get_audio(paths: list, audio_channel_index: int, sample_interval: list):
     temp_dir = tempfile.gettempdir()