ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Automatyczne pobieranie ścieżek audio i wideo z YouTube

Napisane przez Igor Brzeżek on 18 września 2025
Napisane w: Programowanie, Software.

Youtube downloader script- Wstęp
Dziś miałem taki problem, że trzeba było pobrać tylko ścieżki audio (najlepiej w mp3) z kilkuset filmów umieszczonych na playliście w serwisie Youtube.

Można to wykonać ręcznie:
– klikamy prawym na filmie
– wybieramy pozycję „Kopiuj adres linku”
– link wklejamy do jednego w wielu „pobieraczy” YT np. serwisu tuberipper.com
– klikamy w Download czy jak to sie tam nazywa i kolejno w .mp3 wybierając format (albo coś innego co chcemy pobrać)
– po chwili mamy ścieżkę audio na dysku

Fajne, ale chciałbym to zautomatyzować. Da się fajnie pod Linux z wiersza poleceń. Rozwiązaniem jest program yt-dlp. Może jednak on wymagać instalacji i jednorazowego uruchomienia chrome lub innej przeglądarki celem utworzenia profilu dla ciasteczek. Będzie też potrzebny ffmpeg do dekodowania audio/video oraz Python 3 i kilka bibliotek. Poniżej jak to wszystko poskładać.

Konfiguracja dla Linux z oknami 
– aktualizacja pakietów

#apt update ; apt upgrade

– instalacja python3, pip: sprawdź dla swojego systemu jak to się instaluje

–  instalacja ffmpeg

#apt install ffmpeg

– instalacja yt-dlp

# sudo pip3 install –upgrade yt-dlp

To wymaga nowej wersji Python i jeśli masz starszy musisz dokonać aktualizacji. Sprawdź dla swojego systemu jak to zrobić. U mnie pojawił się problem (choć sam program działa):

Zatem można aktualizować Python. Program można także instalować dla konkretnego Pythona:

#python3.11 -m pip install –upgrade yt-dlp

Teraz instalujemy chrome lub firefox, także popatrz jak dla twojego systemu to wykonać. Trzeba uruchomić Chrome aby utworzył katalog domowy i wejść na dowolną stronę. To wystarczy, Chrome można zamknąć. Chrome można pobrać tak

#wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

i zainstalować jak niżej:

#sudo dpkg -i google-chrome-stable_current_amd64.deb

Można też instalować tego pobieracza w inny sposób

# sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
# sudo chmod a+rx /usr/local/bin/yt-dlp

 

Pobranie playlisty z YouTube

Wymagany ffmpeg do konwersji audio!

Teraz czas na pobranie playlisty (zamiast chrome można wpisać firefox jeśli jest zainstalowany):

# yt-dlp –cookies-from-browser chrome -x –audio-format mp3 –playlist-start 1 –playlist-stop 100 https://adres-playlisty

Jeżeli będzie problem z uruchomieniem programu możesz go startować z katalogu: ~/.local/bin/

# ~/.local/bin/yt-dlp –cookies-from-browser chrome -x –audio-format mp3 –playlist-start 1 –playlist-stop 100 https://adres-playlisty

Jeśli playlista jest długa można określić, ile danych pobieramy:

# yt-dlp –cookies-from-browser chrome -x –audio-format mp3 –playlist-start 1 –playlist-stop 100 https://adres-playlisty

Można także podać programowi „ręcznie” plik cookie witryny (trzeba go wcześniej pozyskać z komputera gdzie już istnieje):

# yt-dlp –cookies  ścieżka-do-pliku-cookie -x –audio-format mp3 https://nasza-playlista

Pobranie tylko ścieżki audio (128k) z jednego filmu

# yt-dlp -x –audio-format mp3 –audio-quality 5 –no-keep-video –no-playlist „https://youtu.be/7AzhPG9k_CE”

Pobieranie surowej ścieżki audio (bez konwersji)

# yt-dlp -f „bestaudio[abr<=128]”  „https://youtu.be/7AzhPG9k_CE”

 

Skrypty dostępne są na GitHub:

https://github.com/IgorBrzezek/yt-audio-extractor

Tutaj nowa wersja umożliwiająca pobieranie także video.

https://github.com/IgorBrzezek/YT-Audio-Video-Extractor
polecenie: yt_avextractor.py –list lista2.txt –pb -mp3fast –add-header –color –overwrite

Aby pobrać audio z jednego filmu z YT;

python yt_avextractor.py -mp3fast –add-header –pb –color „https://adres-filmu”

Aby automatycznie pobrać wiele filmów z listy:

  • przygotuj listę (jeden adres filmu na linię, bez cudzysłowów)
  • python yt_avextractor.py -mp3fast –add-header –pb –color –list lista.txt

 

Poniżej widok działania nowej wersji w konsoli przy pobieraniu listy:

 

Przykład skryptu Linux Bash 

Skrypt pobiera kolejno filmy do wyciągnięcia z nich strumienia audio w formacie mp3 128k.

#!/bin/bash
# ============================================
# yt-dl128.sh
# Pobiera ścieżkę audio z YouTube jako MP3
# Obsługuje:
# --mp3 → szybki tryb (bez konwersji, jak najszybciej)
# --128 → konwersja do MP3 128 kb/s
# --list <plik.txt> → pobieranie wielu filmów
# Loguje postęp do ~/ytdl-download.log
# ============================================

OUTPUT_DIR="$HOME"
LOG_FILE="$OUTPUT_DIR/ytdl-download.log"

# Kolory
GREEN="\e[32m"
RED="\e[31m"
YELLOW="\e[33m"
BLUE="\e[34m"
RESET="\e[0m"

# Tworzy katalog i log
mkdir -p "$OUTPUT_DIR"
touch "$LOG_FILE"

# Funkcja logowania
log() {
 local MESSAGE="$1"
 echo -e "[$(date '+%Y-%m-%d %H:%M:%S')] $MESSAGE" >> "$LOG_FILE"
}

# --------------------------------------------
# Funkcje pobierania
# --------------------------------------------

download_fast_mp3() {
 local URL="$1"
 echo -e "${BLUE} Szybkie pobieranie MP3:${RESET} $URL"
 log "FAST_MP3: $URL"

yt-dlp -x --audio-format mp3 \
 --no-keep-video --no-playlist \
 -o "$OUTPUT_DIR/%(title)s.%(ext)s" \
 "$URL"

local STATUS=$?
 if [ $STATUS -eq 0 ]; then
 echo -e "${GREEN} Sukces:${RESET} pobrano $URL"
 log "SUCCESS_FAST: $URL"
 else
 echo -e "${RED} Błąd podczas pobierania:${RESET} $URL"
 log "ERROR_FAST: $URL"
 fi
 echo "-----------------------------------"
}

download_mp3_128() {
 local URL="$1"
 echo -e "${BLUE} Pobieranie i konwersja do MP3 128k:${RESET} $URL"
 log "MP3_128: $URL"

yt-dlp -x --audio-format mp3 \
 --postprocessor-args "-b:a 128k" \
 --no-keep-video --no-playlist \
 -o "$OUTPUT_DIR/%(title)s.%(ext)s" \
 "$URL"

local STATUS=$?
 if [ $STATUS -eq 0 ]; then
 echo -e "${GREEN} Sukces:${RESET} pobrano $URL"
 log "SUCCESS_128: $URL"
 else
 echo -e "${RED} Błąd podczas pobierania:${RESET} $URL"
 log "ERROR_128: $URL"
 fi
 echo "-----------------------------------"
}

# --------------------------------------------
# Obsługa argumentów
# --------------------------------------------

show_help() {
 echo -e "${YELLOW}Użycie:${RESET}"
 echo " $0 --mp3 <link_do_youtube>"
 echo " $0 --128 <link_do_youtube>"
 echo " $0 --mp3 --list <plik_z_linkami.txt>"
 echo " $0 --128 --list <plik_z_linkami.txt>"
 exit 1
}

if [ $# -lt 2 ]; then
 show_help
fi

MODE=""
LIST_FILE=""
URL=""

# Parsowanie argumentów
while [[ $# -gt 0 ]]; do
 case "$1" in
 --mp3)
 MODE="mp3"
 shift
 ;;
 --128)
 MODE="128"
 shift
 ;;
 --list)
 LIST_FILE="$2"
 shift 2
 ;;
 *)
 URL="$1"
 shift
 ;;
 esac
done

if [ -z "$MODE" ]; then
 echo -e "${RED} Nie podano trybu (--mp3 lub --128)!${RESET}"
 show_help
fi

if [ -n "$LIST_FILE" ]; then
 # Tryb listy
 if [ ! -f "$LIST_FILE" ]; then
 echo -e "${RED} Plik '${LIST_FILE}' nie istnieje!${RESET}"
 exit 1
 fi

echo -e "${YELLOW} Wczytywanie listy:${RESET} $LIST_FILE"
 echo -e "${YELLOW} Logowanie do:${RESET} $LOG_FILE"
 echo "-----------------------------------"
 log "===== START BATCH ($MODE) from $LIST_FILE ====="

while IFS= read -r LINE || [ -n "$LINE" ]; do
 if [[ -z "$LINE" || "$LINE"]()]()

…

 

 

Nawigacja

← Przekierowanie zapytań DNS do lokalnego resolvera
Elementy bezpieczeństwa IT – Triada CIA →
  • Szukaj

  • Kategorie

    • IT ogólnie (158)
      • AI (1)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (47)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (3)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (5)
        • Tunelowanie ruchu (6)
          • Tunele GRE (2)
          • Tunele SSH (4)
        • WLAN / WiFi (7)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Opencode – darmowe kredyty
    • Tunel SSH – zwrotny (remote forwading)
    • GNS3 – Interfejsy sieciowe
    • GNS3 – Konfiguracja urządzenia IOU (L2/L3)
    • Tunel GRE + EoIP na Cisco
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by