Przejdź do treści
yt-dlp

Pobieranie napisów z YouTube — generator poleceń yt-dlp

Złóż polecenie yt-dlp, które zapisuje napisy jako .srt bez pobierania filmu.

Opcjonalne. Zostaw puste i polecenie skończy się słowem URL, które wpiszesz sam.

Twoje polecenie

yt-dlp --write-subs --convert-subs srt --sub-langs en --write-auto-subs --no-playlist -s 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
Podstawy

Tylko dźwięk wyciąga ścieżkę audio i porzuca obraz.

Wideo i jakość

Ogranicza wysokość. yt-dlp i tak wybierze najlepszą ścieżkę na tym poziomie lub niżej.

Typ pliku, w którym scalane są osobne ścieżki obrazu i dźwięku.

Opcje zaawansowane (3)

Zastępuje listę jakości. Dla tych, którzy znają już składnię formatów.

Przepakowuje ścieżki bez przekodowania. Szybko i bez straty.

Przekodowuje obraz. Wolno i ze stratą — tylko gdy remux nie wystarcza.

Dźwięk

Plik, na który konwertowany jest dźwięk.

VBR daje najlepszy stosunek rozmiaru do jakości; stały bitrate jest bardziej przewidywalny.

Napisy

Wtopienie umieszcza je w pliku wideo; zapis tworzy obok osobny plik .srt.

Rozdzielone przecinkami. Wpisz all, żeby wziąć wszystkie dostępne języki.

Playlisty i kanały

Co zrobić, gdy adres należy zarazem do filmu i do playlisty.

Działają zakresy i listy, na przykład 1-10,15 albo -5::2, żeby brać co drugą pozycję od końca.

Opcje zaawansowane (1)

Zapisuje, co już pobrano, więc kolejne uruchomienie to pomija. Tak utrzymuje się kanał w zgodzie ze źródłem.

Fragmenty i rozdziały
Opcje zaawansowane (2)

Zakres czasu w postaci *00:01:30-00:03:00 albo nazwa rozdziału. Gwiazdka na początku oznacza, że to znacznik czasu.

Metadane i okładka
Opcje zaawansowane (3)
SponsorBlock

Wycina z pliku fragmenty oznaczone przez społeczność, na podstawie danych SponsorBlock.

Opcje zaawansowane (1)

Zostawia fragmenty, ale je oznacza, żebyś sam je przeskakiwał.

Pliki i foldery

Nazwy pól wpisuje się w %(...)s. Ukośniki tworzą foldery.

Opcje zaawansowane (4)

Gdzie zapisywać pliki. W połączeniu ze wzorem powyżej daje podfoldery.

Maksymalna długość nazwy pliku w znakach.

Filtry
Opcje zaawansowane (5)

RRRRMMDD albo data względna, na przykład now-1month.

RRRRMMDD albo data względna.

Pomija wszystko mniejsze. Przyjmuje 5M, 500K i podobne.

Pomija wszystko większe.

Ile plików pobrać, zanim proces się zakończy.

Sieć

Na przykład 2M albo 500K. Przydatne, gdy resztę pasma potrzebujesz na coś innego.

Opcje zaawansowane (5)

Przyspiesza strumienie dzielone na fragmenty. Cztery to sensowny początek.

Ile razy powtarzać nieudany fragment. Można wpisać infinite.

Adres proxy HTTP, HTTPS albo SOCKS.

Sprawia, że żądania wyglądają jak z prawdziwej przeglądarki. To zwykłe lekarstwo na nagłe 403.

Logowanie i cookies

Czyta wprost twoją zalogowaną sesję. Potrzebne przy treściach prywatnych, z ograniczeniem wieku albo tylko dla członków.

Opcje zaawansowane (1)

Plik cookies.txt w formacie Netscape wyeksportowany z przeglądarki.

Transmisje na żywo
Opcje zaawansowane (2)

Odpytuje, dopóki zaplanowana transmisja się nie zacznie. MIN-MAX to sekundy między sprawdzeniami.

Obejścia
Opcje zaawansowane (3)

Przestarzałe na rzecz --add-headers. Zostało, bo wiele starszych poradników nadal tego używa.

Przestarzałe na rzecz --add-headers.

Opcje właściwe danej stronie, na przykład youtube:player_client=web.

Wyjście i diagnostyka
Opcje zaawansowane (2)
Wyczyść

Napisy bez filmu

Tryb symulacji robi wszystko poza zapisaniem pliku wideo, więc napisy zostają, a pobieranie odpada. Konwersja na SRT wymaga ffmpeg.

Jeśli nic się nie pojawi, film najprawdopodobniej nie ma napisów zrobionych przez człowieka — automatyczne to osobny przełącznik, a bez jego włączenia yt-dlp niczego nie znajduje i też o tym nie mówi.

Tryb symulacji to dźwignia utrzymująca tę stronę: bez niego yt-dlp pobiera cały film i jedynie dodatkowo zapisuje napisy, co przy pliku długości filmu to wielka przesłka dla ścieżki tekstu. Z nim przebieg pobiera metadane, zapisuje pliki napisów i nigdy nie dotyka wideo. Cena jest taka, że tryb symulacji pomija też zapis miniatury i opisu, do których można być przyzwyczajony — to artefakty przebiegu wideo, nie napisów.

Wybór języka to tam, gdzie pobieranie napisów robi się wymagające. --sub-langs en bierze dokładnie ścieżkę otagowaną „en"; en-orig to YouTubeowa nazwa automatycznej, a en.* jako wzorzec łapie obie i odmiany regionalne. Wiele języków przyjmuje listę rozdzielaną przecinkami. Jeśli film ma dla tego samego języka ścieżkę ludzką i automatyczną, to dwie osobne pozycje, i pobranie obu jest legalnym wynikiem, nie błędem.

Formaty mają znaczenie, gdy plik napisów trafi do edytora: SRT to bezpieczna wymiana, VTT niesie stylizację, którą pokazuje odtwarzacz w sieci, a własne formaty YouTubea JSON3/_SRV są przeznaczone dla maszyn. Przełącznik konwersji na SRT ogarnia zwykły przypadek, wymaga ffmpeg i celowo gubi stylizację — edytory chcą tekstu, nie znaczników. Jeśli wynik wygląda na pusty, sprawdź, czy plik istnieje, zanim uznasz, że konwersja zawiodła: SRT o zerowej wielkości znaczy, że sama ścieżka była pusta.

Automatyczne napisy zasługują na przestrogę: to transkrypcja maszynowa, ze wszystkim, co z tego wynika — złe homofony, brak interpunkcji, poszarpane nazwy. Dla filmu w języku, który czytasz, są indeksem wyszukiwania; do wszystkiego, co będziesz cytować, ścieżka ludzka (gdy istnieje) jest tą wartą zachowania. Transmisje dostają automatyczne napisy na żywo, zapisywane dopiero po zakończeniu transmisji — opcje nagrywania transmisji na tej stronie są dla obrazu, a napisy skończonej transmisji pobierają się zwykłymi opcjami napisów.

Częste pytania

Jak pobrać napisy bez filmu?
Wybierz opcję .srt i włącz symulację: pomija zapis pliku wideo, ale napisy nadal zapisuje.
Dlaczego nie pojawił się żaden plik z napisami?
Film prawdopodobnie nie ma napisów zrobionych przez człowieka. Włącz automatyczne, żeby dostać te maszynowe.
Jak wybrać języki napisów?
Rozdziel przecinkami, na przykład en,pl. all dla wszystkich dostępnych albo wzorzec w rodzaju en.* dla wszystkich odmian angielskiego.
Czy mogę dostać SRT zamiast VTT?
Tak — opcja .srt je konwertuje, a do tego potrzebny jest ffmpeg.