Konwersja YouTube -> MP3 z poziomu przeglądarki

Tutorial na przykładzie przeglądarki Firefox i systemu Linux:

Potrzebne będą youtube-dl oraz ffmpeg. W przypadku Arch Linuksa wpisujemy:

sudo pacman -S youtube-dl ffmpeg

Instalujemy dodatek do Firefoxa umożliwiający uruchamianie zewnętrznych aplikacji (co ważne, jest zgodny z WebExtension): https://addons.mozilla.org/pl/firefox/addon/external-application/

Następnie tworzymy skrypt o treści:


#!/bin/bash

IKONA="/home/wojtex/.mozilla/native-client/youtube-icon.png"
POBIERANIE="/home/wojtex/Muzyka/YouTubeDL/"

cd "$POBIERANIE"
notify-send "YouTubeDL" "Rozpoczynanie pobierania..." --icon="$IKONA" --expire-time=5000
URL=`echo "$1" | gawk -F\& '{ print $1 }'`
youtube-dl --newline -o '%(title)s.%(ext)s' --extract-audio --audio-format mp3 --audio-quality 0 $URL > .output 2> .error

if [ -s .error ]
then
    BLAD=`cat .error`
    notify-send "YouTubeDL" "Błąd: $BLAD" --icon="$IKONA" --expire-time=5000
else
    TYTUL=`grep "\[download\] Destination" .output | gawk -F'Destination: ' '{ print $2 }' | sed 's/\.[^.]*$//'`
    notify-send "YouTubeDL" "Pobrano: $TYTUL" --icon="$IKONA" --expire-time=5000
fi

rm .output .error

Zapisujemy, nadajemy prawa do uruchamiania (chmod +x) i przechodzimy do ustawień wcześniej zainstalowanego dodatku:


  • Display name dowolnie - na przykład "YouTubeDL"
  • Executable name - podajemy pełną ścieżkę do powyższego skryptu - u mnie jest to "/home/wojtex/Dokumenty/mp3.sh"
  • Arguments - "[HREF]"

Zaznaczamy Toolbar button, dodajemy ikonę (maksymalny rozmiar to 32x32) i klikamy Update Application.

Następnie klikamy na nowo powstałą ikonę. Wystarczy jeszcze zainstalować native-clienta według wyświetlonej instrukcji. Dodam tylko, że zamiast wykonywać samo "./install" warto dodać argument "--custom-dir":

./install.sh --custom-dir=/home/wojtex/.mozilla/native-client/

Dzięki temu nie będziemy mieć bałaganu w systemie.

Dzięki takim zabiegom konwersja filmu z YouTube do mp3 jest banalnie prosta i co najważniejsze niezawodna - w przeciwieństwie do konwerterów online i większości dodatków do przeglądarek. Program youtube-dl uruchomiony z argumentami ze skryptu automatycznie wybierze najlepszą dostępną jakość audio.

PS Skrypt korzysta z libnotify (notify-send), dla większej uniwersalności. Jeśli korzystamy tylko z KDE można użyć kdialog.

W przypadku Windowsa:

Pobieramy youtube-dl: https://yt-dl.org/downloads/latest/youtube-dl.exe

Pobieramy ffmpeg: http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-latest-win64-stat...

Wypakowujemy ffmpeg i przenosimy youtube-dl.exe do katalogu ffmpeg\bin.

Następnie pobieramy dodatek do przeglądarki i konfigurujemy go analogicznie, za wyjątkiem:


  • Executable name - C:\Windows\System32\cmd.exe
  • Arguments - /s /c start "C:\Users\Wojtex\Downloads\ffmpeg\bin\youtube-dl.exe" --newline --extract-audio --audio-format mp3 --audio-quality 0 --ignore-errors -o "C:\Users\Wojtex\Downloads\YouTubeDL\%(title)s.%(ext)s" "[HREF]"

Instalujemy native-clienta wg instrukcji.