An automated system that generates, combines, and uploads lofi jazz music videos to youtube using AI. The system uses Claude AI for prompts, Suno AI for music generation, DALL-E for background images, and automatically uploads the final compilation to YouTube.
This is currently running the youtube channel Where Are We (?)
- 🎵 Generates unique lofi jazz songs using AI
- 🖼️ Creates themed background images with cosmic café aesthetics
- 📝 Generates video titles and descriptions
- 🎬 Compiles music into a single video
- 📤 Automatically uploads to YouTube with timestamps
- Python 3.9+
- Node.js and npm (for Suno API server)
- YouTube API credentials
- API keys for:
- Anthropic (Claude)
- OpenAI (DALL-E)
- Suno AI
- Clone the repository:
git clone https://github.com/Bentlybro/Automated-Youtube-Music-Generation.git
cd Automated-Youtube-Music-Generation
- Install Python dependencies:
pip install -r requirements.txt
- Set up your configuration:
- Create a copy of
src/config-example.py
and name itconfig.py
- Add your API keys and configuration:
- Create a copy of
ANTHROPIC_API_KEY = 'your-claude-api-key'
OPENAI_API_KEY = 'your-openai-api-key'
BASE_URL = 'http://localhost:3000' # Suno API server endpoint
-
Set up YouTube credentials:
- Create a project in Google Cloud Console
- Enable YouTube Data API v3
- Download OAuth 2.0 credentials as
client_secrets.json
- Place in project root directory
-
Set up Suno API server:
- Clone gcui-art/suno-api
- Follow their instructions to set up the server
- Start the Suno API server:
cd suno-api
npm run dev
- Run the generator:
python main.py
The program will:
- Generate multiple lofi jazz prompts using Claude
- Create unique songs using Suno AI (2 variations per prompt)
- Generate a cosmic café themed background image
- Combine the songs into a single video
- Upload the final video to YouTube
src/
├── audio/
│ ├── generator.py # Handles music generation via Suno AI
│ └── processor.py # Processes and combines audio files
├── image/
│ └── generator.py # Creates background images using DALL-E
├── video/
│ └── creator.py # Combines audio and image into video
├── youtube/
│ └── uploader.py # Handles YouTube upload and metadata
└── utils/
├── file_manager.py # Manages file organization
└── prompt_generator.py # Generates music prompts via Claude
Output/
├── YYYYMMDD_HHMMSS/
├── music/
│ ├── segments/
│ │ └── [prompt_folders]/
│ └── combined_playlist.mp3
├── photos/
│ └── background.jpg
└── videos/
└── playlist_video.mp4
-
Initialization & Prompt Generation
- Creates timestamped output folders
- Uses Claude AI to generate unique lofi jazz prompts with titles and descriptions
-
Content Generation
- Processes prompts concurrently (default: 3 at a time)
- Generates music variations using Suno AI
- Creates themed background image using DALL-E
- Combines audio files into a single playlist
- Creates final video with background image
-
YouTube Upload
- Generates SEO-friendly titles and descriptions
- Handles authentication and upload
- Includes timestamps in video description
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Anthropic Claude for prompt generation
- Suno AI for music generation
- gcui-art/suno-api for Suno AI implementation
- DALL-E for image generation