Odpowiednie opcje, których potrzebujesz:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
Skopiuj to do pliku konfiguracyjnego (albo /etc/youtube-dl.conf
lub ~/.config/youtube-dl/config
).
Korzystając z tej konfiguracji, pobrałem ten film i youtube-dl
napisałem następujące pliki:
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
Nie mogę tutaj opublikować mediainfo
wyniku, ponieważ przekracza on limit znaków, ale możesz to zobaczyć w github .
Chcę również pobrać wideo / audio w najwyższej możliwej jakości, bez utraty jakości.
youtube-dl
domyślnie pobiera filmy w najwyższej możliwej jakości, ale możesz wymusić takie zachowanie za pomocą --format bestvideo+bestaudio/best
.
Mimo że nie jest to YouTube, chciałem również pobrać niektóre z moich udem kursów, które kupiłem, aby móc je oglądać podczas długiej podróży.
Przeczytaj artykuł Czy mogę pobrać kurs na komputer? :
Domyślnie kompletnych kursów nie można pobrać z komputera. Robimy to z troski o piractwo.
Pamiętaj, że zawsze możesz zapisać kursy do przeglądania offline w aplikacji mobilnej Udemy . Aby uzyskać informacje na temat pobierania wykładów wideo na urządzenie mobilne z systemem iOS, kliknij tutaj . Aby uzyskać instrukcje dotyczące pobierania filmów do oglądania offline na urządzeniu z Androidem, kliknij tutaj .
Mam ffmpeg
zainstalowany, a słyszałem, że trzeba za to bezstratne pliki do pobrania z YouTube, ale nie jestem pewien, w jaki sposób połączyć ją youtube-dl
.
youtube-dl
używa avconv
domyślnie, ale --prefer-ffmpeg
pozwala używać ffmpeg
zamiast tego. W każdym razie ta opcja nie jest potrzebna do „ bezstratnego pobierania ”. W podanym przykładzie użyłem youtube-dl
tylko ffmpeg
do scalenia wszystkich pobranych formatów w jeden plik mkv.
youtube-dl
?youtube-dl [youtube-link]
?youtube-dl
nie byłby w stanie pobrać niektórych filmów, gdyby--youtube-skip-dash-manifest
nie było tej opcji. Właśnie wyedytowałem tę opcję, dziękuję za informację.Aby po prostu pobrać wideo, możesz użyć tego:
Aby wybrać jakość wideo, należy najpierw użyć opcji -F, aby wyświetlić listę dostępnych formatów.
A to jest wynik dla twojego wideo:
Oto kilka przydatnych opcji dla napisów:
I dla miniatur:
Więcej informacji na temat jakości wideo można znaleźć tutaj
źródło
youtube-dl
domyślnie korzysta z najlepszych dostępnych formatów audio i wideo. Jeśli chcesz zastąpić inne ustawienie w pliku konfiguracyjnym, możesz użyć-f bestvideo+bestaudio/best
(który jest taki sam jak domyślny) lub zignorować plik konfiguracyjny (--ignore-config
).youtube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
@leetbacoon zobacz odpowiedź na komentarz na samym dole. (niski przedstawiciel nadal płacze)
Uwaga: będę używać dłuższych nazw przełączników, aby uniknąć nieporozumień. Wiele używanych przełączników ma krótsze wersje. Zobacz Dokumenty: Opcje .
Uwaga: - dla wygody wizualnej
\
służy do osobnego wyświetlania przełączników; wszystko\
można pominąć; jeśli używasz,\
upewnij się, że po znaku nie ma spacji\
.Streszczenie: Polecenie ytdl, aby pobrać pojedynczy plik wideo o najwyższej dostępnej jakości obrazu i dźwięku. Zapisuje wideo we własnym katalogu (określonym przez Ciebie). Pobiera wszystkie dostępne metadane, zapisuje każdy w odpowiednich formatach plików i zapisuje w tym samym katalogu. Dodaje metadane wideo do pliku wyjściowego wideo.
Zamień na własne:
/archive/videos/TED_Archive/
w przełącznikach--download-archive
i--output
na wybraną ścieżkę katalogu.====
Uwaga: Załącz wszystkie argumenty
' '
dla parsowania bezpieczeństwa.Objaśnienie zalecanych przełączników:
--limit-rate '0.25M'
służy do ograniczenia dostępnej maksymalnej prędkości pobierania każdej instancji youtube-dl w B / s (bajtów na sekundę).Argumenty: dowolna dodatnia liczba całkowita z sufiksem wielkich liter.
Przyrostki jednostek: K dla Kilobajta; M dla megabajtów; Nie jest jasne, czy Gigabyte jest obsługiwany.
Dodawanie:
1. unikaj blokowania połączenia internetowego.
2. pomocny w zarządzaniu prędkościami pobierania wielu współbieżnych instancji ytdl.
Ommission:
1. zatyka internet; nie można przeglądać, opóźnia się odtwarzanie wideo na YouTube.
2. pobierze wideo tak szybko, jak to możliwe.
Uwaga: Możesz uruchomić wiele instancji youtube-dl jednocześnie.
--retries '5'
służy do automatycznego ponawiania pobierania wideo, jeśli się nie powiedzie. Przydatne podczas pobierania listy odtwarzania lub całego kanału (który jest, w kategoriach Youtube, także listą odtwarzania (tego konkretnego kanału)).Wartości: wybierz dowolną dodatnią liczbę całkowitą. Domyślnie jest
10
. Max jestinfinite
(wprowadź jako literał).--continue
Argumenty: brak
Dodawanie:
1. wymusi wznowienie pobierania częściowych plików
Uwaga: ytdl pobiera filmy w częściach; fragmenty są zachowywane, jeśli ytdl nieoczekiwanie zakończy działanie podczas pobierania.
Ommission:
1. Domyślnie ytdl wznowi pobieranie, jeśli to możliwe.
--no-overwrites
Argumenty: none
Ponadto: będzie nie zastępowanie istniejących plików metadanych z tymi samymi nazwami.
Ommission: zastąpi istniejące pliki metadanych o tych samych nazwach, ale nie plik wideo.
--call-home
używany do kontaktowania się z serwerem ytdl w celu debugowania.--write-info-json
Argumenty: brak
Format wyjściowy: json;
Treść informacji: liczba wyświetleń, polubienia, data przesłania, informacje o jakości wideo i audio itp. (Ale nie opis tekstowy wideo (opublikowany poniżej wideo przez przesyłającego (układ YouTube na 2018 r.)))
Dodawanie: zapisuje metadane wideo w osobnym
.info.json
pliku. Zapisane w tym samym folderze co plik wideo.Omisja: nie wpływa na to,
--add-metadata
które nadal będą zapisywać metadane wideo do pliku wyjściowego wideo.--write-description
Argumenty: brak
Format wyjściowy: zwykły tekst;
Dodanie: zapisuje tekst opublikowany przez program do przesyłania filmów w sekcji opisu filmu (poniżej wideo (układ YouTube na 2018 r.)) W osobnym
Write .description
pliku. Zapisane w tym samym folderze co plik wideo.--write-thumbnail
zapisujemaxresdefault.jpg
do.jpg
pliku miniaturę o najwyższej dostępnej rozdzielczości (nazywanej przez youtube) . Zmieniono nazwę zgodnie z szablonem określonym za pomocą--output
. Zapisane w tym samym katalogu co plik wideo.Argumenty: brak
Format wyjściowy: tylko JPEG;
Uwaga: służy
youtube-dl --list-thumbnails '<video_url>'
do sprawdzania dostępnych miniaturek określonego filmu (nie działa w przypadku linków do list odtwarzania); Dawny.:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--write-annotations
zapisuje adnotacje wideo do.annotations.xml
pliku. Zmieniono nazwę zgodnie z szablonem określonym za pomocą--output
. Zapisane w tym samym katalogu co plik wideo.Argumenty: brak
Format wyjściowy: .xml;
--all-subs
zapisuje wszystkie niestandardowe utworzone dostępne napisy do filmu do swoich plików (np .:subtitles.en.vtt
,subtitles.fr.vtt
,subtitles.es.vtt
)argumenty: brak
Format wyjściowy: domyślne
.vtt
; może określić inne formaty za pomocą--sub-format
komunikatów o błędach: Jeśli nie ma dostępnych napisów, komunikat OSTRZEŻENIE zostanie wydrukowany na standardowe wyjście - format:
WARNING: video doesn't have subtitles
Przydatne polecenie:
Uwaga: służy
youtube-dl --list-subs '<video_url>'
do sprawdzania dostępnych miniaturek określonego filmu (nie działa w przypadku linków do list odtwarzania);Dawny.:
youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--convert-subs 'srt'
Argumenty: Łańcuch: rozszerzenie rozszerzenia ass, srt lub najlepszy
Format wyjściowy: Domyślnie .vtt; lub zgodnie ze specyfikacją
Dodawanie: zapisuje napisy do określonego formatu pliku (np .:)
.srt
. Zapisane w tym samym folderze co plik wideo.Ommission: napisy będą zapisywane jako
.vtt
komunikaty o błędach: Jeśli nie ma dostępnych napisów, komunikat INFO zostanie wydrukowany na standardowe wyjście - format:
[ffmpeg] There aren't any subtitles to convert
Uwaga: konwersja zostanie wykonana jako krok po przetwarzaniu
.vtt
pliku po pobraniu. Jeśli wykonanie ytdl zostanie nieoczekiwanie zakończone, niektóre pliki z napisami mogą nie zostać przekonwertowane (w tym przypadku ponownie uruchom polecenie).--add-metadata
Argumenty: brak
Zachowanie: zapisuje metadane w pliku wyjściowym wideo.
Uwaga: nie wymaga
.info.json
wygenerowania przez--write-info-json
--embed-subs
Argumenty: brak
Zachowanie:
1. zapisuje napisy do pliku wyjściowego wideo;
2. tylko do MP4, MKV wideo WebM i
komunikatów o błędach: Jeśli nie istnieją żadne napisy dostępne message INFO będą drukowane na standardowe wyjście - format:
[ffmpeg] There aren't any subtitles to embed
Uwaga: nie wymaga
.vtt
generowane przez--write-sub
,--write-auto-sub
lub--all-sub
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
Zachowanie: służy do utworzenia pliku tekstowego zawierającego łącza do wcześniej pobranych filmów. Umożliwia pomijanie tych filmów podczas pobierania całego kanału. Nie jest konieczne przy pobieraniu tylko pojedynczych filmów.
Argumenty: Ciąg: złożony ze ścieżki do archiwum wideo, katalog nazwany po kanale. Nazwa pliku składa się z nazwy kanału z
.ytdlarchive
rozszerzeniem pliku. (może być również .txt; ale unikalny format pozwala na łatwe różnicowanie)Format wyjściowy: zwykły tekst; jeden identyfikator wideo w wierszu
Dodawanie:
1. ytdl odczytuje ten plik, ignoruje i pomija wszystkie filmy z ich identyfikatorem wideo, nawet jeśli nie zostały jeszcze pobrane.
2. automatycznie dodaje identyfikator wideo ostatnio pobranego wideo do tego pliku
Ommission: jeśli plik wideo i pliki metadanych istnieją, ytdl pobierze je ponownie.
--format ''
Argumenty: Zalecany ciąg:
bestvideo+bestaudio/best
aby zapewnić najwyższą kombinację jakości obrazu i dźwięku.Dodatek: pełna kontrola jakości wideo i jakości dźwięku oraz ich kombinacji, a także jakości zastępczych
Omisja: Domyślnie
youtube-dl will guess it for you by default
- DokumentyUwaga: Zobacz Dokumenty: Przykłady wyboru formatu
--merge-output-format '<video_format>'
Argumenty: format pliku wideo. (np .: mp4, mkv, 3gp itp.)
Dodawanie: można określić format pliku wideo
Ommission: Domyślnie
youtube-dl will guess it for you by default
- DokumentyUwaga: Patrz Dokumenty: Wybór formatu
Przydatne polecenie:
Uwaga: Służy
youtube-dl --list-formats '<video_url>'
do sprawdzania dostępnych jakości wideo i audio oraz formatów określonego filmu (nie działa w przypadku linków do list odtwarzania);Dawny.:
youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
Argumenty:
1. format pliku wideo. (np .: mp4, mkv, 3gp itp.);
2. Zalecane:
%(upload_date)s_%(id)s_%(title)s.%(ext)s
Dodawanie: wpływa na konwencję nazewnictwa plików dla plików wideo i wszystkich plików metadanych
Ommission: Domyślnie tytuł wideo będzie nazwą pliku. Domyślny szablon:
%(id)s.%(ext)s
wyświetli np .:testvideo.mkv
Uwaga: Nie zapomnij o
%
prefiksie is
sufiksie (istnieją też inne wystarczające). Odległość_
między elementami szablonu jest tylko separatorem i może być dowolnym innym znakiem. np .:%(upload_date)s-%(id)s
Uwaga: Patrz Dokumenty: Szablon wyjściowy
'<video_url>'
Argumenty: Łańcuch: adres URL konkretnego filmu
Komunikat o błędzie:
1. Jeśli adres URL filmu nie został przesłany, ytdl nie uruchomi się i nie wyświetli pomocy.
2. Jeśli nieprawidłowy adres URL przesłanego komunikatu BŁĄD zostanie wydrukowany na standardowe wyjście - format:
ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
Zalecenia dotyczące przechowywania:
stwórz
misc
katalog w swoim archiwum wideo i przechowuj tam wszystkie pojedyncze filmy.gdy pobierzesz jeden lub więcej filmów z kanału, stwórz dedykowany katalog dla tego kanału. W takim przypadku nazwa kanału to
TED Archive
i nazwa kataloguTED_Archive
. (Zapobiegawczo podstawiam wszystkie znaki spacji znakami podkreślenia, aby ułatwić nawigację w katalogu i operacje we / wy pliku podczas korzystania ze skryptów bash (lub python)).W odpowiedzi na Twój komentarz @leetbacoon
Z Dokumentów
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
Myślę, że kiedy wybierzesz tylko
best
i określisz format wyjściowy, YouTube wyśle format, który uważa za najlepszą kombinację wideo + audio dla tego formatu. Może to podlegać niektórym wewnętrznym decyzjom dotyczącym równoważenia YouTube (spekulacje).W moim doświadczeniu użytkowania musiałem konkretnie określić,
bestvideo+bestaudio
aby uzyskać NAJWYŻSZĄ dostępną jakość wideo i audio, a następnie połączyć je w kontenerze .mkv.Używam
/best
jako argumentu zastępczego, dla pewności.źródło