Ppreyy's picture
Upload app.py with huggingface_hub
3b4fab7 verified
Raw
History Blame Contribute Delete
3.54 kB
print("=" * 60)
print("HinglishCaps - Clean Version")
print("=" * 60)
import gradio as gr
print("Gradio imported successfully")
with gr.Blocks(title="HinglishCaps - Auto Captions", css="""
.gradio-container { max-width: 900px !important; margin: auto; }
.tab-nav { background: #f5f5f5; border-radius: 8px; padding: 10px; }
""") as app:
gr.Markdown("""
# 🎬 HinglishCaps - Auto Captions for Hindi/English Videos
This is a demo interface for the HinglishCaps captioning tool.
**Full AI transcription requires running the app locally** due to memory
constraints on Hugging Face Spaces free tier.
""")
with gr.Tabs():
with gr.TabItem("Single Video"):
gr.Markdown("### Process a single video")
video = gr.Video(label="Upload Video")
btn = gr.Button("Generate Demo Captions", variant="primary")
output = gr.File(label="Download Demo File")
def create_demo(video_path):
# Create a simple demo file
import tempfile
import os
content = """1
00:00:00,000 --> 00:00:05,000
Demo caption file for HinglishCaps.
2
00:00:05,000 --> 00:00:10,000
To use the full AI transcription feature:
3
00:00:10,000 --> 00:00:15,000
Run the app locally on your machine."""
temp_dir = tempfile.gettempdir()
filepath = os.path.join(temp_dir, "demo_captions.srt")
with open(filepath, "w", encoding="utf-8") as f:
f.write(content)
return filepath
btn.click(create_demo, inputs=[video], outputs=[output])
with gr.TabItem("Batch Processing"):
gr.Markdown("### Process multiple videos")
videos = gr.File(label="Upload Videos", file_count="multiple")
batch_btn = gr.Button("Generate Demo Batch", variant="primary")
zip_output = gr.File(label="Download Demo ZIP")
def create_batch(files):
import tempfile
import os
import zipfile
temp_dir = tempfile.gettempdir()
zip_path = os.path.join(temp_dir, "demo_batch.zip")
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for i in range(min(3, len(files) if files else 0)):
filename = f"video_{i+1}_captions.srt"
content = f"""1
00:00:00,000 --> 00:00:05,000
Demo captions for video {i+1}
2
00:00:05,000 --> 00:00:10,000
Batch processing demo
3
00:00:10,000 --> 00:00:15,000
Run locally for AI transcription"""
zipf.writestr(filename, content)
return zip_path
batch_btn.click(create_batch, inputs=[videos], outputs=[zip_output])
gr.Markdown("---")
gr.Markdown("""
### Getting the Full Version
The full HinglishCaps app with AI transcription is available in the
repository files. To use it:
1. **Clone the repository** to your local machine
2. **Install dependencies** from `requirements_full.txt`
3. **Run `python app_full.py`**
The full app uses the Oriserve/Whisper-Hindi2Hinglish-Apex model for
accurate Hindi-English transcription.
""")
print("Launching app...")
app.launch(share=True, server_name="0.0.0.0")