Създаване на собствен YouTube MP3 Downloader с Python и преобразуването му в EXE файл

Създаване на собствен YouTube MP3 Downloader с Python и преобразуването му в EXE файл

В днешния свят на дигиталните медии, възможността да сваляме аудио съдържание от YouTube за лично ползване е изключително полезна. В тази статия ще ви покажа как да създадете професионален YouTube MP3 downloader с красив графичен интерфейс използвайки Python, и как да го превърнете в самостоятелен EXE файл.

🎯 Какво ще научите

  • Как да създадете GUI приложение с Python и Tkinter
  • Как да интегрирате yt-dlp за сваляне от YouTube
  • Как да добавите автоматична проверка за FFmpeg
  • Как да преобразувате Python скрипт в Windows EXE файл
  • Най-добри практики за обработка на грешки и потребителски интерфейс

🛠️ Необходими инструменти

Преди да започнем, ще ни трябват следните библиотеки:

pip install tkinter
pip install yt-dlp
pip install ttkthemes
pip install Pillow
pip install pyinstaller  # За създаване на EXE файл

📋 Архитектура на приложението

Нашият YouTube downloader ще има следните основни компоненти:

1. Графичен интерфейс (GUI)

  • URL въвеждане с бутон за paste от clipboard
  • Избор на формат (MP3 или M4A)
  • Избор на дестинация за файловете
  • Progress bar за проследяване на свалянето
  • Status индикатор

2. Backend функционалност

  • Валидация на YouTube URLs
  • Автоматична проверка за FFmpeg
  • Сваляне и конвертиране на файлове
  • Обработка на грешки

3. Допълнителни функции

  • Logging система за debug
  • Hover ефекти за бутоните
  • Help система за FFmpeg инсталация

💻 Създаване на основния скрипт

Нашето приложение е построено като обектно-ориентиран клас YouTubeDownloader.

Просто свалете скрипта:

за Windows 11:

Invoke-WebRequest -Uri "https://gist.fedia.eu/urocibg/0d651d8098f8435eb16dc3d1b8c09fdf/raw/HEAD/youtube_downloader.py" -OutFile "$env:USERPROFILE\Desktop\youtube_downloader.py"

Това ще свали youtube_downloader.py направо на десктопа на текущия потребител.

🧠 Обяснение:

ЧастКакво прави
Invoke-WebRequestPowerShell алтернатива на wget.
-UriURL адресът на файла.
-OutFileКъде да се запише файлът.
$env:USERPROFILE\DesktopТова е пътят до десктопа на текущия потребител (работи универсално за всеки Windows акаунт).

📦 Преобразуване в EXE файл

Стъпка 1: Подготовка на иконата

Създайте икона в .ico формат (256×256 пиксела). Можете да използвате онлайн конвертори като:

Стъпка 2: Инсталиране на PyInstaller

pip install pyinstaller

Стъпка 3: Създаване на EXE

За професионален резултат с всички dependencies:

pyinstaller --onefile --noconsole --icon=icon.ico --name="FedyaMP3-v1.3" --add-data="icon.ico;." --hidden-import=PIL._tkinter_finder --hidden-import=ttkthemes.themed_tk --distpath=./release youtube_downloader.py

Създайте папка с примерно име youtube_downloader

В нея, добавете файла, който свалихте youtube_downloader.py и иконата която сте си харесали с име icon.ico .

В същата папка отворете Терминал и изпълнете горната команда.

Ще се създадат няколко папки и файла. Отворете папката release и ще видите готовият файл FedyaMP3-v1.3.exe . Можете да го копирате където и да е и да го стартирате.

Финалният продукт е професионална програма, която можете да споделите с приятели или дори да разпространявате. Не забравяйте да спазвате авторските права и да използвате програмата само за лично ползване.

Забележка: Този софтуер е създаден само с образователна цел. Моля, спазвайте авторските права и Terms of Service на YouTube при използването му.

Бонус

Ще ви предложа още един скрипт, който ви позволява лесно да сваляте музикални плейлисти от Spotify и YouTube. С интуитивен графичен интерфейс, можете бързо да изтегляте Mp3 файлове директно от линк към плейлист или от текстов файл със списък с песни.

✨ Функционалности

  • Сваляне на плейлисти от Spotify: Въвеждайте линк към Spotify плейлист и скриптът ще го свали в избраната от вас папка.
  • Сваляне на плейлисти от YouTube (аудио): Въвеждайте текстов файл със списък с песни и скриптът ще ги свали в избраната от вас папка.
  • Сваляне на цели видеоклипове от YouTube: Въвеждайте линк към YouTube видео и скриптът ще го свали в избраната от вас папка

🔧 Инсталация на необходимите инструменти:

# Инсталирай spotdl за Spotify плейлисти
pip install spotdl

# Инсталирай yt-dlp за YouTube
pip install yt-dlp

Ако имате проблеми с pip, опитайте:

# Алтернативни команди
pip3 install spotdl yt-dlp

# Или с --user флаг
pip install --user spotdl yt-dlp

# За Windows с Python Launcher
py -m pip install spotdl yt-dlp

📋 Пълна инсталация стъпка по стъпка:

  1. Отвори Command Prompt/Terminal като администратор
  2. Инсталирай spotdl: bashpip install spotdl
  3. Инсталирай yt-dlp: bashpip install yt-dlp
  4. Провери дали са инсталирани: bashspotdl --version yt-dlp --version

⚠️ Ако имаш проблеми:

За Windows:

# Използвай Python Launcher
py -m pip install spotdl yt-dlp

# Или актуализирай pip първо
python -m pip install --upgrade pip
pip install spotdl yt-dlp

Инструкции за използване

  1. Изтеглете и инсталирайте изискваните библиотеки според изискванията по-горе.
  2. Изпълнете скрипта и следвайте инструкциите в GUI приложението.
  3. Въведете линк към плейлист или видео според избора си.
  4. Изберете папка за запазване на свалените файлове.
  5. Натиснете бутона за сваляне

Сваляне от текстов файл

  1. Създайте текстов файл с имена на песни
  2. Изберете файла
  3. Изберете директория за запазване
  4. Натиснете "Свали плейлист от YouTube"

Съвет: Текстовият файл трябва да съдържа по една песен на ред.

🔧 Допълнителни стъпки:

project_folder/
├── playlist_downloader.py
├── icon.ico (по избор)
└── requirements.txt

Свалете скрипта:

за Windows 11:

Invoke-WebRequest -Uri "https://gist.fedia.eu/urocibg/2436222ef89a46f19b0eaeff4f02f15a/raw/HEAD/playlist_downloader.py"

Създаване на EXE: Просто следвайте стъпките по-горе и само сменете името на скрипта.

Забележка: Този софтуер е създаден само с образователна цел. Моля, спазвайте авторските права.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: