Pushkar0655g commited on
Commit
2670e49
Β·
verified Β·
1 Parent(s): 6147286

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -27
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import gradio as gr
2
- from utils import process_video
3
 
4
  # Define supported languages
5
  language_map = {
@@ -16,34 +16,35 @@ language_map = {
16
  "Japanese": "Helsinki-NLP/opus-mt-en-jap"
17
  }
18
 
19
- # Custom CSS for dark mode and animations
20
  css = """
21
  body {
22
- transition: background-color 0.5s ease;
23
- }
24
- .dark-theme {
25
- background-color: #1a1a1a !important;
26
  color: #e0e0e0;
 
27
  }
28
  .gradio-container {
29
  max-width: 1200px;
30
  margin: 0 auto;
31
  padding: 20px;
32
- border-radius: 10px;
33
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
 
34
  }
35
  .file-preview {
36
- border: 2px dashed #6c757d;
37
  padding: 20px;
38
- border-radius: 10px;
39
  }
40
- .progress-text {
41
- font-size: 16px;
42
- color: #28a745;
43
- animation: blink 1s infinite;
44
  }
45
- @keyframes blink {
46
- 50% { opacity: 0.5; }
 
 
47
  }
48
  """
49
 
@@ -56,6 +57,7 @@ with gr.Blocks(theme=gr.themes.Monochrome(), css=css) as demo:
56
  with gr.Column(scale=2):
57
  video_input = gr.File(
58
  label="Upload Video File",
 
59
  elem_classes=["file-preview"]
60
  )
61
  with gr.Column(scale=1):
@@ -65,9 +67,10 @@ with gr.Blocks(theme=gr.themes.Monochrome(), css=css) as demo:
65
  value="English"
66
  )
67
 
68
- generate_button = gr.Button("Generate Subtitles πŸš€")
 
69
  progress_text = gr.Textbox(
70
- label="Progress",
71
  interactive=False,
72
  elem_classes=["progress-text"]
73
  )
@@ -77,25 +80,29 @@ with gr.Blocks(theme=gr.themes.Monochrome(), css=css) as demo:
77
  try:
78
  # Validate file type
79
  if not video_file.name.lower().endswith(('.mp4', '.mkv', '.avi')):
80
- return None, "❌ Invalid file type. Please upload an MP4, MKV, or AVI file."
81
 
82
- # Update progress text
83
- progress = "πŸ”„ Processing video..."
84
- yield None, progress # Yield initial progress message
85
 
86
  # Process video
87
- srt_path = process_video(video_file.name, language)
88
  if srt_path:
89
- return gr.File(srt_path), "βœ… Subtitles generated successfully!"
 
90
  else:
91
- return None, "❌ Error during processing. Check logs."
 
 
92
  except Exception as e:
93
- return None, f"❌ Error: {str(e)}"
 
94
 
95
  generate_button.click(
96
  generate_subtitles,
97
  inputs=[video_input, language_dropdown],
98
- outputs=[output_srt, progress_text]
99
  )
100
 
101
  demo.launch()
 
1
  import gradio as gr
2
+ from utils import process_video # Ensure this points to the updated utils.py
3
 
4
  # Define supported languages
5
  language_map = {
 
16
  "Japanese": "Helsinki-NLP/opus-mt-en-jap"
17
  }
18
 
19
+ # Custom CSS for a Windows-like professional look
20
  css = """
21
  body {
22
+ background-color: #1a1a1a;
 
 
 
23
  color: #e0e0e0;
24
+ font-family: 'Segoe UI', sans-serif;
25
  }
26
  .gradio-container {
27
  max-width: 1200px;
28
  margin: 0 auto;
29
  padding: 20px;
30
+ border-radius: 8px;
31
+ background: #2d2d2d;
32
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
33
  }
34
  .file-preview {
35
+ border: 2px dashed #007acc;
36
  padding: 20px;
37
+ border-radius: 8px;
38
  }
39
+ .progress-bar {
40
+ background: #007acc;
41
+ border-radius: 8px;
42
+ height: 20px;
43
  }
44
+ .progress-text {
45
+ color: #00ff00;
46
+ font-weight: bold;
47
+ margin-top: 10px;
48
  }
49
  """
50
 
 
57
  with gr.Column(scale=2):
58
  video_input = gr.File(
59
  label="Upload Video File",
60
+ file_types=["mp4", "mkv", "avi"],
61
  elem_classes=["file-preview"]
62
  )
63
  with gr.Column(scale=1):
 
67
  value="English"
68
  )
69
 
70
+ generate_button = gr.Button("Generate Subtitles πŸš€", elem_classes=["btn-primary"])
71
+ progress_bar = gr.ProgressBar(label="Progress", elem_classes=["progress-bar"])
72
  progress_text = gr.Textbox(
73
+ label="Status",
74
  interactive=False,
75
  elem_classes=["progress-text"]
76
  )
 
80
  try:
81
  # Validate file type
82
  if not video_file.name.lower().endswith(('.mp4', '.mkv', '.avi')):
83
+ return None, None, "❌ Invalid file type. Please upload an MP4, MKV, or AVI file."
84
 
85
+ # Initialize progress
86
+ progress = gr.Progress(track_tqdm=True)
87
+ progress(0, desc="Initializing...")
88
 
89
  # Process video
90
+ srt_path = process_video(video_file.name, language, progress=progress)
91
  if srt_path:
92
+ progress(1, desc="βœ… Subtitles generated successfully!")
93
+ return gr.File(srt_path), progress(1), "βœ… Subtitles ready for download!"
94
  else:
95
+ progress(0, desc="❌ Error during processing.")
96
+ return None, progress(0), "❌ Failed to generate subtitles. Check logs."
97
+
98
  except Exception as e:
99
+ progress(0, desc="❌ Error encountered.")
100
+ return None, progress(0), f"❌ Error: {str(e)}"
101
 
102
  generate_button.click(
103
  generate_subtitles,
104
  inputs=[video_input, language_dropdown],
105
+ outputs=[output_srt, progress_bar, progress_text]
106
  )
107
 
108
  demo.launch()