Shreevathsam's picture
Upload 7 files
598e1f3 verified

A newer version of the Gradio SDK is available: 6.3.0

Upgrade
metadata
title: AI Video Generator
emoji: 🎬
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.0.0
app_file: app.py
pinned: false

🎬 AI Video Generator

An AI-powered video generator that creates engaging videos with text-to-speech voiceovers, animated subtitles, and professional transitions.

✨ Features

  • Text-to-Speech: Convert text to natural-sounding speech using Google's Gemini TTS
  • Multiple Voices: Choose from 5 different AI voices
  • Audio Upload: Upload your own voiceover audio
  • Automatic Subtitles: Word-by-word highlighted subtitles generated automatically
  • Video Transitions: Multiple transition effects (Smooth Blend, Ken Burns Zoom, Whip Pan, etc.)
  • Background Music: Add background music to your videos
  • Custom Titles: Add animated title overlays

πŸš€ Setup Instructions

1. Initial Setup on Hugging Face

  1. Go to Hugging Face Spaces
  2. Click "Create new Space"
  3. Choose a name (e.g., "my-video-generator")
  4. Select Gradio as the SDK
  5. Choose hardware (CPU is free, GPU recommended)
  6. Click "Create Space"

2. Add Your Google API Key

  1. Go to Space Settings β†’ Repository secrets
  2. Click "New secret"
  3. Name: GOOGLE_API_KEY
  4. Value: Your Google API key (get one from Google AI Studio)
  5. Click "Add"

3. Upload Required Files

Upload these files to your Space:

  • app.py (main application)
  • requirements.txt (Python dependencies)
  • packages.txt (system dependencies)
  • README.md (this file)

4. Add Video Clips

IMPORTANT: You need to add video clips for the generator to work!

  1. In your Space, click "Files and versions"
  2. Click "Add file" β†’ "Create a new file"
  3. Create a folder called video_clips
  4. Upload at least 5-10 video clips (.mp4, .avi, .mkv, or .mov)

Tips for video clips:

  • Use clips that are 5-30 seconds long
  • HD quality (1080p or 720p) works best
  • Nature, city, abstract, or stock footage works great
  • More clips = more variety in your videos

5. Optional: Add Background Music

  1. Create a folder called background_music
  2. Upload .mp3 or .wav files
  3. Music will be automatically added at low volume

πŸ“– How to Use

  1. Enter Text: Type or paste the text you want converted to speech
  2. Choose Voice: Select from 5 AI voices
  3. OR Upload Audio: Upload your own voiceover (instead of TTS)
  4. Add Title (optional): Enter a title to display at the start
  5. Set Duration: Only used if no audio is provided
  6. Choose Quality: High (1080p), Standard (720p), or Preview (480p)
  7. Select Transition: Choose your preferred transition effect
  8. Click Generate: Wait for your video to be created!

πŸŽ₯ Output

The generated video will include:

  • Your selected video clips with transitions
  • Voiceover audio (TTS or uploaded)
  • Animated word-by-word subtitles
  • Optional title overlay
  • Optional background music

πŸ”§ Troubleshooting

"Video clips folder not found"

  • Make sure you've uploaded videos to the video_clips folder

"TTS failed"

  • Check that your Google API key is correctly set in Space settings
  • Verify the API key has the Gemini API enabled

Slow generation

  • Consider upgrading to GPU hardware in Space settings
  • Reduce video quality to "Preview" for faster processing

Out of memory

  • Use fewer/shorter video clips
  • Reduce video quality setting
  • Upgrade to larger hardware

πŸ“ File Structure

your-space/
β”œβ”€β”€ app.py                 # Main application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ packages.txt          # System dependencies
β”œβ”€β”€ README.md             # This file
β”œβ”€β”€ video_clips/          # Your video files (REQUIRED)
β”‚   β”œβ”€β”€ clip1.mp4
β”‚   β”œβ”€β”€ clip2.mp4
β”‚   └── ...
β”œβ”€β”€ background_music/     # Optional music files
β”‚   └── music.mp3
β”œβ”€β”€ voice_over/           # Generated voiceovers (auto-created)
└── exports/              # Generated videos (auto-created)

🎨 Customization

You can customize the app by editing app.py:

  • Change subtitle styling
  • Modify transition effects
  • Adjust video processing settings
  • Add new features

πŸ“„ License

This project uses various open-source libraries. Please ensure compliance with their licenses.

πŸ™‹ Support

If you encounter issues:

  1. Check the Space logs for error messages
  2. Verify all setup steps are completed
  3. Ensure video clips are uploaded
  4. Check that API key is correctly set

🌟 Credits

Built with:

  • Gradio
  • MoviePy
  • OpenAI Whisper
  • Google Generative AI
  • Pillow

Made with ❀️ using Hugging Face Spaces