Skip to content

About

AutoVideoGen is an automated video generation pipeline that transforms stock footage into glitch-styled, audio-synchronized short-form videos. Running entirely through GitHub Actions, it produces YouTube Shorts as CI/CD artifacts, enabling reproducible, version-controlled, and fully automated media generation workflows.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

Repository files navigation

🎬 AutoVideoGen

Automated glitch-style short-form video generation powered by FFmpeg, Bash, and GitHub Actions.

AutoVideoGen is a CLI-based video generation tool that transforms stock footage into heavily stylized, glitch-inspired videos synchronized with audio. The project is designed to automate the production of vertical short-form videos suitable for platforms such as YouTube Shorts.

The entire workflow can run locally or automatically through GitHub Actions, producing generated videos as downloadable workflow artifacts.


Features

  • 🎥 Randomly selects stock footage
  • 🎵 Randomly selects audio tracks
  • ⚡ Heavy glitch effects
  • 🌈 RGB channel shifting
  • 🌪 Random camera shake
  • 🔍 Beat punch zooms
  • 🌫 Noise overlays
  • 🎨 Color grading
  • 👻 Ghost frame blending
  • 🔥 Fractal style overlays
  • ⚫ Random black screen flashes
  • 📱 Automatic vertical formatting (1080x1920)
  • 🖥 Interactive CLI
  • ⚙ GitHub Actions automation
  • 📦 Workflow artifact generation

Repository Structure

AutoVideoGen/
│
├── audio/
│   ├── song1.mp3
│   ├── song2.mp3
│   └── ...
│
├── videos/
│   ├── clip1.mp4
│   ├── clip2.mp4
│   └── ...
│
├── output/
│   └── Generated videos
│
├── scripts/
│   ├── autovideogen_cli.sh
│   └── glitch_generate.sh
│
├── .github/
│   └── workflows/
│       └── daily-autovideogen.yml
│
└── README.md

Components

videos/

Contains the stock footage library.

Every execution randomly selects one clip.

Example:

videos/
    beach.mp4
    city.mp4
    cyberpunk.mp4
    mountains.mp4

audio/

Contains music or audio tracks.

Each generated video randomly selects one audio file.

Supported formats:

  • mp3
  • wav
  • m4a
  • mp4

output/

Generated videos are written here.

Example:

output/

glitched_171235234.mp4
glitched_171235999.mp4
glitched_171236521.mp4

Scripts


glitch_generate.sh

Responsible for creating a single video.

Pipeline:

  1. Randomly selects a video
  2. Randomly selects audio
  3. Loops the source footage
  4. Crops to vertical
  5. Applies glitch effects
  6. Synchronizes to audio
  7. Renders final MP4

Effects currently include:

  • RGB Shift
  • Noise
  • Hard Light
  • Difference Blend
  • Overlay Blend
  • Color Distortion
  • Random Shake
  • Random Zoom
  • Ghost Frames
  • Fractal Overlay
  • Random Black Flashes

Produces one completed YouTube Short.


autovideogen_cli.sh

Provides the interactive interface.

Displays:

  • ASCII splash screen
  • CLI prompts
  • Progress
  • Generation status
  • Total render time

Example:

How many videos? [5]:

Press Enter:

Creates 5 videos

Or specify:

25

Creates 25 videos.


Running

Default:

./scripts/autovideogen_cli.sh

Generates:

5 videos

Specify amount:

./scripts/autovideogen_cli.sh 20

Generates:

20 videos

GitHub Actions

Included workflow:

.github/workflows/daily-autovideogen.yml

Example schedule:

Every day
6:00 AM

Workflow automatically:

  • Checks out repository
  • Installs FFmpeg
  • Runs CLI
  • Generates videos
  • Uploads output folder as workflow artifacts

No manual intervention required.


GitHub Artifacts

Every scheduled execution produces downloadable artifacts.

Example:

Actions

Daily AutoVideoGen

Artifacts

autovideogen-output.zip

Download the archive to retrieve every generated MP4.


Requirements

  • Bash
  • FFmpeg
  • Python 3

MacOS:

brew install ffmpeg

Ubuntu:

sudo apt install ffmpeg

Example Workflow

Stock Videos
        │
        ▼

Random Selection
        │
        ▼

Audio Selection
        │
        ▼

Crop Vertical
        │
        ▼

Glitch Effects
        │
        ▼

Shake
        │
        ▼

Zoom
        │
        ▼

RGB Shift
        │
        ▼

Noise
        │
        ▼

Black Flashes
        │
        ▼

Export MP4
        │
        ▼

Output Folder

Automation Example

6:00 AM

↓

GitHub Actions

↓

Generate 10 Videos

↓

Upload Artifacts

↓

Download Videos

↓

Upload to YouTube Shorts

Typical Use Case

  1. Populate the videos/ folder with royalty-free or original footage.

  2. Populate the audio/ folder with music or sound effects.

  3. Run:

./scripts/autovideogen_cli.sh

or schedule execution through GitHub Actions.

  1. Download the generated videos.

  2. Review the results.

  3. Publish to YouTube Shorts or other vertical video platforms.


Customization

Future enhancements may include:

  • Beat detection
  • AI-generated captions
  • Automatic subtitles
  • Transition packs
  • VHS effects
  • CRT simulation
  • Datamoshing
  • Lens distortion
  • Motion blur
  • Particle systems
  • Video packs
  • Preset profiles
  • Batch rendering
  • Multi-threaded generation
  • Automatic YouTube uploads
  • Thumbnail generation
  • Metadata generation
  • AI title generation
  • AI description generation
  • AI hashtag generation

License

This project is intended for experimentation, creative media generation, and learning FFmpeg-based video processing pipelines.

Please ensure that all source footage, music, and generated content complies with applicable copyright laws and the terms of service of any platform where the videos are published.

About

AutoVideoGen is an automated video generation pipeline that transforms stock footage into glitch-styled, audio-synchronized short-form videos. Running entirely through GitHub Actions, it produces YouTube Shorts as CI/CD artifacts, enabling reproducible, version-controlled, and fully automated media generation workflows.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages