Skip to main content

🎬 Short Film

PyPI version Python 3.9+ License: MIT

Generate 60-second short films using AI video generation APIs. Creates cinematic videos by chaining clips together using last-frame-to-first-frame transitions.

✨ Features

  • 🎥 Multiple Video Providers: OpenAI Sora and Google Gemini support
  • 🎨 8 Film Styles: Cinematic, noir, anime, documentary, sci-fi, fantasy, horror, comedy
  • 🎵 Music Vibes: Epic, suspenseful, calm, upbeat, dark, whimsical
  • 🔗 Frame Chaining: Automatically chains clips by using the last frame as the first frame of the next clip
  • 💾 Resume Support: Interrupted generations can be resumed from the last checkpoint
  • 🎯 Interactive & Non-interactive: Use conversationally or with config files
  • 📊 Progress Tracking: Beautiful progress bars and status updates

🚀 Quick Start

Installation

# Using uv (recommended)
uv tool install short-film

# Using pipx
pipx install short-film

# Using pip
pip install short-film

Usage

Interactive Mode (Recommended)

short-film generate

You'll be guided through the process:

  1. Enter your film premise
  2. Choose a visual style
  3. Pick a music vibe
  4. Watch as your film is generated!

Non-Interactive Mode

short-film generate \
  --premise "A lone astronaut discovers an alien artifact on Mars" \
  --style scifi \
  --music-vibe suspenseful \
  --provider openai \
  --duration 60

List Available Options

# Show all film styles
short-film styles

# Show all music vibes
short-film vibes

🎬 How It Works

  1. Align on Premise: Describe your short film concept
  2. Choose Style & Music: Pick from cinematic styles and music vibes
  3. Generate Starting Frame: AI creates the opening shot using DALL-E
  4. Chain Video Clips: Each 10-second clip uses the previous clip's last frame as its first frame
  5. Stitch Together: All clips are combined into a 60-second film

The secret sauce: By chaining the last frame of each clip to the first frame of the next, we create smooth transitions and can exceed single-clip duration limits!

🔑 Setup

You'll need API keys for the video generation providers:

OpenAI (Sora)

export OPENAI_API_KEY="sk-..."

Google Gemini

export GEMINI_API_KEY="..."

📖 Advanced Usage

Resume Interrupted Generation

If generation is interrupted, simply run the same command again:

short-film generate --resume

The tool automatically saves progress after each step and will continue from where it left off.

Custom Output Directory

short-film generate \
  --premise "Your premise" \
  --output /path/to/output

Disable Interactive Mode

short-film generate \
  --no-interactive \
  --premise "Your premise"

🎨 Film Styles

  • cinematic: Dramatic, film-like quality with professional cinematography
  • noir: Black and white, high contrast, dramatic shadows
  • anime: Japanese animation style with vibrant colors
  • documentary: Realistic, natural lighting, authentic feel
  • scifi: Futuristic, high-tech, neon-lit environments
  • fantasy: Magical, ethereal, fantastical elements
  • horror: Dark, ominous, unsettling atmosphere
  • comedy: Bright, colorful, lighthearted tone

🎵 Music Vibes

  • epic: Grand, sweeping orchestral music
  • suspenseful: Tense, dramatic, keeps you on edge
  • calm: Peaceful, relaxing, ambient
  • upbeat: Energetic, positive, fun
  • dark: Ominous, foreboding, intense
  • whimsical: Playful, quirky, lighthearted
  • none: No music (video only)

🛠️ Requirements

  • Python 3.9+
  • ffmpeg (for video stitching)
  • OpenAI API key (for Sora) or Google Gemini API key

Installing ffmpeg

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Amazon Linux
sudo dnf install ffmpeg

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📝 License

MIT License - see LICENSE file for details.

🙏 Credits

Built with:


Made with ❤️ by Aaron Levin

Metadata

Release files for short-film 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for short-film 0.1.0
File Size Uploaded Provenance
short_film-0.1.0.tar.gz 18.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for short-film 0.1.0
File Interpreter ABI Platform
short_film-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.0 kB

Release files / short_film-0.1.0.tar.gz

Download URL short_film-0.1.0.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0e83fe347b025a8a6147e52eeecb9199f5690dc38db0a9aca0905eded6a32844
BLAKE2b-256 checksum
How to use checksums
58185dda46e7247c26b52136ce369c9298385f7f56eb1a2499accb9dcc1ec4eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / short_film-0.1.0-py3-none-any.whl

Download URL short_film-0.1.0-py3-none-any.whl
Size 17.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e52c5ba71b0523be67d2205ecf7d1b767902cfd8fb152dd3f17900666920555
BLAKE2b-256 checksum
How to use checksums
808c2b7ca69cdd5b4fd6785c103fae578616eaecd1f1531221b3578467565a7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for short-film 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page