diff --git a/files/0001-Replace-youtube-dl-with-yt-dlp.patch b/files/0001-Replace-youtube-dl-with-yt-dlp.patch new file mode 100644 --- /dev/null +++ b/files/0001-Replace-youtube-dl-with-yt-dlp.patch @@ -0,0 +1,1952 @@ +From 1a3032e466287e2c2a84a09ebbbcb82db3e9b454 Mon Sep 17 00:00:00 2001 +From: Thomas Staudinger +Date: Fri, 5 Nov 2021 23:40:56 +0100 +Subject: [PATCH] Replace youtube-dl with yt-dlp + +--- + README.md | 2 +- + po/ca.po | 14 +++--- + po/cs.po | 14 +++--- + po/cs_CZ.po | 14 +++--- + po/da.po | 14 +++--- + po/de.po | 16 +++--- + po/el.po | 14 +++--- + po/es.po | 14 +++--- + po/es_ES.po | 14 +++--- + po/es_MX.po | 14 +++--- + po/eu.po | 14 +++--- + po/fa_IR.po | 14 +++--- + po/fi.po | 14 +++--- + po/fr.po | 18 +++---- + po/gl.po | 14 +++--- + po/he.po | 14 +++--- + po/hu.po | 14 +++--- + po/id_ID.po | 14 +++--- + po/it.po | 16 +++--- + po/kk.po | 14 +++--- + po/ko_KR.po | 14 +++--- + po/messages.pot | 14 +++--- + po/nb.po | 14 +++--- + po/nl.po | 22 ++++----- + po/nn.po | 22 ++++----- + po/pl.po | 18 +++---- + po/pt.po | 14 +++--- + po/pt_BR.po | 16 +++--- + po/ro.po | 14 +++--- + po/ru.po | 16 +++--- + po/sk.po | 18 +++---- + po/sv.po | 14 +++--- + po/tr.po | 18 +++---- + po/uk.po | 14 +++--- + po/zh_CN.po | 20 ++++---- + setup.cfg | 2 +- + share/gpodder/extensions/youtube-dl.py | 68 +++++++++++++------------- + src/gpodder/download.py | 2 +- + src/gpodder/model.py | 4 +- + src/gpodder/youtube.py | 32 ++++++------ + tools/mac-osx/release_on_mac.sh | 4 +- + tools/requirements.txt | 2 +- + tools/win_installer/_base.sh | 2 +- + 43 files changed, 320 insertions(+), 320 deletions(-) + +diff --git a/README.md b/README.md +index 99cd2b8c..fce38453 100644 +--- a/README.md ++++ b/README.md +@@ -55,7 +55,7 @@ PyPI. With this, you get a self-contained gPodder CLI codebase. + - Clickable links in GTK UI show notes: html5lib + - HTML show notes: WebKit2 gobject bindings + (webkit2gtk, webkitgtk4 or gir1.2-webkit2-4.0 packages). +-- Better Youtube support (> 15 entries in feeds, download audio-only): youtube_dl ++- Better Youtube support (> 15 entries in feeds, download audio-only): yt_dlp + + + ### Build Dependencies +diff --git a/po/ca.po b/po/ca.po +index 134d83f2..cbd3abf6 100644 +--- a/po/ca.po ++++ b/po/ca.po +@@ -163,7 +163,7 @@ msgstr "" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "" + +@@ -1890,22 +1890,22 @@ msgstr "" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "" + +diff --git a/po/cs.po b/po/cs.po +index 7f081903..d25a368a 100644 +--- a/po/cs.po ++++ b/po/cs.po +@@ -179,7 +179,7 @@ msgstr "" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Popis není dostupný" + +@@ -2107,24 +2107,24 @@ msgstr "Konverze souboru" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Stáhnout do:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/cs_CZ.po b/po/cs_CZ.po +index 3484ab08..8bb84f08 100644 +--- a/po/cs_CZ.po ++++ b/po/cs_CZ.po +@@ -179,7 +179,7 @@ msgstr "Python modul %(module)s nebyl nalezen" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Popis není k dispozici" + +@@ -2002,24 +2002,24 @@ msgstr "Při převodu došlo k chybě" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Překódovat .ogg soubory. mp3 pomocí ffmpeg" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Stáhnout do:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/da.po b/po/da.po +index 71343abf..8d124f64 100644 +--- a/po/da.po ++++ b/po/da.po +@@ -180,7 +180,7 @@ msgstr "Python-modulet \"%s\" er ikke installeret" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Ingen tilgængelig beskrivelse" + +@@ -1992,24 +1992,24 @@ msgstr "Konverterer fil" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Download til:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/de.po b/po/de.po +index ffd4bcc2..0f76ef48 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -169,7 +169,7 @@ msgstr "Python-Modul nicht gefunden: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Keine Beschreibung verfügbar" + +@@ -1959,24 +1959,24 @@ msgstr "Video-Dateien umwandeln" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Video-Dateien in avi/mp4/m4v umwandeln" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" +-msgstr "Verwaltung von Youtube Abos mit youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" ++msgstr "Verwaltung von Youtube Abos mit yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download with Youtube-DL" + msgid "Old Youtube-DL" + msgstr "Download mit Youtube Link" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Download mit Youtube Link" + +diff --git a/po/el.po b/po/el.po +index cf9f05a4..ebcc1571 100644 +--- a/po/el.po ++++ b/po/el.po +@@ -179,7 +179,7 @@ msgstr "Το python module \"%s\" δεν είναι εγκατεστημένο" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Δεν υπάρχει διαθέσιμη περιγραφή" + +@@ -1985,24 +1985,24 @@ msgstr "Η μετατροπή απέτυχε" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Λήψη στο:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/es.po b/po/es.po +index edbb7bb4..965d807c 100644 +--- a/po/es.po ++++ b/po/es.po +@@ -180,7 +180,7 @@ msgstr "Módulo python \"%s\" no instalado" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "No hay una descripción disponible" + +@@ -1998,24 +1998,24 @@ msgstr "Convirtiendo archivo" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Descargar a:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/es_ES.po b/po/es_ES.po +index 7ddac450..4a9ba6a0 100644 +--- a/po/es_ES.po ++++ b/po/es_ES.po +@@ -177,7 +177,7 @@ msgstr "Módulo Python no encontrado: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Sin descripción disponible" + +@@ -1969,24 +1969,24 @@ msgstr "Conversión fallida" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Convertir archivos .m4a a .mp3 o .ogg usando ffmpeg" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Descargar a:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/es_MX.po b/po/es_MX.po +index bc904022..866ee5c5 100644 +--- a/po/es_MX.po ++++ b/po/es_MX.po +@@ -175,7 +175,7 @@ msgstr "El siguiente módulo de Python no fue encontrado: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "No hay descripción disponible" + +@@ -1974,24 +1974,24 @@ msgstr "Convertir archivos de video" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Convertir archivos de video a avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Descargar a:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/eu.po b/po/eu.po +index d7dfc103..fc238df5 100644 +--- a/po/eu.po ++++ b/po/eu.po +@@ -177,7 +177,7 @@ msgstr "Ez da Python modulua aurkitu: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Ez dago deskribapenik eskuragarri" + +@@ -1971,24 +1971,24 @@ msgstr "Bihurketak huts egin du" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Transkodetu .m4a fitxategiak .mp3 edo .ogg-era ffmpeg erabiliz" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Deskargatu hona:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/fa_IR.po b/po/fa_IR.po +index 4e5d5b78..f2f2a113 100644 +--- a/po/fa_IR.po ++++ b/po/fa_IR.po +@@ -167,7 +167,7 @@ msgstr "" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "هیچ توضیحی مهیا نیست" + +@@ -1891,22 +1891,22 @@ msgstr "" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "" + +diff --git a/po/fi.po b/po/fi.po +index a2934a50..7a98f63b 100644 +--- a/po/fi.po ++++ b/po/fi.po +@@ -177,7 +177,7 @@ msgstr "Python-moduulia ”%s” ei ole asennettu" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Kuvausta ei ole saatavilla" + +@@ -1993,24 +1993,24 @@ msgstr "Muunnetaan tiedostoa" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Lataa kohteeseen:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/fr.po b/po/fr.po +index 75a13d45..d2a6314a 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -166,7 +166,7 @@ msgstr "Module python indisponible : %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Aucune description disponible" + +@@ -1969,25 +1969,25 @@ msgstr "Convertir les vidéos" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Convertit les vidéos en avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Utilise youtube-dl (pip install youtube_dl) pour gérer les podcasts Youtube" ++"Utilise yt-dlp (pip install yt_dlp) pour gérer les podcasts Youtube" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" +-"Votre version de youtube-dl %(have_version)s ne fonctionne pas bien. Merci " ++"Votre version de yt-dlp %(have_version)s ne fonctionne pas bien. Merci " + "de la mettre à jour en %(want_version)s ou plus récent." + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "Vieille version de Youtube-DL" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Télécharger avec Youtube-DL" + +diff --git a/po/gl.po b/po/gl.po +index 478ad151..64613189 100644 +--- a/po/gl.po ++++ b/po/gl.po +@@ -179,7 +179,7 @@ msgstr "Non se encontrou o módulo de Python: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Sen descrición dispoñíbel" + +@@ -1978,24 +1978,24 @@ msgstr "Houbo un fallo na conversión" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Transcodificar os ficheiros .m4a a .mp3 ou .ogg usando o ffmpeg" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Descargar a:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/he.po b/po/he.po +index f1ca0ba8..1cf99cb8 100644 +--- a/po/he.po ++++ b/po/he.po +@@ -180,7 +180,7 @@ msgstr "מודול פייתון לא נמצא: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "אין תיאור זמין" + +@@ -1970,24 +1970,24 @@ msgstr "ההמרה נכשלה" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "המר קובצי m4a ל־mp3 או ל־ogg באמצעות ffmpeg" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "הורד אל:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/hu.po b/po/hu.po +index 1443cbc8..ed82d123 100644 +--- a/po/hu.po ++++ b/po/hu.po +@@ -167,7 +167,7 @@ msgstr "A Python modul nem található: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Nem áll rendelkezésre leírás" + +@@ -1943,24 +1943,24 @@ msgstr "Videofájlok átalakítása" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Videofájlok átalakítása avi/mp4/m4v formátumba" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Letöltés ide:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/id_ID.po b/po/id_ID.po +index a68afb4b..0b892877 100644 +--- a/po/id_ID.po ++++ b/po/id_ID.po +@@ -163,7 +163,7 @@ msgstr "" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "" + +@@ -1867,22 +1867,22 @@ msgstr "" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "" + +diff --git a/po/it.po b/po/it.po +index 7e681a38..d97281df 100644 +--- a/po/it.po ++++ b/po/it.po +@@ -170,7 +170,7 @@ msgstr "Modulo Python non installato: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Nessuna descrizione disponibile" + +@@ -1952,25 +1952,25 @@ msgstr "Converti file video" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Codifica in file video avi/mp4m4v " + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Gestisci le tue iscrizioni Youtube usando youtube-dl (pip install youtube_dl)" ++"Gestisci le tue iscrizioni Youtube usando yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download with Youtube-DL" + msgid "Old Youtube-DL" + msgstr "Scarica con Youtube-DL" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Scarica con Youtube-DL" + +diff --git a/po/kk.po b/po/kk.po +index 49bf6963..e142fb95 100644 +--- a/po/kk.po ++++ b/po/kk.po +@@ -178,7 +178,7 @@ msgstr "Python модулі табылмады: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Анықтамасы жоқ" + +@@ -1952,24 +1952,24 @@ msgstr "Түрлендіру сәтсіз аяқталды" + msgid "Transcode video files to avi/mp4/m4v" + msgstr ".m4a файлдарын ffmpeg көмегімен .mp3 не .ogg пішімдеріне түрлендіру" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Сақталатын орны:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/ko_KR.po b/po/ko_KR.po +index 71150188..6e8bc99f 100644 +--- a/po/ko_KR.po ++++ b/po/ko_KR.po +@@ -168,7 +168,7 @@ msgstr "파이썬 모듈을 찾지 못했습니다: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "사용가능한 설명이 없습니다" + +@@ -1923,24 +1923,24 @@ msgstr "비디오 파일 변환" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "비디오 파일을 avi/mp4/m4v로 변환" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "다운로드 장소:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/messages.pot b/po/messages.pot +index 2564488b..d951a234 100644 +--- a/po/messages.pot ++++ b/po/messages.pot +@@ -163,7 +163,7 @@ msgstr "" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "" + +@@ -1890,22 +1890,22 @@ msgstr "" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "" + +diff --git a/po/nb.po b/po/nb.po +index 96148387..7850eecc 100644 +--- a/po/nb.po ++++ b/po/nb.po +@@ -181,7 +181,7 @@ msgstr "Python modul «%s» er ikke installert" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Ingen beskrivelse tilgjengelig" + +@@ -1993,24 +1993,24 @@ msgstr "Konverterer fil" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Last ned til:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/nl.po b/po/nl.po +index 7bfe760e..091fee61 100644 +--- a/po/nl.po ++++ b/po/nl.po +@@ -168,7 +168,7 @@ msgstr "Python-module niet aangetroffen: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Geen omschrijving beschikbaar" + +@@ -1953,26 +1953,26 @@ msgstr "Videobestanden converteren" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Videobestanden transcoderen naar avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" +-msgstr "YouTube-abonnementen beheren met youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" ++msgstr "YouTube-abonnementen beheren met yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" +-"Je versie van youtube-dl %(have_version)s bevat bekende problemen - werk " ++"Je versie van yt-dlp %(have_version)s bevat bekende problemen - werk " + "deze bij naar %(want_version)s of nieuwer." + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" +-msgstr "Oude youtube-dl" ++msgstr "Oude yt-dlp" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" +-msgstr "Downloaden met youtube-dl" ++msgstr "Downloaden met yt-dlp" + + #: share/gpodder/ui/gtk/gpodder.ui.h:3 + #: share/gpodder/ui/gtk/gpodderpreferences.ui.h:1 +diff --git a/po/nn.po b/po/nn.po +index 877c1ad1..dc391dfd 100644 +--- a/po/nn.po ++++ b/po/nn.po +@@ -167,7 +167,7 @@ msgstr "Fann ikkje Python-modul: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Inga skildring tilgjengeleg" + +@@ -1957,26 +1957,26 @@ msgstr "Gjer om videofiler" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Transkod videofiler til AVI/MP4/M4V" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" +-msgstr "Handsam YouTube-abonnement med youtube-dl («pip install youtube_dl»)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" ++msgstr "Handsam YouTube-abonnement med yt-dlp («pip install yt_dlp»)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" +-"Versjonen av youtube-dl som du har, versjon %(have_version)s, har fleire " ++"Versjonen av yt-dlp som du har, versjon %(have_version)s, har fleire " + "kjende feil. Oppgrader til versjon %(want_version)s eller nyare." + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" +-msgstr "Gammal youtube-dl" ++msgstr "Gammal yt-dlp" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" +-msgstr "Last ned med youtube-dl" ++msgstr "Last ned med yt-dlp" + + #: share/gpodder/ui/gtk/gpodder.ui.h:3 + #: share/gpodder/ui/gtk/gpodderpreferences.ui.h:1 +diff --git a/po/pl.po b/po/pl.po +index 496dac14..65e9abfd 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -169,7 +169,7 @@ msgstr "Nie znaleziono modułu Pythona: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Opis niedostępny" + +@@ -1969,26 +1969,26 @@ msgstr "Konwertuj pliki wideo" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Transkoduj pliki wideo do avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Zarządzaj subskrypcjami na YouTube przy pomocy youtube-dl (pip install " +-"youtube_dl)" ++"Zarządzaj subskrypcjami na YouTube przy pomocy yt-dlp (pip install " ++"yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Pobieraj do:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/pt.po b/po/pt.po +index f46a0714..957ee67a 100644 +--- a/po/pt.po ++++ b/po/pt.po +@@ -177,7 +177,7 @@ msgstr "Módulo python não encontrado: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Sem descrição" + +@@ -1980,24 +1980,24 @@ msgstr "Falha na conversão" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Converter ficheiros ogg para mp3 com o ffmpeg" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Transferir para:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/pt_BR.po b/po/pt_BR.po +index 4186c007..92925ff2 100644 +--- a/po/pt_BR.po ++++ b/po/pt_BR.po +@@ -180,7 +180,7 @@ msgstr "Módulo python não foi encontrado: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Descrição não disponível" + +@@ -1984,25 +1984,25 @@ msgstr "Conversão falhou" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Transcodificar arquivos de vídeos para avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Gerenciar inscrições do Youtube com o youtube-dl (pip install youtube_dl)" ++"Gerenciar inscrições do Youtube com o yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Baixar para:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/ro.po b/po/ro.po +index c1015756..82a608b1 100644 +--- a/po/ro.po ++++ b/po/ro.po +@@ -177,7 +177,7 @@ msgstr "Modulul Python \"%s\" nu este instalat" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Nu există descriere" + +@@ -2021,24 +2021,24 @@ msgstr "Eroare de conversie a fișierului." + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Descarcă pe:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/ru.po b/po/ru.po +index 60ea0a42..0f6acad6 100644 +--- a/po/ru.po ++++ b/po/ru.po +@@ -165,7 +165,7 @@ msgstr "Модуль Python не найден: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Описание недоступно" + +@@ -1959,23 +1959,23 @@ msgstr "Конвертировать видео файлы" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Перекодировать видео файлы в avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Управление подписками Youtube с помощью youtube-dl (pip install youtube_dl)" ++"Управление подписками Youtube с помощью yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "Старый Youtube-DL" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Скачать с Youtube-DL" + +diff --git a/po/sk.po b/po/sk.po +index 43d19c70..25fba935 100644 +--- a/po/sk.po ++++ b/po/sk.po +@@ -163,7 +163,7 @@ msgstr "Pythonový modul %(module)s nebol nájdený" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Popis nie je k dispozícii" + +@@ -1954,25 +1954,25 @@ msgstr "Previesť videosúbory" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Prekódovať videosúbory na avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Spravovať odbery na Youtube pomocou youtube-dl (pip install youtube_dl)" ++"Spravovať odbery na Youtube pomocou yt-dlp (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" +-"Vaše youtube-dl verzie %(have_version)s má známe problémy, aktualizujte " ++"Vaše yt-dlp verzie %(have_version)s má známe problémy, aktualizujte " + "prosím na verziu %(want_version)s alebo novšiu." + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "Staré Youtube-DL" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Stiahnuť s Youtube-DL" + +diff --git a/po/sv.po b/po/sv.po +index fb56eb70..45ea7e2a 100644 +--- a/po/sv.po ++++ b/po/sv.po +@@ -182,7 +182,7 @@ msgstr "Python modul \"%s\" ej installerad" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Ingen beskrivning tillgänglig" + +@@ -2004,24 +2004,24 @@ msgstr "Konverterar fil" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Ladda ned till:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/tr.po b/po/tr.po +index 9581d9b7..f7651a3e 100644 +--- a/po/tr.po ++++ b/po/tr.po +@@ -164,7 +164,7 @@ msgstr "Python modülü bulunamadı: %(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Açıklama yok" + +@@ -1938,25 +1938,25 @@ msgstr "Video dosyalarını dönüştürün" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "Video dosyalarını avi/mp4/m4v'ye dönüştürün" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" +-"Youtube aboneliklerini youtube-dl kullanarak yönetin (pip install youtube_dl)" ++"Youtube aboneliklerini yt-dlp kullanarak yönetin (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" +-"Sizin youtube-dl %(have_version)s sürümünüzde bilinen sorunlar var, lütfen " ++"Sizin yt-dlp %(have_version)s sürümünüzde bilinen sorunlar var, lütfen " + "%(want_version)s veya daha yenisine yükseltin." + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + msgid "Old Youtube-DL" + msgstr "Eski Youtube-DL" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" + msgstr "Youtube-DL ile indirin" + +diff --git a/po/uk.po b/po/uk.po +index 681a045d..2236e854 100644 +--- a/po/uk.po ++++ b/po/uk.po +@@ -178,7 +178,7 @@ msgstr "Модуль Python \"%s\" не встановлено" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "Опис відсутній" + +@@ -2014,24 +2014,24 @@ msgstr "один файл" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download to:" + msgid "Old Youtube-DL" + msgstr "Завантажувати до:" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + #, fuzzy + #| msgid "Download to:" + msgid "Download with Youtube-DL" +diff --git a/po/zh_CN.po b/po/zh_CN.po +index c1a5177a..59abf4b2 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -169,7 +169,7 @@ msgstr "Python 模块未找到:%(module)s" + + #: src/gpodder/model.py:496 src/gpodder/youtube.py:512 + #: src/gpodder/plugins/soundcloud.py:170 +-#: share/gpodder/extensions/youtube-dl.py:215 ++#: share/gpodder/extensions/yt-dlp.py:215 + msgid "No description available" + msgstr "没有可用介绍" + +@@ -1893,26 +1893,26 @@ msgstr "转换视频文件" + msgid "Transcode video files to avi/mp4/m4v" + msgstr "转换视频格式到 avi/mp4/m4v" + +-#: share/gpodder/extensions/youtube-dl.py:27 +-msgid "Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)" +-msgstr "使用 youtube-dl 管理 YouTube 订阅 (pip install youtube_dl)" ++#: share/gpodder/extensions/yt-dlp.py:27 ++msgid "Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)" ++msgstr "使用 yt-dlp 管理 YouTube 订阅 (pip install yt_dlp)" + +-#: share/gpodder/extensions/youtube-dl.py:33 ++#: share/gpodder/extensions/yt-dlp.py:33 + #, python-format + msgid "" +-"Your version of youtube-dl %(have_version)s has known issues, please upgrade " ++"Your version of yt-dlp %(have_version)s has known issues, please upgrade " + "to %(want_version)s or newer." + msgstr "" + +-#: share/gpodder/extensions/youtube-dl.py:485 ++#: share/gpodder/extensions/yt-dlp.py:485 + #, fuzzy + #| msgid "Download with Youtube-DL" + msgid "Old Youtube-DL" +-msgstr "使用 youtube-dl 下载" ++msgstr "使用 yt-dlp 下载" + +-#: share/gpodder/extensions/youtube-dl.py:490 ++#: share/gpodder/extensions/yt-dlp.py:490 + msgid "Download with Youtube-DL" +-msgstr "使用 youtube-dl 下载" ++msgstr "使用 yt-dlp 下载" + + #: share/gpodder/ui/gtk/gpodder.ui.h:3 + #: share/gpodder/ui/gtk/gpodderpreferences.ui.h:1 +diff --git a/setup.cfg b/setup.cfg +index c1af1bd4..b7bc6068 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -5,5 +5,5 @@ select = W1, W2, W3, E11, E121, E122, E123, E124, E125, E127, E129, E13, E2, E3, + max-line-length = 142 + + [isort] +-known_third_party=dbus,gi,mutagen,cairo,requests,github3,jinja2,magic,youtube_dl,podcastparser,mygpoclient ++known_third_party=dbus,gi,mutagen,cairo,requests,github3,jinja2,magic,yt_dlp,podcastparser,mygpoclient + known_first_party=gpodder,soco +diff --git a/share/gpodder/extensions/youtube-dl.py b/share/gpodder/extensions/youtube-dl.py +index a3039e9f..1429b377 100644 +--- a/share/gpodder/extensions/youtube-dl.py ++++ b/share/gpodder/extensions/youtube-dl.py +@@ -1,6 +1,6 @@ + # -*- coding: utf-8 -*- +-# Manage Youtube subscriptions using youtube-dl (https://github.com/ytdl-org/youtube-dl) +-# Requirements: youtube-dl module (pip install youtube_dl) ++# Manage Youtube subscriptions using yt-dlp (https://github.com/ytdl-org/yt-dlp) ++# Requirements: yt-dlp module (pip install yt_dlp) + # (c) 2019-08-17 Eric Le Lay + # Released under the same license terms as gPodder itself. + +@@ -10,8 +10,8 @@ import re + import sys + import time + +-import youtube_dl +-from youtube_dl.utils import DownloadError, ExtractorError, sanitize_url ++import yt_dlp ++from yt_dlp.utils import DownloadError, ExtractorError, sanitize_url + + import gpodder + from gpodder import download, feedcore, model, registry, youtube +@@ -24,19 +24,19 @@ logger = logging.getLogger(__name__) + + + __title__ = 'Youtube-dl' +-__description__ = _('Manage Youtube subscriptions using youtube-dl (pip install youtube_dl)') ++__description__ = _('Manage Youtube subscriptions using yt-dlp (pip install yt_dlp)') + __only_for__ = 'gtk, cli' + __authors__ = 'Eric Le Lay ' + __doc__ = 'https://gpodder.github.io/docs/extensions/youtubedl.html' + + want_ytdl_version = '2021.02.04' +-want_ytdl_version_msg = _('Your version of youtube-dl %(have_version)s has known issues, please upgrade to %(want_version)s or newer.') ++want_ytdl_version_msg = _('Your version of yt-dlp %(have_version)s has known issues, please upgrade to %(want_version)s or newer.') + + DefaultConfig = { +- # youtube-dl downloads and parses each video page to get informations about it, which is very slow. ++ # yt-dlp downloads and parses each video page to get informations about it, which is very slow. + # Set to False to fall back to the fast but limited (only 15 episodes) gpodder code + 'manage_channel': True, +- # If for some reason youtube-dl download doesn't work for you, you can fallback to gpodder code. ++ # If for some reason yt-dlp download doesn't work for you, you can fallback to gpodder code. + # Set to False to fall back to default gpodder code (less available formats). + 'manage_downloads': True, + } +@@ -68,9 +68,9 @@ def video_guid(video_id): + + class YoutubeCustomDownload(download.CustomDownload): + """ +- Represents the download of a single episode using youtube-dl. ++ Represents the download of a single episode using yt-dlp. + +- Actual youtube-dl interaction via gPodderYoutubeDL. ++ Actual yt-dlp interaction via gPodderYoutubeDL. + """ + def __init__(self, ytdl, url, episode): + self._ytdl = ytdl +@@ -85,7 +85,7 @@ class YoutubeCustomDownload(download.CustomDownload): + """ + self._reporthook = reporthook + # outtmpl: use given tempname by DownloadTask +- # (escape % and $ because outtmpl used as a string template by youtube-dl) ++ # (escape % and $ because outtmpl used as a string template by yt-dlp) + outtmpl = tempname.replace('%', '%%').replace('$', '$$') + res = self._ytdl.fetch_video(self._url, outtmpl, self._my_hook) + if outtmpl != tempname: +@@ -96,7 +96,7 @@ class YoutubeCustomDownload(download.CustomDownload): + if 'duration' in res and res['duration']: + self._episode.total_time = res['duration'] + headers = {} +- # youtube-dl doesn't return a content-type but an extension ++ # yt-dlp doesn't return a content-type but an extension + if 'ext' in res: + dot_ext = '.{}'.format(res['ext']) + # See #673 when merging multiple formats, the extension is appended to the tempname +@@ -189,12 +189,12 @@ class YoutubeFeed(model.Feed): + + def get_http_etag(self): + """ :return str: optional -- last HTTP etag header, for conditional request next time """ +- # youtube-dl doesn't provide it! ++ # yt-dlp doesn't provide it! + return None + + def get_http_last_modified(self): + """ :return str: optional -- last HTTP Last-Modified header, for conditional request next time """ +- # youtube-dl doesn't provide it! ++ # yt-dlp doesn't provide it! + return None + + def get_new_episodes(self, channel, existing_guids): +@@ -278,8 +278,8 @@ class gPodderYoutubeDL(download.CustomDownloader): + self.gpodder_config = gpodder_config + self.my_config = my_config + self.force = force +- # cachedir is not much used in youtube-dl, but set it anyway +- cachedir = os.path.join(gpodder.home, 'youtube-dl') ++ # cachedir is not much used in yt-dlp, but set it anyway ++ cachedir = os.path.join(gpodder.home, 'yt-dlp') + os.makedirs(cachedir, exist_ok=True) + self._ydl_opts = { + 'cachedir': cachedir, +@@ -289,9 +289,9 @@ class gPodderYoutubeDL(download.CustomDownloader): + self._ydl_opts['verbose'] = True + else: + self._ydl_opts['quiet'] = True +- # Don't create downloaders for URLs supported by these youtube-dl extractors ++ # Don't create downloaders for URLs supported by these yt-dlp extractors + self.ie_blacklist = ["Generic"] +- # Cache URL regexes from youtube-dl matches here, seed with youtube regex ++ # Cache URL regexes from yt-dlp matches here, seed with youtube regex + self.regex_cache = [re.compile(r'https://www.youtube.com/watch\?v=.+')] + # #686 on windows without a console, sys.stdout is None, causing exceptions + # when adding podcasts. +@@ -301,7 +301,7 @@ class gPodderYoutubeDL(download.CustomDownloader): + self._ydl_opts['logger'] = logger + + def add_format(self, gpodder_config, opts, fallback=None): +- """ construct youtube-dl -f argument from configured format. """ ++ """ construct yt-dlp -f argument from configured format. """ + # You can set a custom format or custom formats by editing the config for key + # `youtube.preferred_fmt_ids` + # +@@ -309,8 +309,8 @@ class gPodderYoutubeDL(download.CustomDownloader): + # they are translated to youtube dl format bestaudio/18, meaning preferably + # the best audio quality (audio-only) and MP4 360p if it's not available. + # +- # See https://github.com/ytdl-org/youtube-dl#format-selection for details +- # about youtube-dl format specification. ++ # See https://github.com/ytdl-org/yt-dlp#format-selection for details ++ # about yt-dlp format specification. + fmt_ids = youtube.get_fmt_ids(gpodder_config.youtube, False) + opts['format'] = '/'.join(str(fmt) for fmt in fmt_ids) + if fallback: +@@ -326,7 +326,7 @@ class gPodderYoutubeDL(download.CustomDownloader): + } + opts.update(self._ydl_opts) + self.add_format(self.gpodder_config, opts) +- with youtube_dl.YoutubeDL(opts) as ydl: ++ with yt_dlp.YoutubeDL(opts) as ydl: + return ydl.extract_info(url, download=True) + + def refresh_entries(self, ie_result): +@@ -343,7 +343,7 @@ class gPodderYoutubeDL(download.CustomDownloader): + tmp = {k: v for k, v in ie_result.items() if k != 'entries'} + tmp['entries'] = [e] + try: +- with youtube_dl.YoutubeDL(opts) as ydl: ++ with yt_dlp.YoutubeDL(opts) as ydl: + ydl.process_ie_result(tmp, download=False) + new_entries.extend(tmp.get('entries')) + except DownloadError as ex: +@@ -375,7 +375,7 @@ class gPodderYoutubeDL(download.CustomDownloader): + 'youtube_include_dash_manifest': False, # only interested in video title and id + } + opts.update(self._ydl_opts) +- with youtube_dl.YoutubeDL(opts) as ydl: ++ with yt_dlp.YoutubeDL(opts) as ydl: + ie_result = ydl.extract_info(url, download=False, process=False) + result_type, has_playlist = extract_type(ie_result) + while not has_playlist: +@@ -390,8 +390,8 @@ class gPodderYoutubeDL(download.CustomDownloader): + process=False, + ie_key=ie_result.get('ie_key')) + result_type, has_playlist = extract_type(ie_result) +- cover_url = youtube.get_cover(channel_url) # youtube-dl doesn't provide the cover url! +- description = youtube.get_channel_desc(channel_url) # youtube-dl doesn't provide the description! ++ cover_url = youtube.get_cover(channel_url) # yt-dlp doesn't provide the cover url! ++ description = youtube.get_channel_desc(channel_url) # yt-dlp doesn't provide the description! + return feedcore.Result(feedcore.UPDATED_FEED, + YoutubeFeed(url, cover_url, description, max_episodes, ie_result, self)) + +@@ -427,7 +427,7 @@ class gPodderYoutubeDL(download.CustomDownloader): + self.regex_cache.remove(r) + self.regex_cache.insert(0, r) + return True +- with youtube_dl.YoutubeDL(self._ydl_opts) as ydl: ++ with yt_dlp.YoutubeDL(self._ydl_opts) as ydl: + for ie in ydl._ies: + if ie.suitable(url) and ie.ie_key() not in self.ie_blacklist: + self.regex_cache.insert(0, ie._VALID_URL_RE) +@@ -453,18 +453,18 @@ class gPodderExtension: + + def on_load(self): + self.ytdl = gPodderYoutubeDL(self.container.manager.core.config, self.container.config) +- logger.info('Registering youtube-dl.') ++ logger.info('Registering yt-dlp.') + registry.feed_handler.register(self.ytdl.fetch_channel) + registry.custom_downloader.register(self.ytdl.custom_downloader) + +- logger.debug('Youtube-DL %s' % youtube_dl.version.__version__) ++ logger.debug('Youtube-DL %s' % yt_dlp.version.__version__) + +- if youtube_dl.utils.version_tuple(youtube_dl.version.__version__) < youtube_dl.utils.version_tuple(want_ytdl_version): ++ if yt_dlp.utils.version_tuple(yt_dlp.version.__version__) < yt_dlp.utils.version_tuple(want_ytdl_version): + logger.error(want_ytdl_version_msg +- % {'have_version': youtube_dl.version.__version__, 'want_version': want_ytdl_version}) ++ % {'have_version': yt_dlp.version.__version__, 'want_version': want_ytdl_version}) + + def on_unload(self): +- logger.info('Unregistering youtube-dl.') ++ logger.info('Unregistering yt-dlp.') + try: + registry.feed_handler.unregister(self.ytdl.fetch_channel) + except ValueError: +@@ -479,9 +479,9 @@ class gPodderExtension: + if name == 'gpodder-gtk': + self.gpodder = ui_object + +- if youtube_dl.utils.version_tuple(youtube_dl.version.__version__) < youtube_dl.utils.version_tuple(want_ytdl_version): ++ if yt_dlp.utils.version_tuple(yt_dlp.version.__version__) < yt_dlp.utils.version_tuple(want_ytdl_version): + ui_object.notification(want_ytdl_version_msg % +- {'have_version': youtube_dl.version.__version__, 'want_version': want_ytdl_version}, ++ {'have_version': yt_dlp.version.__version__, 'want_version': want_ytdl_version}, + _('Old Youtube-DL'), important=True, widget=ui_object.main_window) + + def on_episodes_context_menu(self, episodes): +diff --git a/src/gpodder/download.py b/src/gpodder/download.py +index 6b4031f8..977802c7 100644 +--- a/src/gpodder/download.py ++++ b/src/gpodder/download.py +@@ -74,7 +74,7 @@ class CustomDownloader: + + def custom_downloader(self, config, episode): + """ +- if this custom downloader has a custom download method (e.g. youtube-dl), ++ if this custom downloader has a custom download method (e.g. yt-dlp), + return a CustomDownload. Else return None + :param config: gpodder config (e.g. to get preferred video format) + :param model.PodcastEpisode episode: episode to download +diff --git a/src/gpodder/model.py b/src/gpodder/model.py +index ba0979a4..21cb1b4d 100644 +--- a/src/gpodder/model.py ++++ b/src/gpodder/model.py +@@ -257,7 +257,7 @@ class PodcastEpisode(PodcastModelObject): + # filesystems like eCryptFS store metadata in the filename, making the + # effective number of characters less than that. eCryptFS recommends + # 140 chars, we use 120 here (140 - len(extension) - len(".partial.webm")) +- # (youtube-dl appends an extension after .partial, ".webm" is the longest). ++ # (yt-dlp appends an extension after .partial, ".webm" is the longest). + # References: gPodder bug 1898, http://unix.stackexchange.com/a/32834 + MAX_FILENAME_LENGTH = 120 # without extension + MAX_FILENAME_WITH_EXT_LENGTH = 140 - len(".partial.webm") # with extension +@@ -294,7 +294,7 @@ class PodcastEpisode(PodcastModelObject): + if not (audio_available or video_available): + _url = episode.url + episode.url = util.normalize_feed_url(entry['link']) +- # Check if any extensions (e.g. youtube-dl) support the link ++ # Check if any extensions (e.g. yt-dlp) support the link + link_has_media = registry.custom_downloader.resolve(None, None, episode) is not None + episode.url = _url + media_available = audio_available or video_available or link_has_media +diff --git a/src/gpodder/youtube.py b/src/gpodder/youtube.py +index 7b8e3954..01655612 100644 +--- a/src/gpodder/youtube.py ++++ b/src/gpodder/youtube.py +@@ -39,7 +39,7 @@ _ = gpodder.gettext + + + # http://en.wikipedia.org/wiki/YouTube#Quality_and_formats +-# https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L447 ++# https://github.com/ytdl-org/yt-dlp/blob/master/yt_dlp/extractor/youtube.py#L447 + + # adaptive audio formats + # 140 MP4 128k +@@ -96,28 +96,28 @@ flv_480 += flv_360 + formats = [ + # WebM VP8, VP9 or VP9 HFR video, Vorbis or Opus audio + # Fallback to MP4 or FLV +- (272, (webm_4320, '272/7680x4320/99/0/0', 'WebM 4320p 8K (7680x4320) youtube-dl')), # N/A, 160 kbps +- (313, (webm_2160, '313/3840x2160/99/0/0', 'WebM 2160p 4K (3840x2160) youtube-dl')), # N/A, 160 kbps +- (271, (webm_1440, '271/2560x1440/99/0/0', 'WebM 1440p (2560x1440) youtube-dl')), # N/A, 160 kbps +- (46, (webm_1080, '46/1920x1080/99/0/0', 'WebM 1080p (1920x1080) youtube-dl')), # N/A, 192 kbps +- (45, (webm_720, '45/1280x720/99/0/0', 'WebM 720p (1280x720) youtube-dl')), # 2.0 Mbps, 192 kbps +- (44, (webm_480, '44/854x480/99/0/0', 'WebM 480p (854x480) youtube-dl')), # 1.0 Mbps, 128 kbps ++ (272, (webm_4320, '272/7680x4320/99/0/0', 'WebM 4320p 8K (7680x4320) yt-dlp')), # N/A, 160 kbps ++ (313, (webm_2160, '313/3840x2160/99/0/0', 'WebM 2160p 4K (3840x2160) yt-dlp')), # N/A, 160 kbps ++ (271, (webm_1440, '271/2560x1440/99/0/0', 'WebM 1440p (2560x1440) yt-dlp')), # N/A, 160 kbps ++ (46, (webm_1080, '46/1920x1080/99/0/0', 'WebM 1080p (1920x1080) yt-dlp')), # N/A, 192 kbps ++ (45, (webm_720, '45/1280x720/99/0/0', 'WebM 720p (1280x720) yt-dlp')), # 2.0 Mbps, 192 kbps ++ (44, (webm_480, '44/854x480/99/0/0', 'WebM 480p (854x480) yt-dlp')), # 1.0 Mbps, 128 kbps + (43, (webm_360, '43/640x360/99/0/0', 'WebM 360p (640x360)')), # 0.5 Mbps, 128 kbps +- (242, (webm_240, '242/426x240/99/0/0', 'WebM 240p (426x240) youtube-dl')), # N/A, 70 kbps +- (278, (webm_144, '278/256x144/99/0/0', 'WebM 144p (256x144) youtube-dl')), # N/A, 70 kbps ++ (242, (webm_240, '242/426x240/99/0/0', 'WebM 240p (426x240) yt-dlp')), # N/A, 70 kbps ++ (278, (webm_144, '278/256x144/99/0/0', 'WebM 144p (256x144) yt-dlp')), # N/A, 70 kbps + + # MP4 H.264 video, AAC audio + # Fallback to FLV +- (138, (mp4_4320, '138/7680x4320/9/0/115', 'MP4 4320p 8K (7680x4320) youtube-dl')), # N/A, 128 kbps ++ (138, (mp4_4320, '138/7680x4320/9/0/115', 'MP4 4320p 8K (7680x4320) yt-dlp')), # N/A, 128 kbps + (38, (mp4_3072, '38/4096x3072/9/0/115', 'MP4 3072p 4K (4096x3072)')), # 5.0 - 3.5 Mbps, 192 kbps +- (266, (mp4_2160, '266/3840x2160/9/0/115', 'MP4 2160p 4K (3840x2160) youtube-dl')), # N/A, 128 kbps +- (264, (mp4_1440, '264/2560x1440/9/0/115', 'MP4 1440p (2560x1440) youtube-dl')), # N/A, 128 kbps +- (37, (mp4_1080, '37/1920x1080/9/0/115', 'MP4 1080p (1920x1080) youtube-dl')), # 4.3 - 3.0 Mbps, 192 kbps ++ (266, (mp4_2160, '266/3840x2160/9/0/115', 'MP4 2160p 4K (3840x2160) yt-dlp')), # N/A, 128 kbps ++ (264, (mp4_1440, '264/2560x1440/9/0/115', 'MP4 1440p (2560x1440) yt-dlp')), # N/A, 128 kbps ++ (37, (mp4_1080, '37/1920x1080/9/0/115', 'MP4 1080p (1920x1080) yt-dlp')), # 4.3 - 3.0 Mbps, 192 kbps + (22, (mp4_720, '22/1280x720/9/0/115', 'MP4 720p (1280x720)')), # 2.9 - 2.0 Mbps, 192 kbps +- (135, (mp4_480, '135/854x480/9/0/115', 'MP4 480p (854x480) youtube-dl')), # N/A, 128 kbps ++ (135, (mp4_480, '135/854x480/9/0/115', 'MP4 480p (854x480) yt-dlp')), # N/A, 128 kbps + (18, (mp4_360, '18/640x360/9/0/115', 'MP4 360p (640x360)')), # 0.5 Mbps, 96 kbps +- (133, (mp4_240, '133/426x240/9/0/115', 'MP4 240p (426x240) youtube-dl')), # N/A, 128 kbps +- (160, (mp4_144, '160/256x144/9/0/115', 'MP4 144p (256x144) youtube-dl')), # N/A, 128 kbps ++ (133, (mp4_240, '133/426x240/9/0/115', 'MP4 240p (426x240) yt-dlp')), # N/A, 128 kbps ++ (160, (mp4_144, '160/256x144/9/0/115', 'MP4 144p (256x144) yt-dlp')), # N/A, 128 kbps + + # FLV H.264 video, AAC audio + # Fallback to FLV 6 or 5 +diff --git a/tools/mac-osx/release_on_mac.sh b/tools/mac-osx/release_on_mac.sh +index b4294097..ed567fe7 100755 +--- a/tools/mac-osx/release_on_mac.sh ++++ b/tools/mac-osx/release_on_mac.sh +@@ -69,8 +69,8 @@ cp -a "$checkout"/tools/mac-osx/make_cert_pem.py "$resources"/bin + $run_pip install setuptools wheel + $run_pip install podcastparser==0.6.6 mygpoclient==1.8 requests[socks]==2.25.1 + +-# install extension dependencies; no explicit version for youtube_dl +-$run_pip install mutagen==1.45.1 html5lib==1.1 youtube_dl ++# install extension dependencies; no explicit version for yt_dlp ++$run_pip install mutagen==1.45.1 html5lib==1.1 yt_dlp + + cd "$checkout" + touch share/applications/gpodder{,-url-handler}.desktop +diff --git a/tools/requirements.txt b/tools/requirements.txt +index 4cf91a50..d70be3c8 100644 +--- a/tools/requirements.txt ++++ b/tools/requirements.txt +@@ -8,6 +8,6 @@ urllib3==1.26.5 + html5lib==1.1 + mutagen==1.45.1 + dbus-python +-youtube_dl ++yt_dlp + # eyed3 is optional and pulls in a lot of dependencies, so disable by default + # eyed3 +diff --git a/tools/win_installer/_base.sh b/tools/win_installer/_base.sh +index 7e99a5a9..29c1705c 100644 +--- a/tools/win_installer/_base.sh ++++ b/tools/win_installer/_base.sh +@@ -91,7 +91,7 @@ html5lib==1.1 + webencodings==0.5.1 + certifi==2021.5.30 + mutagen==1.45.1 +-youtube_dl ++yt_dlp + requests==2.25.1 + urllib3==1.26.5 + chardet==4.0.0 +-- +2.33.1 + diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,8 +1,8 @@ name : gpodder -version : 3.10.19 -release : 18 +version : 3.10.21 +release : 19 source : - - https://github.com/gpodder/gpodder/archive/3.10.19.tar.gz : 4a2e6fcc7e674a2b5731ac3cda4a18ccec462c66e8d4a7f0b69a296b0f8775ac + - https://github.com/gpodder/gpodder/archive/refs/tags/3.10.21.tar.gz : 014e619de64d3e3dc8493929af8007b3caf09dd77e153bf778f1708d55946878 homepage : https://gpodder.github.io/ license : GPL-3.0-or-later component : multimedia.audio @@ -23,7 +23,9 @@ - python-podcastparser - python-requests - python3-dbus - - youtube-dl + - yt-dlp +setup : | + %patch -p1 < $pkgfiles/0001-Replace-youtube-dl-with-yt-dlp.patch install : | %make_install check : | diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -3,8 +3,8 @@ gpodder https://gpodder.github.io/ - Joey Riches - josephriches@gmail.com + Thomas Staudinger + Staudi.Kaos@gmail.com GPL-3.0-or-later multimedia.audio @@ -23,7 +23,7 @@ /usr/bin/gpo /usr/bin/gpodder /usr/bin/gpodder-migrate2tres - /usr/lib/python3.9/site-packages/gpodder-3.10.19-py3.9.egg-info + /usr/lib/python3.9/site-packages/gpodder-3.10.21-py3.9.egg-info /usr/lib/python3.9/site-packages/gpodder/__init__.py /usr/lib/python3.9/site-packages/gpodder/__pycache__/__init__.cpython-39.opt-1.pyc /usr/lib/python3.9/site-packages/gpodder/__pycache__/__init__.cpython-39.pyc @@ -294,6 +294,7 @@ /usr/share/locale/pt_BR/LC_MESSAGES/gpodder.mo /usr/share/locale/ro/LC_MESSAGES/gpodder.mo /usr/share/locale/ru/LC_MESSAGES/gpodder.mo + /usr/share/locale/sk/LC_MESSAGES/gpodder.mo /usr/share/locale/sv/LC_MESSAGES/gpodder.mo /usr/share/locale/tr/LC_MESSAGES/gpodder.mo /usr/share/locale/uk/LC_MESSAGES/gpodder.mo @@ -305,12 +306,12 @@ - - 2021-07-29 - 3.10.19 + + 2021-11-05 + 3.10.21 Packaging update - Joey Riches - josephriches@gmail.com + Thomas Staudinger + Staudi.Kaos@gmail.com \ No newline at end of file