BoozeDown is a versatile tool designed for media processing. With BoozeDown, you can download videos or extract audio from YouTube URLs and uploaded video files effortlessly. Built with a simple API, BoozeDown leverages the powerful yt-dlp
and Node.js for efficient performance. This project is optimized for local setups but can be expanded for deployment in production environments.
-
Download YouTube Videos and Audio
- Supports downloading YouTube videos in MP4 format.
- Extracts high-quality audio from YouTube URLs in MP3 format.
-
Extract Audio from Uploaded Videos
- Upload your own video files to extract audio in MP3 format.
- Process is quick, reliable, and designed for a seamless user experience.
-
Dynamic Output Management
- Automatically saves output files to the
Downloads
directory on the user's machine. - Files are served on the fly, followed by automatic cleanup of temporary files.
- Automatically saves output files to the
-
Cross-Platform Adaptability
- While configured for Windows, BoozeDown can be adapted to run on macOS or Linux systems with minor modifications.
-
On-the-Fly Cleanup
- Temporary files are automatically deleted after they are sent to the user, ensuring a clean workspace.
BoozeDown relies on a globally installed yt-dlp
for media processing. The reasons behind this decision include:
- Up-to-Date Features: A globally installed version ensures that you benefit from the latest updates, features, and bug fixes.
- Reduced Project Complexity: By using
yt-dlp
globally, we minimize the need for complex dependencies within the project, making the setup process simpler. - High Efficiency:
yt-dlp
is a highly optimized tool for downloading and processing media, and using it globally ensures consistent performance across systems.
We opted for a global installation of yt-dlp
for several reasons:
- Performance: Installing
yt-dlp
globally ensures it's pre-compiled and ready to use, reducing overhead during runtime. - Versatility:
yt-dlp
is a powerful, community-maintained tool that supports various video platforms beyond YouTube, ensuring future scalability. - Separation of Concerns: By using it globally, the project avoids managing
yt-dlp
binaries directly, simplifying the codebase. - Portability: Users can easily reuse the global
yt-dlp
installation across other projects.
Follow these steps to set up the project:
- Node.js: Ensure you have Node.js installed on your system.
- Global Installation of
yt-dlp
:
You need to installyt-dlp
globally on your system.
-
Install Python 3.7 or later if it's not already installed.
Download Python -
Install
yt-dlp
using Python's package managerpip
:pip install -U yt-dlp
-
Verify the installation:
yt-dlp --version
git clone https://github.com/your-username/boozedown.git
cd boozedown
npm install
npm run dev
Make a GET request to /api/download
with the following parameters:
url
: The YouTube video URL.format
: Optional. Useaudio
to download only the audio, or download thevideo
.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your message here"
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.