This project provides a complete system for automating the creation of metadata and lyrical content for music tracks intended for YouTube. It takes a simple track name and album name, and based on the chosen mode, can generate everything you need to publish a song.
Core Features:
- Structured Input: A simple
make setupcommand creates a dedicated directory for your new track. - Flexible Modes:
strict: Requires you to provide your own lyrics.lyrical: Has freedom to modify and rearange lyrics.instrumental: Skips lyric generation entirely.generate: Forces AI lyric generation from a topic, even if a lyrics file exists.
- Comprehensive Output: Generates titles, multiple descriptions, hashtags, studio-ready lyrics with AI cues, sing-along versions, and more.
- AI-Powered: Uses a configurable AI model (e.g., Google's Gemini) to generate creative content based on your prompts.
This repository is a template. To get started, click the "Use this template" button on the GitHub page to create your own repository.
Once you have your own copy, follow the Full Setup Guide to configure your local environment.
To use the YouTube integration, obtain your credentials from the Google Cloud Console, save them as client_secret.json in the root directory, and ensure this file is ignored by git.
The project uses a simple, two-step workflow managed by a Makefile.
-
make setup: This command will interactively prompt you to enter an album and track name. It creates the necessary input directory (e.g.,input/album_name/track_name/) and placeholder files for optional lyrics and a title. -
make run: This command will ask for the track you want to process and the mode to use. It then runs the main processing script to generate all the output files.
For a more detailed walkthrough, see the Run Project Guide.
The project is organized into the following key directories:
agent/: Contains the core logic for AI interaction, including the Gemini client and prompt templates.input/: This is where you start your work. Themake setupcommand creates subdirectories for your albums and tracks here.albums/: This is the output directory. All generated content for each track will be organized and saved here.config.yaml: The main configuration file where you set your artist details, and customize the AI's creative style.