This project allows users to create a custom audio mashup by selecting songs based on a search term. The app downloads the selected songs, extracts parts of them, and creates a mashup. The generated mashup is then sent via email to the user.
- Song Search: Search for songs by a singer’s name.
- Audio Mashup Creation: Select the number of songs and the duration of each song segment to be used in the mashup.
- Email Delivery: The final mashup is emailed to the user.
- Responsive Web Interface: The app provides a user-friendly form to input song search details.
Before running this project, make sure you have the following installed:
- Python 3.6+
ffmpeginstalled and configured (for audio processing)- Flask
- yt-dlp (for downloading audio from YouTube)
- pydub (for audio manipulation)
- smtplib (for sending email)
Clone this repository to your local machine:
git clone https://github.com/shaurya-bhatia-sb/Song-Mashup-Downloader.git
cd Song-Mashup-DownloaderYou can install the required Python libraries using pip:
pip install -r requirements.txtTo send the mashup to an email, you need to configure an email account with app-specific passwords (if using Gmail).
- For Gmail:
- Enable 2-Step Verification for your Google account.
- Generate an App Password for your application here.
- Replace the
EMAIL_ADDRESSandEMAIL_PASSWORDvalues inapp.pywith your email address and generated app password.
Make sure you have ffmpeg installed and accessible via your system's PATH. If it’s not installed, follow the instructions here.
Alternatively, you can specify the full path to ffmpeg in your script if it’s not added to the PATH.
AudioSegment.ffmpeg = r"path of ffmpeg.exe" # Modify this line in app.py-
Start the Flask Application
Run the Flask app:
python app.py
-
Navigate to the web interface
Open a web browser and go to:
http://127.0.0.1:5000/ -
Fill out the form
Enter the singer's name, number of songs to download, song segment duration, and your email.
-
Download and Receive Mashup
After submitting the form, the app will download the selected songs, create the mashup, and email it to you.
/Song-Mashup-Downloader
├── app.py # Main Flask application
├── mashup.py # Python code
├── requirements.txt # List of dependencies
├── templates/
│ └── index.html # HTML form for user interaction
├── static/
│ └── style.css # Custom CSS for styling the web interface
├── mashups/ # Directory where mashups are stored
└── README.md # This file
If you’d like to contribute to this project, feel free to:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
This project is open-source and available under the MIT License.
Made with ❤️ by Shaurya Bhatia


