Skip to content

Create your own custom powerhour mixes effortlessly. You can either provide a folder of music videos or a YouTube playlist link.

License

Notifications You must be signed in to change notification settings

izzoa/powerhour-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

26 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PowerHour Generator ๐ŸŽ‰

Create epic PowerHour videos with ease - now with a graphical interface!

Python FFmpeg License GUI CLI

Create your own custom PowerHour mixes effortlessly! This tool can process local video folders or download YouTube playlists, randomly extract one-minute clips from each video, and seamlessly stitch them together with smooth transitions. Perfect for parties, celebrations, or any gathering that needs an hour of non-stop entertainment!

๐Ÿš€ Quick Start

GUI Version (Recommended)

The easiest way to use PowerHour Generator is through the graphical interface:

python powerhour_gui.py

PowerHour GUI

๐Ÿ“– Full GUI Documentation โ†’

CLI Version

For automation and scripting, use the command-line interface:

python powerhour_generator.py /path/to/videos /path/to/transition.mp4 3 output.mp4

๐Ÿ“š Documentation

Document Description
GUI Quick Start Installation and setup for the graphical interface
User Guide Comprehensive guide with tutorials and screenshots
Architecture System design and technical documentation
Contributing How to contribute to the project
Changelog Version history and updates

โœจ Features

Core Capabilities

  • ๐ŸŽฌ Dual Interface - Choose between GUI or command-line
  • ๐Ÿ“ Local Processing - Process folders of video files
  • ๐ŸŒ Online Support - Download and process YouTube playlists
  • ๐ŸŽต Audio Normalization - Consistent volume across all clips
  • ๐Ÿ”„ Smooth Transitions - Customizable fade effects between videos
  • ๐Ÿ“Š Real-time Progress - Visual progress tracking (GUI)
  • ๐ŸŽฏ Smart Selection - Random 60-second clips from longer videos
  • ๐ŸŽจ Professional Output - Standardized HD video format

GUI-Exclusive Features

  • ๐Ÿ“ˆ Real-time progress bars with ETA
  • ๐Ÿ’พ Configuration persistence
  • ๐ŸŽ›๏ธ Preset system for quick settings
  • ๐Ÿ“ Comprehensive logging
  • ๐Ÿ”ง Expert mode for advanced users
  • ๐Ÿ“š Built-in help system

๐Ÿ“‹ Requirements

System Requirements

  • OS: Windows 10+, macOS 10.14+, or Linux (Ubuntu 18.04+)
  • Python: 3.8 or higher
  • RAM: 4GB minimum, 8GB recommended
  • Storage: 10GB free space

Software Dependencies

  • FFmpeg - Video processing engine
  • Python 3.8+ - Runtime environment
  • Tkinter - GUI framework (included with Python)
  • yt-dlp - YouTube download support (optional)
  • psutil - Resource monitoring (optional)

๐Ÿ”ง Installation

Quick Install Scripts

We provide automated installation scripts for all platforms:

Windows

# Run PowerShell as Administrator
.\Install_Requirements_Win.ps1

macOS

chmod +x install_requirements_mac.sh
./install_requirements_mac.sh

Linux (Debian/Ubuntu)

chmod +x install_requirements_deb.sh
sudo ./install_requirements_deb.sh

Manual Installation

Click for detailed manual installation steps

1. Install Python 3.8+

  • Windows: Download from python.org
  • macOS: brew install python3
  • Linux: sudo apt install python3 python3-pip

2. Install FFmpeg

  • Windows: Download from ffmpeg.org
  • macOS: brew install ffmpeg
  • Linux: sudo apt install ffmpeg

3. Install Python Dependencies

pip install psutil  # Optional: for resource monitoring
pip install yt-dlp  # Optional: for YouTube support

4. Verify Installation

python3 --version   # Should show 3.8+
ffmpeg -version     # Should show FFmpeg version
yt-dlp --version    # Should show yt-dlp version (if installed)

๐ŸŽฎ Usage

GUI Usage (Recommended for Most Users)

  1. Launch the application:

    python powerhour_gui.py
  2. Select your video source:

    • Browse to a folder with videos, OR
    • Paste a YouTube playlist URL
  3. Choose a transition clip:

    • Select a 3-5 second video for transitions
  4. Configure settings:

    • Fade duration (0-10 seconds)
    • Output location and filename
  5. Start processing:

    • Click "Start Processing"
    • Monitor real-time progress
    • Enjoy your PowerHour video!

๐Ÿ“– Detailed GUI Tutorial โ†’

Command-Line Usage

python powerhour_generator.py [source] [transition] [fade] [output]

Parameters:

  • source: Path to video folder or YouTube playlist URL
  • transition: Path to transition clip (plays between videos)
  • fade: Fade duration in seconds
  • output: Output filename

Example:

# Local videos
python powerhour_generator.py ./videos ./transition.mp4 3 powerhour.mp4

# YouTube playlist
python powerhour_generator.py "https://youtube.com/playlist?list=..." ./transition.mp4 3 powerhour.mp4

๐ŸŽฏ How It Works

  1. Input Processing

    • Scans folder for videos or downloads YouTube playlist
    • Validates videos are at least 80 seconds long
  2. Audio Analysis

    • Analyzes loudness levels of all clips
    • Prepares normalization parameters
  3. Video Processing

    • Randomly selects 60-second segments
    • Applies audio normalization
    • Adds fade in/out effects
    • Scales to HD resolution (1280x720)
  4. Assembly

    • Inserts transition clips between videos
    • Concatenates all clips into final video
    • Outputs standardized MP4 file

๐Ÿ” Project Structure

powerhour-generator/
โ”œโ”€โ”€ powerhour/               # Source code package
โ”‚   โ”œโ”€โ”€ __init__.py         # Package initialization
โ”‚   โ”œโ”€โ”€ powerhour_gui.py    # GUI application
โ”‚   โ”œโ”€โ”€ powerhour_processor.py  # Video processing engine
โ”‚   โ””โ”€โ”€ powerhour_generator.py  # CLI application
โ”‚
โ”œโ”€โ”€ tests/                   # Test suite
โ”‚   โ””โ”€โ”€ test_gui.py         # GUI tests
โ”‚
โ”œโ”€โ”€ docs/                    # Documentation
โ”‚   โ”œโ”€โ”€ README_GUI.md       # GUI quick start
โ”‚   โ”œโ”€โ”€ USER_GUIDE.md       # Comprehensive user guide
โ”‚   โ”œโ”€โ”€ CHANGELOG.md        # Version history
โ”‚   โ”œโ”€โ”€ CONTRIBUTING.md     # Development guide
โ”‚   โ”œโ”€โ”€ ARCHITECTURE.md     # Technical documentation
โ”‚   โ”œโ”€โ”€ RELEASE.md          # Release guide
โ”‚   โ””โ”€โ”€ UI_MIGRATION.md     # Migration tracker
โ”‚
โ”œโ”€โ”€ scripts/                 # Utility scripts
โ”‚   โ”œโ”€โ”€ install_requirements_mac.sh   # macOS installer
โ”‚   โ”œโ”€โ”€ Install_Requirements_Win.ps1  # Windows installer
โ”‚   โ”œโ”€โ”€ install_requirements_deb.sh   # Linux installer
โ”‚   โ””โ”€โ”€ build.py            # Build automation
โ”‚
โ”œโ”€โ”€ assets/                  # Static assets
โ”‚   โ””โ”€โ”€ logo.png            # Application logo
โ”‚
โ”œโ”€โ”€ .github/                 # GitHub configuration
โ”‚   โ””โ”€โ”€ workflows/          # CI/CD workflows
โ”‚       โ”œโ”€โ”€ ci.yml          # Continuous integration
โ”‚       โ””โ”€โ”€ release.yml     # Release automation
โ”‚
โ”œโ”€โ”€ README.md               # Project overview (this file)
โ”œโ”€โ”€ setup.py                # Package configuration
โ”œโ”€โ”€ requirements.txt        # Python dependencies
โ”œโ”€โ”€ LICENSE                 # MIT license
โ””โ”€โ”€ Makefile               # Build commands

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for:

  • Development setup
  • Code style guidelines
  • Testing procedures
  • Pull request process

๐Ÿ“ˆ Development Status

Current Version: 1.0.0

  • โœ… Full GUI implementation
  • โœ… Threading for non-blocking UI
  • โœ… Real-time progress tracking
  • โœ… Configuration persistence
  • โœ… Comprehensive error handling
  • โœ… Expert mode for power users

Roadmap

See CHANGELOG.md for planned features:

  • Batch processing queue
  • Video preview thumbnails
  • Custom transitions per segment
  • Pause/resume capability
  • Cloud upload integration

๐Ÿ› ๏ธ Troubleshooting

Common Issues

Problem Solution
"FFmpeg not found" Ensure FFmpeg is installed and in PATH
"No valid videos" Videos must be at least 80 seconds long
Processing is slow Use "Low Quality" preset or close other apps
GUI won't start Verify Python 3.8+ and Tkinter are installed

๐Ÿ“– Full Troubleshooting Guide โ†’

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • FFmpeg - The powerful multimedia framework that makes this possible
  • yt-dlp - For YouTube playlist support
  • Python Community - For excellent libraries and support
  • Contributors - Everyone who has helped improve this project

๐Ÿ“ฎ Support


Get Started with GUI โ€ข User Guide โ€ข Contributing โ€ข Architecture

Made with โค๏ธ by Anthony Izzo

Let the party begin! ๐ŸŽ‰

About

Create your own custom powerhour mixes effortlessly. You can either provide a folder of music videos or a YouTube playlist link.

Topics

Resources

License

Contributing

Stars

Watchers

Forks