From 7ad7221052a725e945d2da501234a2f51a93cb91 Mon Sep 17 00:00:00 2001
From: A S Lewis <aslewis@cpan.org>
Date: Sun, 28 Feb 2021 13:21:40 +0000
Subject: [PATCH] Update to v2.3.110

---
 CHANGES                          |   35 +
 README.rst                       |  153 ++--
 VERSION                          |    2 +-
 locale/en_US/LC_MESSAGES/base.po | 1460 ++++++++++++++---------------
 locale/ko_KR/LC_MESSAGES/base.mo |  Bin 153261 -> 152722 bytes
 locale/ko_KR/LC_MESSAGES/base.po | 1471 +++++++++++++++---------------
 locale/nl_NL/LC_MESSAGES/base.mo |  Bin 145283 -> 144799 bytes
 locale/nl_NL/LC_MESSAGES/base.po | 1471 +++++++++++++++---------------
 nsis/tartube_install_32bit.nsi   |    6 +-
 nsis/tartube_install_64bit.nsi   |    6 +-
 pack/bin/no_download/tartube     |    4 +-
 pack/bin/pkg/tartube             |    4 +-
 pack/bin/strict/tartube          |    4 +-
 pack/tartube.1                   |    2 +-
 pack/tartube.desktop             |    2 +-
 setup.py                         |    9 +-
 tartube/config.py                |   70 +-
 tartube/downloads.py             |   17 +-
 tartube/ffmpeg_tartube.py        |   18 +-
 tartube/mainapp.py               |   56 +-
 tartube/options.py               |   19 +-
 tartube/po/messages.pot          | 1460 ++++++++++++++---------------
 tartube/tartube                  |    4 +-
 tartube/updates.py               |    2 +-
 tartube/wizwin.py                |   21 +-
 25 files changed, 3256 insertions(+), 3040 deletions(-)

diff --git a/CHANGES b/CHANGES
index 0c26300..b860990 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,38 @@
+v2.3.110 (28 Feb 2021)
+-------------------------------------------------------------------------------
+
+MAJOR NEW FEATURES
+- Added the Korean translation compiled by mirusu400 (thanks!) (Git #258)
+- Tartube now officially supports the downloader yt-dlp, replacing its support
+    for youtube-dlc (which has been abandoned) (Git #254)
+
+MINOR NEW FEATURES
+- The FFmpeg options window now provides comboboxes for the user to specify
+    GPU encoding and hardware acceleration (Git #264)
+- In the download options edit window, under the 'Files > Keep files' tab, the
+    text has been improved to more accurately describe the handling of
+    description, metadata, annotation and thumbnail files (Git #263)
+- In Tartube's setup.py, replaced the obsolete dependency pgi with pygobject
+    (Git #242)
+
+MAJOR FIXES
+- In the download options edit window, in the Subtitles > Options tab, the
+    button marked 'Download subtitles file for these languages' was completely
+    broken. Fixed (Git #263)
+- Users who installed Tartube using one of the 'strict' packages reported that
+    the preferences window could not be opened. The problem has probably been
+    fixed (Git #256)
+
+MINOR FIXES
+- In the Videos tab, the 'Download all' button can be disabled. Other buttons/
+    menu items are disabled at the same time. Download buttons in the Classic
+    Mode tab were disabled, but should not have been. Fixed
+- When installing yt-dlp via pip, the version number was not recognised. Fixed
+- In the download options edit window, in the 'Files > File names' tab, there
+    was a duplicate label in the 'Video properties' combobox. Fixed (Git #263)
+- Fixed a rare crash caused by an incorrectly detected videos
+- Various fixes for Git #243, Git #249
+
 v2.3.085 (13 Jan 2021)
 -------------------------------------------------------------------------------
 
diff --git a/README.rst b/README.rst
index 713a02a..d0e5c4e 100644
--- a/README.rst
+++ b/README.rst
@@ -22,7 +22,7 @@ Works with YouTube, BitChute, and hundreds of other websites
 1 Introduction
 ==============
 
-**Tartube** is a GUI front-end for `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__, `youtube-dl <https://youtube-dl.org/>`__ and other compatible video downloaders.
+**Tartube** is a GUI front-end for `youtube-dl <https://youtube-dl.org/>`__, `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__ and other compatible video downloaders.
 
 It is partly based on `youtube-dl-gui <https://mrs0m30n3.github.io/youtube-dl-gui/>`__ and is written in Python 3 / Gtk 3. Tartube runs on MS Windows, Linux, BSD and MacOS.
 
@@ -59,16 +59,16 @@ For a full list of new features and fixes, see `recent changes <CHANGES>`__.
 3 Downloads
 ===========
 
-Latest version: **v2.3.085 (13 Jan 2020)**
+Latest version: **v2.3.110 (21 Feb 2021)**
 
 Official packages (also available from the `Github release page <https://github.com/axcore/tartube/releases>`__):
 
-- `MS Windows (64-bit) installer <https://sourceforge.net/projects/tartube/files/v2.3.085/install-tartube-2.3.085-64bit.exe/download>`__ and `portable edition <https://sourceforge.net/projects/tartube/files/v2.3.085/tartube-portable-64bit.zip/download>`__ from Sourceforge
-- `MS Windows (32-bit) installer <https://sourceforge.net/projects/tartube/files/v2.3.085/install-tartube-2.3.085-32bit.exe/download>`__ and `portable edition <https://sourceforge.net/projects/tartube/files/v2.3.085/tartube-portable-32bit.zip/download>`__ from Sourceforge
-- `DEB package (for Debian-based distros, e.g. Ubuntu, Linux Mint) <https://sourceforge.net/projects/tartube/files/v2.3.085/python3-tartube_2.3.085.deb/download>`__ from Sourceforge
-- `RPM package (for RHEL-based distros, e.g. Fedora) <https://sourceforge.net/projects/tartube/files/v2.3.085/tartube-2.3.085.rpm/download>`__ from Sourceforge
+- `MS Windows (64-bit) installer <https://sourceforge.net/projects/tartube/files/v2.3.110/install-tartube-2.3.110-64bit.exe/download>`__ and `portable edition <https://sourceforge.net/projects/tartube/files/v2.3.110/tartube-portable-64bit.zip/download>`__ from Sourceforge
+- `MS Windows (32-bit) installer <https://sourceforge.net/projects/tartube/files/v2.3.110/install-tartube-2.3.110-32bit.exe/download>`__ and `portable edition <https://sourceforge.net/projects/tartube/files/v2.3.110/tartube-portable-32bit.zip/download>`__ from Sourceforge (but see `7.23 Doesn't work on 32-bit Windows`_)
+- `DEB package (for Debian-based distros, e.g. Ubuntu, Linux Mint) <https://sourceforge.net/projects/tartube/files/v2.3.110/python3-tartube_2.3.110.deb/download>`__ from Sourceforge
+- `RPM package (for RHEL-based distros, e.g. Fedora) <https://sourceforge.net/projects/tartube/files/v2.3.110/tartube-2.3.110.rpm/download>`__ from Sourceforge
 
-There are also some DEB/RPM packages marked STRICT. In these packages, updates to **youtube-dl(c)** from within **Tartube** have been disabled. If **Tartube** is uploaded to a repository with lots of rules, such as the official Debian repository, then you should probably use the STRICT packages.
+There are also some DEB/RPM packages marked STRICT. In these packages, updates to **youtube-dl** from within **Tartube** have been disabled. If **Tartube** is uploaded to a repository with lots of rules, such as the official Debian repository, then you should probably use the STRICT packages.
 
 Semi-official packages:
 
@@ -192,12 +192,12 @@ MacOS users should use the following procedure (with thanks to JeremyShih):
 
         **pip install requests**
 
-- Install either `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__ or `youtube-dl <https://youtube-dl.org/>`__
-
-        **pip install youtube-dlc**
+- Install either `youtube-dl <https://youtube-dl.org/>`__ or `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__ 
 
         **pip install youtube-dl**
 
+        **pip install yt-dlp**
+
 - Install the Adwaita theme for icons used by Tartube (optional)
 
         **brew install adwaita-icon-theme**
@@ -222,7 +222,7 @@ Linux/BSD users can use any of the following installation methods.
 
 Linux distributions based on Debian, such as Ubuntu and Linux Mint, can install **Tartube** using the DEB package (see the links above). 
 
-**Tartube** requires either `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__ or `youtube-dl <https://youtube-dl.org/>`__. If it's already installed on your system, then you can start **Tartube** immediately. Otherwise, do this:
+**Tartube** requires either `youtube-dl <https://youtube-dl.org/>`__ or `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__. If it's already installed on your system, then you can start **Tartube** immediately. Otherwise, do this:
 
 1. Run **Tartube**
 2. **Tartube** asks you to choose a data directory, so do that
@@ -237,7 +237,7 @@ It is strongly recommended that you install `Ffmpeg <https://ffmpeg.org/>`__, to
 
 Linux distributions based on RHEL, such as Fedora, can install **Tartube** using the RPM package (see the links above). 
 
-**Tartube** requires either `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__ or `youtube-dl <https://youtube-dl.org/>`__. If it's already installed on your system, then you can start **Tartube** immediately.
+**Tartube** requires either `youtube-dl <https://youtube-dl.org/>`__ or `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__. If it's already installed on your system, then you can start **Tartube** immediately. Otherwise, do this:
 
 Otherwise, if **pip** is already installed on your system, do this:
 
@@ -245,13 +245,13 @@ Otherwise, if **pip** is already installed on your system, do this:
 2. **Tartube** asks you to choose a data directory, so do that
 3. Click **Operations > Update youtube-dl**
 
-If neither **youtube-dl(c)** nor **pip** are installed on your system, then the recommended way to install **youtube-dl(c)** is from the command line, using **pip**. (Software managers usually don't offer the most recent version of **youtube-dl**.) 
+If neither **youtube-dl** nor **pip** are installed on your system, then the recommended way to install **youtube-dl** is from the command line, using **pip**. (Software managers usually don't offer the most recent version of **youtube-dl**.) 
 
 On Fedora, the procedure is:
 
 1. Open a terminal window
 2. Type: ``dnf -y install python3-pip``
-3. Type: ``pip3 install youtube-dlc`` or ``pip3 install youtube-dl``
+3. Type: ``pip3 install youtube-dl`` or ``pip3 install yt-dlp``
 4. You can now run **Tartube**.
 
 It is strongly recommended that you install `Ffmpeg <https://ffmpeg.org/>`__, too. On most RHEL-based systems (for example, Fedora 29-32), you can open a terminal window and run these commands:
@@ -296,9 +296,9 @@ Here is the procedure for Debian-based distributions, like Ubuntu and Linux Mint
 5.3.6 Install using PyPI (with root privileges)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-1. Make sure **youtube-dl(c)** has been completely removed from your system
+1. Make sure **youtube-dl** has been completely removed from your system
 2. Type: ``sudo apt install python3-pip``
-3. Type: ``sudo pip3 install youtube-dlc tartube`` or ``sudo pip3 install youtube-dl tartube``
+3. Type: ``sudo pip3 install youtube-dl tartube`` or ``sudo pip3 install yt-dlp tartube``
 4. Type: ``tartube``
 
 5.3.7 Install using PyPI (without root privileges)
@@ -322,11 +322,11 @@ For any other method of installation on Linux/BSD, the following dependencies ar
 -  `Python 3 <https://www.python.org/downloads>`__
 -  `Gtk 3 <https://python-gtk-3-tutorial.readthedocs.io/en/latest/>`__
 -  `Python Requests module <https://3.python-requests.org/>`__
--  Either `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__ or `youtube-dl <https://youtube-dl.org/>`__
+-  Either `youtube-dl <https://youtube-dl.org/>`__ or `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__
 
 These dependencies are optional, but recommended:
 
--  `Python pip <https://pypi.org/project/pip/>`__ - keeping youtube-dl(c) up to date is much simpler when pip is installed
+-  `Python pip <https://pypi.org/project/pip/>`__ - keeping youtube-dl up to date is much simpler when pip is installed
 -  `Python feedparser module <https://pypi.org/project/feedparser/>`__ - enables **Tartube** to detect livestreams
 -  `Python moviepy module <https://pypi.org/project/moviepy/>`__ - if the website doesn't tell **Tartube** about the length of its videos, moviepy can work it out
 -  `Python playsound module <https://pypi.org/project/playsound/>`__ - enables **Tartube** to play an alarm when a livestream starts
@@ -360,8 +360,8 @@ After installing dependencies (see above):
 Tartube packages are usually created using one of the available environment variables:
 
 - **TARTUBE_PKG** for packages without restrictions
-- **TARTUBE_PKG_STRICT** for a package which should not download or update **youtube-dl(c)** or **FFmpeg**; the user is required to install those packages separately
-- **TARTUBE_PKG_NO_DOWNLOAD** for a package which should not download any videos (and also will not download/update **youtube-dl(c)** or **FFmpeg**)
+- **TARTUBE_PKG_STRICT** for a package which should not download or update **youtube-dl** or **FFmpeg**; the user is required to install those packages separately
+- **TARTUBE_PKG_NO_DOWNLOAD** for a package which should not download any videos (and also will not download/update **youtube-dl** or **FFmpeg**)
 
 Some packaging systems might forbid installing other packages. If that's the case, you can disable that functionality.
 
@@ -426,7 +426,7 @@ The procedure used to create the MS Windows installers is described in full in t
 * `6.22.4 Compatible websites`_
 * `6.23 Detecting missing videos`_
 * `6.24 More information about FFmpeg and AVConv`_
-* `6.24.1 Using FFmpeg / AVConv with youtube-dl(c)`_
+* `6.24.1 Using FFmpeg / AVConv with youtube-dl`_
 * `6.24.2 Using FFmpeg directly`_
 * `6.24.3 Using FFmpeg options`_
 * `6.24.4 Advanced FFmpeg options`_
@@ -447,9 +447,10 @@ All of these settings can be changed later, if you want. For example, to change
 6.2 Updating the downloader
 ---------------------------
 
-*If you installed Tartube via a repository such as the official Debian repository, then Tartube may not be allowed to update youtube-dl(c). In that case, this section does not apply; update youtube-dl(c) using your system's package manager.*
+*If you installed Tartube via a repository such as the official Debian repository, then Tartube may not be allowed to update youtube-dl. In that case, this section does not apply; update youtube-dl using your system's package manager.*
 
-**Tartube** uses a downloader to interact with websites like **YouTube**. **Tartube** officially supports two downloaders, `youtube-dlc <https://pypi.org/project/youtube-dlc/>`__ and `youtube-dl <https://youtube-dl.org/>`__. (Other forks of **youtube-dl** will probably work as well.)
+**Tartube** uses a downloader to interact with websites like **YouTube**. **Tartube** officially supports two downloaders,
+`youtube-dl <https://youtube-dl.org/>`__ and `yt-dlp <https://github.com/yt-dlp/yt-dlp/>`__. (Other forks of **youtube-dl** will probably work as well.)
 
 Websites changes their code frequently, and therefore the downloaders must be updated frequently.
 
@@ -464,10 +465,10 @@ Websites changes their code frequently, and therefore the downloaders must be up
 
 If the update operation fails on MS Windows, you should `ask the authors for help <https://github.com/axcore/tartube/>`__.
 
-On other systems, users can modify **Tartube**'s settings. There are several locations on your filesystem where **youtube-dl(c)** might have been installed. 
+On other systems, users can modify **Tartube**'s settings. There are several locations on your filesystem where **youtube-dl** might have been installed. 
 
 .. image:: screenshots/example3.png
-  :alt: Updating youtube-dl(c)
+  :alt: Updating youtube-dl
 
 - Click **Edit > System preferences... > Downloaders > File paths**
 - Try changing the setting **Path to executable**
@@ -486,7 +487,7 @@ On other systems, users can modify **Tartube**'s settings. There are several loc
 - Download certain other video formats
 - Convert video files to audio
 
-**youtube-dl(c)** uses FFmpeg by default, but it can use AVConv for certain tasks.
+**youtube-dl** uses FFmpeg by default, but it can use AVConv for certain tasks.
 
 For more information about **Tartube**'s use of Ffmpeg and AVConv, see `6.24 More information about FFmpeg and AVConv`_.
 
@@ -500,7 +501,7 @@ There is no known method of installing a compatible version of AVConv.
 6.4.2 On Linux/BSD/MacOS
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
-On all other operating systems, **Tartube** and **youtube-dl(c)** should be able to use **FFmpeg** (and **AVConv**, if it is also installed) without any help from you. 
+On all other operating systems, **Tartube** and **youtube-dl** should be able to use **FFmpeg** (and **AVConv**, if it is also installed) without any help from you. 
 
 If the **FFmpeg** / **AVConv** executables have been installed to an unusual location, you can tell **Tartube** where to find them. 
 
@@ -530,7 +531,7 @@ When you start **Tartube** for the first time, there are several folders already
 - The **Livestreams** folder shows livestreams. Videos are automatically removed from this folder (but not from other folders) when the livestream is finished
 - The **Missing videos** folder (see `6.23 Detecting missing videos`_ ) shows videos that you've downloaded, but which have since been removed from the website by their creator
 - The **New Videos** folder shows videos that have been downloaded, but not yet watched
-- The **Recent Videos** folder shows videos that were checked or downloaded, the last time you used **youtube-dl(c)**
+- The **Recent Videos** folder shows videos that were checked or downloaded, the last time you used **youtube-dl**
 - The **Waiting Videos** folder shows videos that you want to watch soon. When you watch the video, it's automatically removed from the folder (but not from **Tartube**'s database)
 - Videos saved to the **Temporary Videos** folder will be deleted when **Tartube** next starts
 - The **Unsorted Videos** folder is a useful place to put videos that don't belong to a particular channel or playlist
@@ -625,7 +626,7 @@ Refreshing the filesystem:
 
 Updating packages:
 
-- **Update** - Installs or updates **youtube-dl(c)**, as described in `6.2 Updating the downloader`_. Also installs FFmpeg (on MS Windows only); see `6.4 Installing FFmpeg / AVConv`_
+- **Update** - Installs or updates **youtube-dl**, as described in `6.2 Updating the downloader`_. Also installs FFmpeg (on MS Windows only); see `6.4 Installing FFmpeg / AVConv`_
 - *Protip*: Do an **'Update'** operation before you do a **'Check'** or **'Download'** operation
  
 Fetching information:
@@ -652,7 +653,7 @@ Processing videos with **FFmpeg**:
 6.11 Download options
 ---------------------
 
-**youtube-dl(c)** offers a large number of download options. This is how to set them.
+**youtube-dl** offers a large number of download options. This is how to set them.
 
 .. image:: screenshots/example12.png
   :alt: Opening the download options window
@@ -768,7 +769,7 @@ A **Custom download** enables you to modify this behaviour, if desired. It's imp
 6.13.1 Independent downloads
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-By default, **Tartube** instructs **youtube-dl(c)** to download a channel or a playlist. **youtube-dl(c)** only needs a link to the channel or playlist, so **Tartube** doesn't send it a link to every single video.
+By default, **Tartube** instructs **youtube-dl** to download a channel or a playlist. **youtube-dl** only needs a link to the channel or playlist, so **Tartube** doesn't send it a link to every single video.
 
 If you need to download each individual video directly, for any reason, you can do this:
 
@@ -981,7 +982,7 @@ It's fine to add new videos to the database, or to remove them. Just be careful
 6.19.1 Importing videos from other applications
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-**Tartube** is a GUI front-end for **youtube-dl(c)**, but it is not the only one. If you've downloaded videos using another application, this is how to add them to **Tartube**'s database.
+**Tartube** is a GUI front-end for **youtube-dl**, but it is not the only one. If you've downloaded videos using another application, this is how to add them to **Tartube**'s database.
 
 - In **Tartube**'s main window, add each channel and playlist in the normal way
 - When you're ready, click the **Check all** button. This adds a list of videos to **Tartube**'s database, without actually downloading the videos themselves
@@ -1172,7 +1173,7 @@ Most users will prefer to leave all of these checkboxes unselected, and instead
 
 To disable any of these actions, simply click the same label again.
 
-**NOTE:** At the time of writing (December 2020), **youtube-dl(c)** often fails to download **YouTube** livestreams while they are broadcasting. For an alternative download method, see `6.22.5 Youtube Stream Capture`_. **youtube-dl(c)** will often download livestreams from other websites successfully.
+**NOTE:** At the time of writing (December 2020), **youtube-dl** often fails to download **YouTube** livestreams while they are broadcasting. For an alternative download method, see `6.22.5 Youtube Stream Capture`_. **youtube-dl** will often download livestreams from other websites successfully.
 
 6.22.4 Compatible websites
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1188,7 +1189,7 @@ Now click the **RSS feed** tab. Enter the link (URL) to the RSS feed in the box.
 6.22.5 Youtube Stream Capture
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-**Tartube** v2.3.0 adds support for `Youtube Stream Capture <https://github.com/mrwnwttk/youtube_stream_capture>`__ (YTSC), a script that can download livestreams from **YouTube** independently of **youtube-dl(c)**.
+**Tartube** v2.3.0 adds support for `Youtube Stream Capture <https://github.com/mrwnwttk/youtube_stream_capture>`__ (YTSC), a script that can download livestreams from **YouTube** independently of **youtube-dl**.
 
 Support for YTSC is EXPERIMENTAL. It does not work at all on MS Windows (under MSYS2), or on any website besides **YouTube**. It does not work at all for livestreams that broadcast continuously, 24/7. It is not guaranteed to work with every livestream.
 Before using YTSC, you must install both `FFmpeg <https://ffmpeg.org/>`__ and `aria2 <https://aria2.github.io/>`__ on your system.
@@ -1218,10 +1219,10 @@ Having enabled detection, removed videos will appear in the **Missing Videos** f
 6.24 More information about FFmpeg and AVConv
 ---------------------------------------------
 
-6.24.1 Using FFmpeg / AVConv with youtube-dl(c)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+6.24.1 Using FFmpeg / AVConv with youtube-dl
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-If you explicitly set the location of the **FFmpeg** and/or **AVConv** executables, then those locations are passed on to **youtube-dl(c)** when you check or download videos.
+If you explicitly set the location of the **FFmpeg** and/or **AVConv** executables, then those locations are passed on to **youtube-dl** when you check or download videos.
 
 If *both* locations are set, only one of them is passed on. Usually, that's the location of **FFmpeg**. However, if you specify the **prefer_avconv** download option, then **AVConv** is passed on, instead.
 
@@ -1284,21 +1285,21 @@ The *source file* can be a video, or a thumbnail. If you select **Video thumbnai
 
 The *output file* setting defines whatever you're trying to achieve. If you want **FFmpeg** to produce a video, then **H.264** is the most useful setting (but you could also choose **GIF**).
 
-When youtube-dl(c) downloads a video, it often downloads the video and audio components seperately. The two pieces are then merged by FFmpeg. Usually, all of this happens automatically, but if the merge didn't succeed (or wasn't attempted), you can try again by selecting **Merge video/audio**. This settings expects to find a video file and an audio file with the same name (but with different file extensions).
+When youtube-dl downloads a video, it often downloads the video and audio components seperately. The two pieces are then merged by FFmpeg. Usually, all of this happens automatically, but if the merge didn't succeed (or wasn't attempted), you can try again by selecting **Merge video/audio**. This settings expects to find a video file and an audio file with the same name (but with different file extensions).
 
 If the *source file* is a thumbnail, then the *output file* must also be a thumbnail.
 
 6.25 Using youtube-dl forks
 ---------------------------
 
-`youtube-dl <https://youtube-dl.org/>`__ is open-source software, and there are a number of forks available. Tartube officially supports both the original version and `youtube-dlc <https://github.com/blackjack4494/youtube-dlc>`__. 
+`youtube-dl <https://youtube-dl.org/>`__ is open-source software, and there are a number of forks available. Tartube officially supports both the original version and `yt-dlp <https://github.com/yt-dlp/yt-dlp>`__. 
 
 If a youtube-dl fork is still compatible with the original, then **Tartube** can use it instead of the original.
 
 - Click **Edit > System preferences... > Downloader > Forks**
 - In the box **Use a different fork of youtube-dl**, enter the name of the fork
 - Click **OK** to close the preferences window
-- Now click **Operations > Update youtube-dl(c)**, which will download (or update) the fork on your system
+- Now click **Operations > Update youtube-dl**, which will download (or update) the fork on your system
 
 7 Frequently-Asked Questions
 ============================
@@ -1325,17 +1326,18 @@ If a youtube-dl fork is still compatible with the original, then **Tartube** can
 * `7.20 Georestriction workarounds don't work`_
 * `7.21 Video website blocks me`_
 * `7.22 MS Windows installer is too big`_
-* `7.23 Tartube can't detect livestreams`_
-* `7.24 Livestream is already finished`_
-* `7.25 Can't hear livestream alarms`_
-* `7.26 Some icons not visible`_
-* `7.27 Video thumbnails not visible`_
-* `7.28 Graphs not visible`_
-* `7.29 Tartube is not visible in the system tray`_
-* `7.30 Tartube is not portable`_
-* `7.31 Run out of disk space`_
-* `7.32 British spelling`_
-* `7.33 No puedo hablar inglés`_
+* `7.23 Doesn't work on 32-bit Windows`_
+* `7.24 Tartube can't detect livestreams`_
+* `7.25 Livestream is already finished`_
+* `7.26 Can't hear livestream alarms`_
+* `7.27 Some icons not visible`_
+* `7.28 Video thumbnails not visible`_
+* `7.29 Graphs not visible`_
+* `7.30 Tartube is not visible in the system tray`_
+* `7.31 Tartube is not portable`_
+* `7.32 Run out of disk space`_
+* `7.33 British spelling`_
+* `7.34 No puedo hablar inglés`_
 
 7.1 Tartube won't install/won't run/doesn't work
 ------------------------------------------------
@@ -1394,7 +1396,7 @@ A: See `6.3 Setting the downloader's location`_
 
 *Q: I can't download my favourite video!*
 
-A: Make sure **youtube-dl(c)** is updated; see `6.2 Updating the downloader`_
+A: Make sure **youtube-dl** is updated; see `6.2 Updating the downloader`_
 
 Before submitting a `bug report <https://github.com/axcore/tartube/issues>`__, find out whether **Tartube** is responsible for the problem, or not. You can do this by opening a terminal window, and typing something like this:
 
@@ -1406,10 +1408,10 @@ Because most people don't like typing, **Tartube** offers a shortcut.
 
 - Click **Operations > Test youtube-dl**, or right-click a video, and select **Downloads > Test system command**
 - In the dialogue window, enter the link (URL) to the video
-- You can add more **youtube-dl(c)** download options, if you want. See `here <https://github.com/ytdl-org/youtube-dl/>`__ for a complete list of them
+- You can add more **youtube-dl** download options, if you want. See `here <https://github.com/ytdl-org/youtube-dl/>`__ for a complete list of them
 - Click the **OK** button to close the window and begin the test
 - Click the **Output** Tab to watch the test as it progresses
-- When the test is finished, a temporary directory (folder) opens, containing anything that **youtube-dl(c)** was able to download
+- When the test is finished, a temporary directory (folder) opens, containing anything that **youtube-dl** was able to download
 
 7.5 Downloads never finish
 --------------------------
@@ -1474,7 +1476,7 @@ Your new database now contains information about all the videos, but it doesn't
 
 *Q: I clicked the 'Check all' button, but the operation takes so long! It only found two new videos!*
 
-A: By default, the underlying **youtube-dl(c)** software checks an entire channel, even if it contains thousands of videos. 
+A: By default, the underlying **youtube-dl** software checks an entire channel, even if it contains thousands of videos. 
 
 You can drastically reduce the time this takes by telling **Tartube** to stop checking/downloading videos, if it receives (for example) details about three videos it has already checked/downloaded.
 
@@ -1491,7 +1493,7 @@ This works well on sites like YouTube, which send information about videos in th
 
 *Q: I clicked the 'Download all' button, but the operation takes so long! It only downloaded two new videos!*
 
-A: **youtube-dl(c)** can create an archive file especially for this purpose (namely that some channels have no new videos to download, but others have many new videos).
+A: **youtube-dl** can create an archive file especially for this purpose (namely that some channels have no new videos to download, but others have many new videos).
 
 To enable this functionality, click **Edit > System preferences... > Operations > Downloads** and click **Allow downloader to create its own archive file...** to select it. 
 
@@ -1557,7 +1559,7 @@ Firstly, make sure FFmpeg is installed on your system - see `6.4 Installing FFmp
 
 Secondly, set your desired output format. Open the Download options window (for example, click **Edit > General download options... > Formats > Preferred**). Add a format like **mp4** to the **List of preferred formats**, then add the same format to **If a merge is required after post-processing, output to this format**.
 
-For some reason, youtube-dl(c) ignores the download option unless the format is specified in both places. (You will see a warning if you forget.)
+For some reason, youtube-dl ignores the download option unless the format is specified in both places. (You will see a warning if you forget.)
 
 .. image:: screenshots/example32.png
   :alt: The Download options window
@@ -1609,7 +1611,7 @@ A: Click **Edit > System preferences... > Windows > Main window**, and then clic
 
 A: The questioner is talking about the settings in **Edit > General download options... > Advanced**.
 
-This is a **youtube-dl(c)** issue. A general solution is described in `this post <https://github.com/ytdl-org/youtube-dl/issues/21313#issuecomment-499496235>`__.
+This is a **youtube-dl** issue. A general solution is described in `this post <https://github.com/ytdl-org/youtube-dl/issues/21313#issuecomment-499496235>`__.
 
 The solution describes how to create a cookies.txt file, which can be specified as a download option. 
 
@@ -1624,7 +1626,7 @@ See also the **Tartube** thread `here <https://github.com/axcore/tartube/issues/
 
 *Q: I want to download a video, but it's blocked in my region. I set the geostriction workarounds, but I still can't download the video!*
 
-A: **youtube-dl(c)** provides some options for bypassing region-blocking. To show them, click **Edit > General download options...**, then click the **Show advanced download options** button if it's visible, then click the tabs **Advanced > Geo-restriction**. 
+A: **youtube-dl** provides some options for bypassing region-blocking. To show them, click **Edit > General download options...**, then click the **Show advanced download options** button if it's visible, then click the tabs **Advanced > Geo-restriction**. 
 
 Unfortunately, although these options exist, websites are not compelled to respect them. **YouTube**, in particular, may completely ignore them.
 
@@ -1641,7 +1643,7 @@ A: Subscribe to a `VPN <https://en.wikipedia.org/wiki/Virtual_private_network>`_
 
 A: You can specify a list of proxies (Edit > System preferences... > Operations > Proxies). During a download operation, **Tartube** will cycle between these proxies. 
 
-Unfortunately, it is not possible to switch between proxies while downloading a channel (youtube-dl(c) does not offer that functionality). But the proxy list will work well if you're trying to download ten different channels.
+Unfortunately, it is not possible to switch between proxies while downloading a channel (youtube-dl does not offer that functionality). But the proxy list will work well if you're trying to download ten different channels.
 
 7.22 MS Windows installer is too big
 ------------------------------------
@@ -1664,7 +1666,14 @@ The NSIS scripts used to create the installers can be found here:
 
 The scripts contain full instructions, so you should be able to create your own installer, which can be compared with the official one.
 
-7.23 Tartube can't detect livestreams
+7.23 Doesn't work on 32-bit Windows
+-----------------------------------
+
+*Q: Tartube does not install/work on 32-bit Windows*
+
+A: Cygwin and MSYS2 have `dropped support for 32-bit Windows <https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported>`__. This means that some Tartube features do not work on 32-bit systems and, at some point, Tartube will no longer be supported on 32-bit systems as well.
+
+7.24 Tartube can't detect livestreams
 -------------------------------------
 
 *Q: Tartube can't detect upcoming livestreams at all!*
@@ -1677,14 +1686,14 @@ If the `Python feedparser module <https://pypi.org/project/feedparser/>`__ is no
 
 The Tartube installer for 64-bit MS Windows already contains a copy of **feedparser**, so there is no need to install it again. At the time of writing, **Tartube** cannot detect livestreams on 32-bit MS Windows.
 
-7.24 Livestream is already finished
+7.25 Livestream is already finished
 -----------------------------------
 
 *Q: Tartube is showing a livestream that finished hours/days/centuries ago!*
 
 A: Right-click the video and select **Livestream > Not a livestream**.
 
-7.25 Can't hear livestream alarms
+7.26 Can't hear livestream alarms
 ---------------------------------
 
 *Q: I set an alarm for an upcoming livestream, but I didn't hear anything!*
@@ -1697,7 +1706,7 @@ If the `Python playsound module <https://pypi.org/project/playsound/>`__ is not
 
 The Tartube installer for 64-bit MS Windows already contains a copy of **playsound**, so there is no need to install it again. At the time of writing, **playsound** cannot ne installed on 32-bit MS Windows.
 
-7.26 Some icons not visible
+7.27 Some icons not visible
 ---------------------------
 
 *Q: Icons in the Videos tab are broken! They all look the same!*
@@ -1708,21 +1717,21 @@ A: **Tartube** uses a set of stock icons wherever possible. If those icons are n
 
 **Tartube** provides a set of custom icons to replace the stock ones (in an emergency). To enable them, click **Edit > System preferences... > Windows > Main window** and then click **Replace stock icons with custom icons (in case stock icons are not visible)** to select it. Click the **OK** button to close the window, then restart **Tartube**.
 
-7.27 Video thumbnails not visible
+7.28 Video thumbnails not visible
 ---------------------------------
 
 *Q: Tartube doesn't download video thumbnails any more! It used to work fine!*
 
 A: In June 2020, **YouTube** changed its image format from **.jpg** to **.webp**. Unfortunately, most software (including the graphics libraries used by **Tartube**) don't support **.webp** images yet. Worse still, **YouTube** begain sending **.webp** thumbnails mislabelled as **.jpg**.
 
-In September 2020, **Tartube** and **youtube-dl(c)** added separate fixes for this problem. These fixes both depend on `FFmpeg <https://ffmpeg.org/>`__, so they won't work if FFmpeg is not installed on your system - see `6.4 Installing FFmpeg / AVConv`_.
+In September 2020, **Tartube** and **youtube-dl** added separate fixes for this problem. These fixes both depend on `FFmpeg <https://ffmpeg.org/>`__, so they won't work if FFmpeg is not installed on your system - see `6.4 Installing FFmpeg / AVConv`_.
 
 If you have already downloaded a lot of **.webp** images, you can ask **Tartube** to convert them back to **.jpg**. Once converted, they will be visible in the main window.
 
 * Click **Operations > Tidy up files...**
 * In the dialogue window, click **Convert .webp files to .jpg using FFmpeg** to select it, then click the **OK** button
 
-7.28 Graphs not visible
+7.29 Graphs not visible
 -----------------------
 
 *Q: My buddy installed Tartube, and he showed me some download history graphs. But when I looked for that on my computer, I couldn't find them!*
@@ -1733,7 +1742,7 @@ The graphs are created by `matplotlib <https://matplotlib.org/>`__, but none of
 
 On Linux/BSD, use your system's software manager. On MS Windows, run the application **C:\Users\YOURNAME\AppData\Local\Tartube\msys64\mingw64.exe**, and in the new window type **pacman -S mingw-w64-x86_64-python-matplotlib**.
 
-7.29 Tartube is not visible in the system tray
+7.30 Tartube is not visible in the system tray
 ----------------------------------------------
 
 *Q: Tartube is not visible in the system tray! There is just an empty space where the Tartube icon should be!*
@@ -1742,7 +1751,7 @@ A: This problem exists on certain Linux desktop environments (e.g. `Cinnamon <ht
 
 Other desktop environments (e.g. `MATE <https://mate-desktop.org/>`__) display the **Tartube** icon correctly.
 
-7.30 Tartube is not portable
+7.31 Tartube is not portable
 ----------------------------
 
 *Q: I want to install Tartube on a USB stick. How do I make Tartube portable?*
@@ -1753,7 +1762,7 @@ On other operating systems, just download the source code and run it. Installati
 
 On other operating systems, **Tartube** will attempt to create a config file in the default location for your system. You should create an empty **settings.json** file in the source code directory (i.e. the one containing a **setup.py** file). This will force Tartube to save its config file there, rather than in the system's default location.
 
-7.31 Run out of disk space
+7.32 Run out of disk space
 --------------------------
 
 *Q: When I try to download videos, Tartube refuses, complaining "You have only X / Y Mb remaining on your device". But I'm using an external hard drive with over a trillion terabytes of empty space!*
@@ -1764,14 +1773,14 @@ This seems to be an issue with the virtualisation software itself (we have confi
 
 The only thing that can be done is to disable the checks and warnings altogether. Click **Edit > System preferences > Files > Device**, and deselect both **Warn user if disk space is less than** and **Halt downloads if disk space is less than**.
 
-7.32 British spelling
+7.33 British spelling
 ---------------------
 
 *Q: These British spellings are getting on my nerves!*
 
 A: Click **Edit > System preferences... > General > Language**, then click the drop-down box to select American English, and then restart **Tartube**
 
-7.33 No puedo hablar inglés
+7.34 No puedo hablar inglés
 ---------------------------
 
 *Q: ¡No puedo usar YouTube porque no hablo inglés!*
diff --git a/VERSION b/VERSION
index f225958..18161cf 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.3.097
+2.3.110
diff --git a/locale/en_US/LC_MESSAGES/base.po b/locale/en_US/LC_MESSAGES/base.po
index db726f0..55c3ae4 100644
--- a/locale/en_US/LC_MESSAGES/base.po
+++ b/locale/en_US/LC_MESSAGES/base.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-16 16:51+0000\n"
+"POT-Creation-Date: 2021-02-28 10:41+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: A S Lewis <aslewis@cpan.org>\n"
 "Language-Team: en_US\n"
@@ -36,7 +36,7 @@ msgstr ""
 msgid "Enormous"
 msgstr ""
 
-#: .././mainapp.py:945
+#: .././mainapp.py:944
 msgid ""
 "Failed to convert a thumbnail from .webp to .jpg. No more conversions will "
 "be attempted until you install FFmpeg on your system, or (if FFmpeg is "
@@ -45,651 +45,651 @@ msgid ""
 "conversions"
 msgstr ""
 
-#: .././mainapp.py:2665
+#: .././mainapp.py:2664
 msgid ""
 "Tartube can't create the folder in which its configuration file is saved"
 msgstr ""
 
 #. Load/save has been disabled. Show the error message in a dialogue
 #. window, then shut down
-#: .././mainapp.py:2712
+#: .././mainapp.py:2711
 msgid "Tartube failed to start because:"
 msgstr ""
 
-#: .././mainapp.py:2720
+#: .././mainapp.py:2719
 msgid "If you don't know how to resolve this error, please contact the authors"
 msgstr ""
 
-#: .././mainapp.py:2948
+#: .././mainapp.py:2947
 msgid "Because of an error, file load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:2957
+#: .././mainapp.py:2956
 msgid "Because of the error, file load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:3041
+#: .././mainapp.py:3040
 msgid "There is a download operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3043
+#: .././mainapp.py:3042
 msgid "There is an update operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3045
+#: .././mainapp.py:3044
 msgid "There is a refresh operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3047
+#: .././mainapp.py:3046
 msgid "There is an info operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3049
+#: .././mainapp.py:3048
 msgid "There is a tidy operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3051
+#: .././mainapp.py:3050
 msgid "There is a process operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3056
+#: .././mainapp.py:3055
 msgid "Are you sure you want to quit Tartube?"
 msgstr ""
 
-#: .././mainapp.py:3261
+#: .././mainapp.py:3260
 msgid "Failed to load the Tartube config file (failed sanity check)"
 msgstr ""
 
-#: .././mainapp.py:3284
+#: .././mainapp.py:3283
 msgid "Failed to load the Tartube config file (file is locked)"
 msgstr ""
 
-#: .././mainapp.py:3314
+#: .././mainapp.py:3313
 msgid "Failed to load the Tartube config file (JSON load failure)"
 msgstr ""
 
-#: .././mainapp.py:3332
+#: .././mainapp.py:3331
 msgid "Failed to load the Tartube config file (file is invalid)"
 msgstr ""
 
-#: .././mainapp.py:3350
+#: .././mainapp.py:3349
 msgid ""
 "Failed to load the Tartube config file (file cannot be read by this version)"
 msgstr ""
 
-#: .././mainapp.py:3365
+#: .././mainapp.py:3364
 msgid "Failed to load the Tartube config file (missing file type)"
 msgstr ""
 
-#: .././mainapp.py:4222
+#: .././mainapp.py:4221
 msgid "Failed to save the Tartube config file (failed sanity check)"
 msgstr ""
 
-#: .././mainapp.py:4542
+#: .././mainapp.py:4541
 msgid "Failed to save the Tartube config file (file is locked)"
 msgstr ""
 
-#: .././mainapp.py:4544 .././mainapp.py:4584 .././mainapp.py:5920
-#: .././mainapp.py:5976 .././mainapp.py:5982
+#: .././mainapp.py:4543 .././mainapp.py:4583 .././mainapp.py:5941
+#: .././mainapp.py:5997 .././mainapp.py:6003
 msgid "File load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:4563
+#: .././mainapp.py:4562
 msgid "Failed to save the Tartube config file (file already in use)"
 msgstr ""
 
-#: .././mainapp.py:4583
+#: .././mainapp.py:4582
 msgid "Failed to save the Tartube config file"
 msgstr ""
 
-#: .././mainapp.py:4695 .././mainapp.py:4711 .././mainapp.py:4741
+#: .././mainapp.py:4694 .././mainapp.py:4710 .././mainapp.py:4740
 msgid "Failed to load the Tartube database file"
 msgstr ""
 
-#: .././mainapp.py:4756
+#: .././mainapp.py:4755
 msgid "The Tartube database file is invalid"
 msgstr ""
 
-#: .././mainapp.py:4772
+#: .././mainapp.py:4771
 msgid "Database file can't be read by this version of Tartube"
 msgstr ""
 
-#: .././mainapp.py:5117
+#: .././mainapp.py:5116
 msgid "Tartube is applying an essential database update"
 msgstr ""
 
-#: .././mainapp.py:5119
+#: .././mainapp.py:5118
 msgid "This might take a few minutes, so please be patient"
 msgstr ""
 
-#: .././mainapp.py:5914 .././mainapp.py:5972 .././mainapp.py:5981
+#: .././mainapp.py:5935 .././mainapp.py:5993 .././mainapp.py:6002
 msgid "Failed to save the Tartube database file"
 msgstr ""
 
-#: .././mainapp.py:5917
+#: .././mainapp.py:5938
 msgid "(Could not make a backup copy of the existing file)"
 msgstr ""
 
-#: .././mainapp.py:5953
+#: .././mainapp.py:5974
 msgid "Failed to save the Tartube database file (file already in use)"
 msgstr ""
 
-#: .././mainapp.py:5974
+#: .././mainapp.py:5995
 msgid "A backup of the previous file can be found at:"
 msgstr ""
 
-#: .././mainapp.py:6155 .././mainapp.py:6165
+#: .././mainapp.py:6176 .././mainapp.py:6186
 msgid "Database file created"
 msgstr ""
 
-#: .././mainapp.py:6559
+#: .././mainapp.py:6580
 msgid "Tartube's database can't be checked while an operation is in progress"
 msgstr ""
 
-#: .././mainapp.py:6795
+#: .././mainapp.py:6816
 msgid "Database check complete, no inconsistencies found"
 msgstr ""
 
-#: .././mainapp.py:6827
+#: .././mainapp.py:6848
 msgid "Database check complete, problems found:"
 msgstr ""
 
-#: .././mainapp.py:6830
+#: .././mainapp.py:6851
 msgid ""
 "Do you want to repair these problems? (The database will be fixed, but no "
 "files will be deleted)"
 msgstr ""
 
-#: .././mainapp.py:7003
+#: .././mainapp.py:7024
 msgid "Database inconsistencies repaired"
 msgstr ""
 
-#: .././mainapp.py:7895 .././config.py:16026
+#: .././mainapp.py:7918 .././config.py:16057
 msgid "Please select Tartube's data folder"
 msgstr ""
 
-#: .././mainapp.py:8258
+#: .././mainapp.py:8281
 msgid ""
 "A download operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:8282 .././mainapp.py:8307
+#: .././mainapp.py:8305 .././mainapp.py:8330
 #, python-brace-format
 msgid "You only have {0} / {1} Mb remaining on your device"
 msgstr ""
 
-#: .././mainapp.py:8310 .././mainapp.py:13970 .././mainapp.py:14086
-#: .././mainapp.py:14268 .././mainwin.py:17484
+#: .././mainapp.py:8333 .././mainapp.py:14006 .././mainapp.py:14122
+#: .././mainapp.py:14304 .././mainwin.py:17484
 msgid "Are you sure you want to continue?"
 msgstr ""
 
-#: .././mainapp.py:8397
+#: .././mainapp.py:8420
 msgid "There is nothing to check!"
 msgstr ""
 
-#: .././mainapp.py:8399
+#: .././mainapp.py:8422
 msgid "There is nothing to download!"
 msgstr ""
 
-#: .././mainapp.py:8642
+#: .././mainapp.py:8665
 msgid "Download operation complete"
 msgstr ""
 
-#: .././mainapp.py:8644
+#: .././mainapp.py:8667
 msgid "Download operation halted"
 msgstr ""
 
-#: .././mainapp.py:8648
+#: .././mainapp.py:8671
 msgid "Videos downloaded:"
 msgstr ""
 
-#: .././mainapp.py:8649
+#: .././mainapp.py:8672
 msgid "Videos checked:"
 msgstr ""
 
-#: .././mainapp.py:8652 .././mainapp.py:9253 .././mainapp.py:9747
-#: .././mainapp.py:10147
+#: .././mainapp.py:8675 .././mainapp.py:9276 .././mainapp.py:9770
+#: .././mainapp.py:10170
 msgid "Time taken:"
 msgstr ""
 
-#: .././mainapp.py:8757
+#: .././mainapp.py:8780
 msgid ""
 "An update operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:8943
+#: .././mainapp.py:8966
 msgid "Installation failed"
 msgstr ""
 
-#: .././mainapp.py:8945
+#: .././mainapp.py:8968
 msgid "Installation complete"
 msgstr ""
 
-#: .././mainapp.py:8949
+#: .././mainapp.py:8972
 msgid "Update operation failed"
 msgstr ""
 
-#: .././mainapp.py:8951
+#: .././mainapp.py:8974
 msgid "Update operation halted"
 msgstr ""
 
-#: .././mainapp.py:8953
+#: .././mainapp.py:8976
 msgid "Update operation complete"
 msgstr ""
 
-#: .././mainapp.py:8955
+#: .././mainapp.py:8978
 msgid "version:"
 msgstr ""
 
-#: .././mainapp.py:8959
+#: .././mainapp.py:8982
 msgid "(unknown)"
 msgstr ""
 
-#: .././mainapp.py:9046
+#: .././mainapp.py:9069
 msgid ""
 "A refresh operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:9059
+#: .././mainapp.py:9082
 msgid ""
 "During a refresh operation, Tartube analyses its data folder, looking for "
 "videos that haven't yet been added to its database"
 msgstr ""
 
-#: .././mainapp.py:9063
+#: .././mainapp.py:9086
 msgid ""
 "You only need to perform a refresh operation if you have manually copied "
 "videos into Tartube's data folder"
 msgstr ""
 
-#: .././mainapp.py:9070
+#: .././mainapp.py:9093
 msgid ""
 "Before starting a refresh operation, you should click the 'Check all' button "
 "in the main window"
 msgstr ""
 
-#: .././mainapp.py:9077
+#: .././mainapp.py:9100
 msgid ""
 "Before starting a refresh operation, you should right-click the channel and "
 "select 'Check channel'"
 msgstr ""
 
-#: .././mainapp.py:9084
+#: .././mainapp.py:9107
 msgid ""
 "Before starting a refresh operation, you should right-click the playlist and "
 "select 'Check playlist'"
 msgstr ""
 
-#: .././mainapp.py:9091
+#: .././mainapp.py:9114
 msgid ""
 "Before starting a refresh operation, you should right-click the folder and "
 "select 'Check folder'"
 msgstr ""
 
-#: .././mainapp.py:9096
+#: .././mainapp.py:9119
 msgid "Are you sure you want to proceed with the refresh operation?"
 msgstr ""
 
-#: .././mainapp.py:9248
+#: .././mainapp.py:9271
 msgid "Refresh operation complete"
 msgstr ""
 
-#: .././mainapp.py:9250
+#: .././mainapp.py:9273
 msgid "Refresh operation halted"
 msgstr ""
 
-#: .././mainapp.py:9355
+#: .././mainapp.py:9378
 msgid ""
 "An info operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:9471
+#: .././mainapp.py:9494
 msgid "Operation failed"
 msgstr ""
 
-#: .././mainapp.py:9473 .././downloads.py:400
+#: .././mainapp.py:9496 .././downloads.py:400
 msgid "Operation complete"
 msgstr ""
 
-#: .././mainapp.py:9475
+#: .././mainapp.py:9498
 msgid "Click the Output Tab to see the results"
 msgstr ""
 
-#: .././mainapp.py:9488
+#: .././mainapp.py:9511
 msgid "A new release is available!"
 msgstr ""
 
-#: .././mainapp.py:9490
+#: .././mainapp.py:9513
 msgid "Your installation is up to date!"
 msgstr ""
 
-#: .././mainapp.py:9492
+#: .././mainapp.py:9515
 msgid "Installed version:"
 msgstr ""
 
-#: .././mainapp.py:9497
+#: .././mainapp.py:9520
 msgid "Stable release:"
 msgstr ""
 
-#: .././mainapp.py:9502
+#: .././mainapp.py:9525
 msgid "Stable release: not found"
 msgstr ""
 
-#: .././mainapp.py:9505
+#: .././mainapp.py:9528
 msgid "Development release:"
 msgstr ""
 
-#: .././mainapp.py:9507
+#: .././mainapp.py:9530
 msgid "Development release: not found"
 msgstr ""
 
-#: .././mainapp.py:9614
+#: .././mainapp.py:9637
 msgid ""
 "A tidy operation cannot start if one or more configuration windows are still "
 "open"
 msgstr ""
 
-#: .././mainapp.py:9742
+#: .././mainapp.py:9765
 msgid "Tidy operation complete"
 msgstr ""
 
-#: .././mainapp.py:9744
+#: .././mainapp.py:9767
 msgid "Tidy operation halted"
 msgstr ""
 
-#: .././mainapp.py:9911 .././mainwin.py:18169
+#: .././mainapp.py:9934 .././mainwin.py:18169
 msgid "Livestream has started"
 msgstr ""
 
-#: .././mainapp.py:10136
+#: .././mainapp.py:10159
 msgid "Process operation complete"
 msgstr ""
 
-#: .././mainapp.py:10138
+#: .././mainapp.py:10161
 msgid "Process operation halted"
 msgstr ""
 
-#: .././mainapp.py:10142
+#: .././mainapp.py:10165
 msgid "Files processed:"
 msgstr ""
 
-#: .././mainapp.py:10143
+#: .././mainapp.py:10166
 msgid "Errors:"
 msgstr ""
 
-#: .././mainapp.py:11403 .././mainapp.py:11578
+#: .././mainapp.py:11435 .././mainapp.py:11610
 msgid "Cannot move anything to:"
 msgstr ""
 
-#: .././mainapp.py:11405 .././mainapp.py:11580
+#: .././mainapp.py:11437 .././mainapp.py:11612
 msgid ""
 "because a file or folder with the same name already exists (although "
 "Tartube's database doesn't know anything about it)"
 msgstr ""
 
-#: .././mainapp.py:11409
+#: .././mainapp.py:11441
 msgid ""
 "You probably created that file/folder accidentally, in which case you should "
 "delete it manually before trying again"
 msgstr ""
 
-#: .././mainapp.py:11423 .././mainapp.py:11598
+#: .././mainapp.py:11455 .././mainapp.py:11630
 msgid "Are you sure you want to move this channel:"
 msgstr ""
 
-#: .././mainapp.py:11425 .././mainapp.py:11600
+#: .././mainapp.py:11457 .././mainapp.py:11632
 msgid "Are you sure you want to move this playlist:"
 msgstr ""
 
-#: .././mainapp.py:11427 .././mainapp.py:11602
+#: .././mainapp.py:11459 .././mainapp.py:11634
 msgid "Are you sure you want to move this folder:"
 msgstr ""
 
-#: .././mainapp.py:11432
+#: .././mainapp.py:11464
 msgid ""
 "This procedure will move all downloaded files to the top level of Tartube's "
 "data folder"
 msgstr ""
 
-#: .././mainapp.py:11532
+#: .././mainapp.py:11564
 msgid "Channels, playlists and folders can only be dragged into a folder"
 msgstr ""
 
-#: .././mainapp.py:11545
+#: .././mainapp.py:11577
 #, python-brace-format
 msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)"
 msgstr ""
 
-#: .././mainapp.py:11558
+#: .././mainapp.py:11590
 #, python-brace-format
 msgid "The folder '{0}' can only contain videos"
 msgstr ""
 
-#: .././mainapp.py:11585
+#: .././mainapp.py:11617
 msgid ""
 "You probably created that file/folder accidentally, in which case, you "
 "should delete it manually before trying again"
 msgstr ""
 
-#: .././mainapp.py:11604
+#: .././mainapp.py:11636
 msgid "into this folder:"
 msgstr ""
 
-#: .././mainapp.py:11608
+#: .././mainapp.py:11640
 msgid "This procedure will move all downloaded files to the new location"
 msgstr ""
 
-#: .././mainapp.py:11614
+#: .././mainapp.py:11646
 msgid ""
 "WARNING: The destination folder is marked as temporary, so everything inside "
 "it will be DELETED when Tartube restarts!"
 msgstr ""
 
-#: .././mainapp.py:12078
+#: .././mainapp.py:12114
 msgid ""
 "Are you SURE you want to delete files? This procedure cannot be reversed!"
 msgstr ""
 
-#: .././mainapp.py:13954 .././mainapp.py:14070 .././mainapp.py:14252
+#: .././mainapp.py:13990 .././mainapp.py:14106 .././mainapp.py:14288
 #, python-brace-format
 msgid "The channel contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:13960 .././mainapp.py:14076 .././mainapp.py:14258
+#: .././mainapp.py:13996 .././mainapp.py:14112 .././mainapp.py:14294
 #, python-brace-format
 msgid "The playlist contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:13966 .././mainapp.py:14082 .././mainapp.py:14264
+#: .././mainapp.py:14002 .././mainapp.py:14118 .././mainapp.py:14300
 #, python-brace-format
 msgid "The folder contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:14332 .././mainapp.py:18504 .././mainapp.py:18636
-#: .././mainapp.py:18767
+#: .././mainapp.py:14368 .././mainapp.py:18540 .././mainapp.py:18672
+#: .././mainapp.py:18803
 #, python-brace-format
 msgid "The name '{0}' is not allowed"
 msgstr ""
 
-#: .././mainapp.py:14341
+#: .././mainapp.py:14377
 #, python-brace-format
 msgid "The name '{0}' is already in use"
 msgstr ""
 
-#: .././mainapp.py:14354
+#: .././mainapp.py:14390
 #, python-brace-format
 msgid "Failed to rename '{0}'"
 msgstr ""
 
-#: .././mainapp.py:14701
+#: .././mainapp.py:14737
 msgid "Select where to save the database export"
 msgstr ""
 
-#: .././mainapp.py:14822
+#: .././mainapp.py:14858
 msgid "There is nothing to export!"
 msgstr ""
 
-#: .././mainapp.py:14862 .././mainapp.py:14928
+#: .././mainapp.py:14898 .././mainapp.py:14964
 msgid "Failed to save the database export file:"
 msgstr ""
 
-#: .././mainapp.py:14936
+#: .././mainapp.py:14972
 msgid "Database export file saved to:"
 msgstr ""
 
-#: .././mainapp.py:14973
+#: .././mainapp.py:15009
 msgid "Select the database export"
 msgstr ""
 
-#: .././mainapp.py:14994 .././mainapp.py:15008
+#: .././mainapp.py:15030 .././mainapp.py:15044
 msgid "Failed to load the database export file"
 msgstr ""
 
-#: .././mainapp.py:15025
+#: .././mainapp.py:15061
 msgid "The database export file is invalid"
 msgstr ""
 
-#: .././mainapp.py:15036
+#: .././mainapp.py:15072
 msgid "The database export file is invalid (or empty)"
 msgstr ""
 
-#: .././mainapp.py:15080
+#: .././mainapp.py:15116
 msgid "Nothing was imported from the database export file"
 msgstr ""
 
 #. Show a confirmation
-#: .././mainapp.py:15094
+#: .././mainapp.py:15130
 msgid "Imported"
 msgstr ""
 
-#: .././mainapp.py:15095 .././mainwin.py:1287 .././config.py:888
-#: .././config.py:9274 .././config.py:11492
+#: .././mainapp.py:15131 .././mainwin.py:1287 .././config.py:888
+#: .././config.py:9305 .././config.py:11523
 msgid "Videos"
 msgstr ""
 
-#: .././mainapp.py:15096 .././config.py:9307 .././config.py:11525
+#: .././mainapp.py:15132 .././config.py:9338 .././config.py:11556
 msgid "Channels"
 msgstr ""
 
-#: .././mainapp.py:15097 .././config.py:9318 .././config.py:11536
+#: .././mainapp.py:15133 .././config.py:9349 .././config.py:11567
 msgid "Playlists"
 msgstr ""
 
-#: .././mainapp.py:15098
+#: .././mainapp.py:15134
 msgid "Folders"
 msgstr ""
 
-#: .././mainapp.py:15482
+#: .././mainapp.py:15518
 msgid ""
 "The video file is missing from Tartube's data folder (try downloading the "
 "video again!)"
 msgstr ""
 
-#: .././mainapp.py:16007 .././mainapp.py:16389
+#: .././mainapp.py:16043 .././mainapp.py:16425
 msgid "Select where to save the options export"
 msgstr ""
 
-#: .././mainapp.py:16055 .././mainapp.py:16437
+#: .././mainapp.py:16091 .././mainapp.py:16473
 msgid "Failed to save the options export file:"
 msgstr ""
 
-#: .././mainapp.py:16063
+#: .././mainapp.py:16099
 msgid "Download options exported to to:"
 msgstr ""
 
-#: .././mainapp.py:16094 .././mainapp.py:16476
+#: .././mainapp.py:16130 .././mainapp.py:16512
 msgid "Select the options export file"
 msgstr ""
 
-#: .././mainapp.py:16113 .././mainapp.py:16495
+#: .././mainapp.py:16149 .././mainapp.py:16531
 msgid "Failed to load the options export file"
 msgstr ""
 
-#: .././mainapp.py:16130 .././mainapp.py:16512
+#: .././mainapp.py:16166 .././mainapp.py:16548
 msgid "The options export file is invalid"
 msgstr ""
 
-#: .././mainapp.py:16141 .././mainapp.py:16523
+#: .././mainapp.py:16177 .././mainapp.py:16559
 msgid "The options export file is invalid (or empty)"
 msgstr ""
 
-#: .././mainapp.py:16445
+#: .././mainapp.py:16481
 msgid "FFmpeg options exported to to:"
 msgstr ""
 
-#: .././mainapp.py:17419
+#: .././mainapp.py:17455
 msgid "Please select a destination folder"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17491
+#: .././mainapp.py:17527
 msgid "Are you sure you want to clear this list?"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17538
+#: .././mainapp.py:17574
 msgid "Are you sure you want to clear downloaded videos?"
 msgstr ""
 
-#: .././mainapp.py:17631 .././mainwin.py:14535
+#: .././mainapp.py:17667 .././mainwin.py:14535
 msgid "Only checked/downloaded videos can be processed by FFmpeg"
 msgstr ""
 
-#: .././mainapp.py:17748
+#: .././mainapp.py:17784
 msgid "No video(s) have been downloaded"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17846
+#: .././mainapp.py:17882
 msgid "Are you sure you want to remove the selected item(s)?"
 msgstr ""
 
-#: .././mainapp.py:18495
+#: .././mainapp.py:18531
 msgid "You must give the channel a name"
 msgstr ""
 
-#: .././mainapp.py:18513 .././mainapp.py:18776
+#: .././mainapp.py:18549 .././mainapp.py:18812
 msgid "You must enter a valid URL"
 msgstr ""
 
-#: .././mainapp.py:18628
+#: .././mainapp.py:18664
 msgid "You must give the folder a name"
 msgstr ""
 
-#: .././mainapp.py:18758
+#: .././mainapp.py:18794
 msgid "You must give the playlist a name"
 msgstr ""
 
-#: .././mainapp.py:18913
+#: .././mainapp.py:18949
 msgid "The following videos are duplicates:"
 msgstr ""
 
-#: .././mainapp.py:18977
+#: .././mainapp.py:19013
 msgid "There were no livestream alerts to cancel"
 msgstr ""
 
-#: .././mainapp.py:18979
+#: .././mainapp.py:19015
 msgid "Livestream alerts for 1 video were cancelled"
 msgstr "Livestream alerts for 1 video were canceled"
 
-#: .././mainapp.py:18982
+#: .././mainapp.py:19018
 #, python-brace-format
 msgid "Livestream alerts for {0} videos were cancelled"
 msgstr "Livestream alerts for {0} videos were canceled"
 
-#: .././mainapp.py:19352
+#: .././mainapp.py:19388
 msgid "All Tartube data has been saved"
 msgstr ""
 
-#: .././mainapp.py:19382
+#: .././mainapp.py:19418
 msgid "Database saved"
 msgstr ""
 
-#: .././mainapp.py:19637 .././mainwin.py:13487
+#: .././mainapp.py:19673 .././mainwin.py:13487
 msgid ""
 "Files cannot be recovered, after being deleted. Are you sure you want to "
 "continue?"
@@ -698,39 +698,39 @@ msgstr ""
 #. Because livestream operations run silently in the background, when
 #. the user goes to the trouble of clicking a menu item in the
 #. main window's menu, tell them why nothing is happening
-#: .././mainapp.py:19677
+#: .././mainapp.py:19713
 msgid "Cannot update existing livestreams because"
 msgstr ""
 
-#: .././mainapp.py:19679
+#: .././mainapp.py:19715
 msgid "there is another operation running"
 msgstr ""
 
-#: .././mainapp.py:19681
+#: .././mainapp.py:19717
 msgid "they are currently being updated"
 msgstr ""
 
-#: .././mainapp.py:19683
+#: .././mainapp.py:19719
 msgid "one or more configuration windows are open"
 msgstr ""
 
-#: .././mainapp.py:19685
+#: .././mainapp.py:19721
 msgid "there are no livestreams to update"
 msgstr ""
 
-#: .././mainapp.py:19759
+#: .././mainapp.py:19795
 msgid "There is already a channel with that name"
 msgstr ""
 
-#: .././mainapp.py:19761
+#: .././mainapp.py:19797
 msgid "There is already a playlist with that name"
 msgstr ""
 
-#: .././mainapp.py:19763
+#: .././mainapp.py:19799
 msgid "There is already a folder with that name"
 msgstr ""
 
-#: .././mainapp.py:19766
+#: .././mainapp.py:19802
 msgid "(so please choose a different name)"
 msgstr ""
 
@@ -739,7 +739,7 @@ msgid "Tartube cannot start because it cannot find its icons folder"
 msgstr ""
 
 #. File column
-#: .././mainwin.py:943 .././config.py:6357
+#: .././mainwin.py:943 .././config.py:6359
 msgid "_File"
 msgstr ""
 
@@ -782,7 +782,7 @@ msgid "_General download options..."
 msgstr ""
 
 #. Media column
-#: .././mainwin.py:1009 .././config.py:9834
+#: .././mainwin.py:1009 .././config.py:9865
 msgid "_Media"
 msgstr ""
 
@@ -840,7 +840,7 @@ msgstr ""
 
 #. Operations column
 #. Add this tab...
-#: .././mainwin.py:1115 .././config.py:12776
+#: .././mainwin.py:1115 .././config.py:12807
 msgid "_Operations"
 msgstr ""
 
@@ -883,7 +883,7 @@ msgid "_Stop current operation"
 msgstr ""
 
 #. Livestreams column
-#: .././mainwin.py:1195 .././config.py:13480
+#: .././mainwin.py:1195 .././config.py:13511
 msgid "_Livestreams"
 msgstr ""
 
@@ -966,7 +966,7 @@ msgstr ""
 #: .././mainwin.py:1393 .././mainwin.py:19371 .././mainwin.py:19376
 #: .././mainwin.py:19384 .././mainwin.py:19633 .././mainwin.py:19645
 #: .././mainwin.py:20380 .././mainwin.py:21727 .././mainwin.py:21753
-#: .././config.py:12481
+#: .././config.py:12512
 msgid "Download"
 msgstr ""
 
@@ -983,7 +983,7 @@ msgstr ""
 msgid "Stop the current operation"
 msgstr ""
 
-#: .././mainwin.py:1443 .././config.py:11068
+#: .././mainwin.py:1443 .././config.py:11099
 msgid "Switch"
 msgstr ""
 
@@ -1015,8 +1015,8 @@ msgstr ""
 msgid "Close Tartube"
 msgstr ""
 
-#: .././mainwin.py:1532 .././config.py:7115 .././config.py:11292
-#: .././config.py:11890
+#: .././mainwin.py:1532 .././config.py:7146 .././config.py:11323
+#: .././config.py:11921
 msgid "_Videos"
 msgstr ""
 
@@ -1032,7 +1032,7 @@ msgstr ""
 msgid "_Output"
 msgstr ""
 
-#: .././mainwin.py:1566 .././config.py:8450 .././config.py:8956
+#: .././mainwin.py:1566 .././config.py:8481 .././config.py:8987
 msgid "_Errors / Warnings"
 msgstr ""
 
@@ -1093,12 +1093,12 @@ msgstr ""
 msgid "Sort"
 msgstr ""
 
-#: .././mainwin.py:1875 .././config.py:8235
+#: .././mainwin.py:1875 .././config.py:8266
 msgid "Upload time"
 msgstr ""
 
-#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7138
-#: .././config.py:12481 .././config.py:14402 .././config.py:14669
+#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7169
+#: .././config.py:12512 .././config.py:14433 .././config.py:14700
 msgid "Name"
 msgstr ""
 
@@ -1190,11 +1190,11 @@ msgstr ""
 msgid "ETA"
 msgstr ""
 
-#: .././mainwin.py:2219 .././config.py:8821
+#: .././mainwin.py:2219 .././config.py:8852
 msgid "New videos"
 msgstr ""
 
-#: .././mainwin.py:2219 .././config.py:404 .././config.py:8191
+#: .././mainwin.py:2219 .././config.py:404 .././config.py:8222
 msgid "Duration"
 msgstr ""
 
@@ -1202,7 +1202,7 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: .././mainwin.py:2220 .././config.py:8147
+#: .././mainwin.py:2220 .././config.py:8178
 msgid "File"
 msgstr ""
 
@@ -1272,7 +1272,7 @@ msgstr ""
 msgid "Format:"
 msgstr ""
 
-#: .././mainwin.py:2591 .././config.py:14402
+#: .././mainwin.py:2591 .././config.py:14433
 msgid "Default"
 msgstr ""
 
@@ -1301,14 +1301,14 @@ msgid "Play video"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11105
-#: .././config.py:12546
+#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11136
+#: .././config.py:12577
 msgid "Move up"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11113
-#: .././config.py:12555
+#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11144
+#: .././config.py:12586
 msgid "Move down"
 msgstr ""
 
@@ -1344,7 +1344,7 @@ msgstr ""
 msgid "Maximum page size"
 msgstr ""
 
-#: .././mainwin.py:3017 .././config.py:12481
+#: .././mainwin.py:3017 .././config.py:12512
 msgid "Time"
 msgstr ""
 
@@ -1372,7 +1372,7 @@ msgstr ""
 msgid "Show server warnings"
 msgstr ""
 
-#: .././mainwin.py:3113 .././config.py:9936
+#: .././mainwin.py:3113 .././config.py:9967
 msgid "Clear list"
 msgstr ""
 
@@ -1725,7 +1725,7 @@ msgstr ""
 msgid "Not a _livestream"
 msgstr ""
 
-#: .././mainwin.py:5295 .././config.py:8310
+#: .././mainwin.py:5295 .././config.py:8341
 msgid "_Livestream"
 msgstr ""
 
@@ -2391,8 +2391,8 @@ msgstr ""
 #. this function returns. Workaround is to make the label unclickable,
 #. then use a Glib timer to restore it (after some small fraction of a
 #. second)
-#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9296
-#: .././config.py:11514
+#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9327
+#: .././config.py:11545
 msgid "Other"
 msgstr ""
 
@@ -2731,7 +2731,7 @@ msgstr ""
 msgid "This playlist contains:"
 msgstr ""
 
-#: .././mainwin.py:24726 .././config.py:9269
+#: .././mainwin.py:24726 .././config.py:9300
 msgid "This folder contains:"
 msgstr ""
 
@@ -2885,7 +2885,7 @@ msgstr ""
 msgid "Choose which items to import"
 msgstr ""
 
-#: .././mainwin.py:25104 .././config.py:14454 .././config.py:14719
+#: .././mainwin.py:25104 .././config.py:14485 .././config.py:14750
 msgid "Import"
 msgstr ""
 
@@ -2949,7 +2949,7 @@ msgstr ""
 
 #. 'OK' button
 #: .././mainwin.py:25521 .././config.py:1035 .././config.py:2242
-#: .././config.py:7694 .././config.py:7828
+#: .././config.py:7725 .././config.py:7859
 msgid "OK"
 msgstr ""
 
@@ -3133,7 +3133,7 @@ msgstr ""
 msgid "Copy to clipboard"
 msgstr ""
 
-#: .././mainwin.py:26846 .././config.py:13749
+#: .././mainwin.py:26846 .././config.py:13780
 msgid "Test"
 msgstr ""
 
@@ -3227,7 +3227,7 @@ msgstr ""
 msgid "Uploads"
 msgstr ""
 
-#: .././config.py:403 .././config.py:8214
+#: .././config.py:403 .././config.py:8245
 msgid "File size"
 msgstr ""
 
@@ -3305,8 +3305,8 @@ msgstr ""
 
 #. 'Reset' button
 #. (Signal connect appears below)
-#: .././config.py:1017 .././config.py:3306 .././config.py:14214
-#: .././config.py:14255 .././config.py:14325
+#: .././config.py:1017 .././config.py:3306 .././config.py:14245
+#: .././config.py:14286 .././config.py:14356
 msgid "Reset"
 msgstr ""
 
@@ -3323,7 +3323,7 @@ msgstr ""
 msgid "Apply changes without closing the window"
 msgstr ""
 
-#: .././config.py:1038 .././config.py:7697 .././config.py:7831
+#: .././config.py:1038 .././config.py:7728 .././config.py:7862
 msgid "Apply changes"
 msgstr ""
 
@@ -3380,7 +3380,7 @@ msgstr ""
 msgid "Close this window"
 msgstr ""
 
-#: .././config.py:2869 .././config.py:6260
+#: .././config.py:2869 .././config.py:6262
 msgid "_Name"
 msgstr ""
 
@@ -3425,7 +3425,7 @@ msgid "Completely reset all download options to their default values"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:3000 .././config.py:10878
+#: .././config.py:3000 .././config.py:10909
 msgid "_Files"
 msgstr ""
 
@@ -3449,7 +3449,7 @@ msgstr ""
 msgid "Add to template:"
 msgstr ""
 
-#: .././config.py:3083 .././config.py:8018
+#: .././config.py:3083 .././config.py:8049
 msgid "Video properties"
 msgstr ""
 
@@ -3493,10 +3493,14 @@ msgstr ""
 msgid "Creator/uploader"
 msgstr ""
 
-#: .././config.py:3098 .././config.py:3099
+#: .././config.py:3098
 msgid "Full name of video uploader"
 msgstr ""
 
+#: .././config.py:3099
+msgid "Uploader ID"
+msgstr ""
+
 #: .././config.py:3100
 msgid "Nickname/ID of video uploader"
 msgstr ""
@@ -3605,8 +3609,8 @@ msgstr ""
 msgid "Number of comments"
 msgstr ""
 
-#: .././config.py:3170 .././config.py:9916 .././config.py:12528
-#: .././config.py:14445 .././config.py:14710
+#: .././config.py:3170 .././config.py:9947 .././config.py:12559
+#: .././config.py:14476 .././config.py:14741
 msgid "Add"
 msgstr ""
 
@@ -3647,8 +3651,8 @@ msgid "Path to the downloader's cookie jar file"
 msgstr ""
 
 #: .././config.py:3302 .././config.py:4927 .././config.py:4947
-#: .././config.py:4967 .././config.py:14111 .././config.py:14210
-#: .././config.py:14251 .././config.py:14321
+#: .././config.py:4967 .././config.py:14142 .././config.py:14241
+#: .././config.py:14282 .././config.py:14352
 msgid "Set"
 msgstr ""
 
@@ -3711,19 +3715,19 @@ msgid "Options during real (not simulated) downloads"
 msgstr ""
 
 #: .././config.py:3450 .././config.py:3481
-msgid "Keep the description file after Tartube shuts down"
+msgid "Keep the description file after the download has finished"
 msgstr ""
 
 #: .././config.py:3456 .././config.py:3487
-msgid "Keep the metadata file after Tartube shuts down"
+msgid "Keep the metadata file after the download has finished"
 msgstr ""
 
 #: .././config.py:3462 .././config.py:3493
-msgid "Keep the annotations file after Tartube shuts down"
+msgid "Keep the annotations file after the download has finished"
 msgstr ""
 
 #: .././config.py:3468 .././config.py:3499
-msgid "Keep the thumbnail file after Tartube shuts down"
+msgid "Keep the thumbnail file after the download has finished"
 msgstr ""
 
 #: .././config.py:3475
@@ -3814,7 +3818,7 @@ msgid "Do not download DASH-related data for YouTube videos"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:3790 .././config.py:3809 .././config.py:13113
+#: .././config.py:3790 .././config.py:3809 .././config.py:13144
 msgid "_Downloads"
 msgstr ""
 
@@ -4246,8 +4250,8 @@ msgstr ""
 msgid "Arguments to pass to external downloader"
 msgstr ""
 
-#: .././config.py:5168 .././config.py:5658 .././config.py:7355
-#: .././config.py:7603
+#: .././config.py:5168 .././config.py:5658 .././config.py:7386
+#: .././config.py:7634
 msgid "This procedure cannot be reversed. Are you sure you want to continue?"
 msgstr ""
 
@@ -4286,120 +4290,120 @@ msgid "FFmpeg options"
 msgstr ""
 
 #. Replace the 'OK' button with a 'Process files' button
-#: .././config.py:6246 .././config.py:7776
+#: .././config.py:6248 .././config.py:7807
 msgid "Process files"
 msgstr ""
 
-#: .././config.py:6248 .././config.py:7778
+#: .././config.py:6250 .././config.py:7809
 msgid "Process the files with FFmpeg"
 msgstr ""
 
-#: .././config.py:6265
+#: .././config.py:6267
 msgid "Name for these FFmpeg options"
 msgstr ""
 
-#: .././config.py:6275
+#: .././config.py:6277
 msgid "Extra command line options (e.g. --help)"
 msgstr ""
 
-#: .././config.py:6286
+#: .././config.py:6288
 msgid "System command, based on all FFmpeg options in this window:"
 msgstr ""
 
-#: .././config.py:6317
+#: .././config.py:6319
 msgid "Show fewer FFmpeg options"
 msgstr ""
 
-#: .././config.py:6319
+#: .././config.py:6321
 msgid "Show more FFmpeg options"
 msgstr ""
 
-#: .././config.py:6329
+#: .././config.py:6331
 msgid "Import current FFmpeg options into this window"
 msgstr ""
 
-#: .././config.py:6344
+#: .././config.py:6346
 msgid "Completely reset all FFmpeg options to their default values"
 msgstr ""
 
-#: .././config.py:6360
+#: .././config.py:6362
 msgid "Add to end of filename:"
 msgstr ""
 
-#: .././config.py:6370
+#: .././config.py:6372
 msgid "If regex matches filename:"
 msgstr ""
 
-#: .././config.py:6384
+#: .././config.py:6386
 msgid "...then apply substitution:"
 msgstr ""
 
-#: .././config.py:6397
+#: .././config.py:6399
 msgid ""
 "If the video/audio file is renamed, also rename the thumbnail (but not vice-"
 "versa)"
 msgstr ""
 
-#: .././config.py:6408
+#: .././config.py:6410
 msgid "Change file extension:"
 msgstr ""
 
-#: .././config.py:6422
+#: .././config.py:6424
 msgid "After changing the file extension, delete the original file"
 msgstr ""
 
-#: .././config.py:6448
+#: .././config.py:6450
 msgid "_Settings"
 msgstr ""
 
-#: .././config.py:6455
+#: .././config.py:6457
 msgid "Source file"
 msgstr ""
 
-#: .././config.py:6462
+#: .././config.py:6464
 msgid "Downloaded video/audio"
 msgstr ""
 
-#: .././config.py:6471
+#: .././config.py:6473
 msgid "with audio"
 msgstr ""
 
-#: .././config.py:6484
+#: .././config.py:6486
 msgid "Video thumbnail"
 msgstr ""
 
-#: .././config.py:6503
+#: .././config.py:6505
 msgid "Output file"
 msgstr ""
 
-#: .././config.py:6630
+#: .././config.py:6632
 msgid "Audio bitrate"
 msgstr ""
 
-#: .././config.py:6644
+#: .././config.py:6646
 msgid "How to set the quality"
 msgstr ""
 
-#: .././config.py:6649
+#: .././config.py:6651
 msgid ""
 "FFmpeg always encodes according to a Rate Factor that specifies the quality "
 "of the result."
 msgstr ""
 
-#: .././config.py:6652
+#: .././config.py:6654
 msgid ""
 "Instead of directly specifying the Rate Factor, an average bit rate can be "
 "specified. FFmpeg will then determine the optimal Rate Factor in a first "
 "pass."
 msgstr ""
 
-#: .././config.py:6656
+#: .././config.py:6658
 msgid ""
 "In fact the first pass is only used for determining the Rate Factor, no "
 "other data is carried over into the second pass."
 msgstr ""
 
-#: .././config.py:6659
+#: .././config.py:6661
 msgid ""
 "Specifying an average bitrate but running only one pass is possible, but not "
 "recommended. FFmpeg would then encode the beginning of the video with a "
@@ -4407,1916 +4411,1924 @@ msgid ""
 "eventually reach the target bitrate."
 msgstr ""
 
-#: .././config.py:6672
+#: .././config.py:6674
 msgid "Manual rate factor"
 msgstr ""
 
-#: .././config.py:6681
+#: .././config.py:6683
 msgid "Determine from target bitrate (2-Pass)"
 msgstr ""
 
-#: .././config.py:6691
+#: .././config.py:6693
 msgid "Rate factor"
 msgstr ""
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Lossless"
 msgstr ""
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Large file"
 msgstr ""
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Bad quality"
 msgstr ""
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Small file"
 msgstr ""
 
-#: .././config.py:6732
+#: .././config.py:6734
 msgid "Name of dummy file"
 msgstr ""
 
-#: .././config.py:6736
+#: .././config.py:6738
 msgid "A dummy file is created during the first pass."
 msgstr ""
 
-#: .././config.py:6740
+#: .././config.py:6742
 msgid "Use the output file"
 msgstr ""
 
-#: .././config.py:6741
+#: .././config.py:6743
 msgid "Dummy"
 msgstr ""
 
-#: .././config.py:6742
+#: .././config.py:6744
 msgid "/dev/null (Linux)"
 msgstr ""
 
-#: .././config.py:6743
+#: .././config.py:6745
 msgid "NUL (MS Windows)"
 msgstr ""
 
-#: .././config.py:6755
+#: .././config.py:6757
 msgid "Patience preset"
 msgstr ""
 
-#: .././config.py:6760
+#: .././config.py:6762
 msgid "Ultra fast"
 msgstr ""
 
-#: .././config.py:6761
+#: .././config.py:6763
 msgid "Super fast"
 msgstr ""
 
-#: .././config.py:6762
+#: .././config.py:6764
 msgid "Very fast"
 msgstr ""
 
-#: .././config.py:6763 .././config.py:6832
+#: .././config.py:6765 .././config.py:6863
 msgid "Faster"
 msgstr ""
 
-#: .././config.py:6764
+#: .././config.py:6766
 msgid "Fast"
 msgstr ""
 
-#: .././config.py:6765
-msgid "Medium (default)"
-msgstr ""
-
-#: .././config.py:6766
-#, python-format
-msgid "Slow (file about 5-10% smaller than medium)"
-msgstr ""
-
 #: .././config.py:6767
-#, python-format
-msgid "Slower (file about 15% smaller than medium)"
+msgid "Medium (default)"
 msgstr ""
 
 #: .././config.py:6768
 #, python-format
+msgid "Slow (file about 5-10% smaller than medium)"
+msgstr ""
+
+#: .././config.py:6769
+#, python-format
+msgid "Slower (file about 15% smaller than medium)"
+msgstr ""
+
+#: .././config.py:6770
+#, python-format
 msgid "Very slow (file about 17% smaller than medium)"
 msgstr ""
 
-#: .././config.py:6826
+#: .././config.py:6781
+msgid "GPU encoding"
+msgstr ""
+
+#: .././config.py:6797
+msgid "Hardware acceleration"
+msgstr ""
+
+#: .././config.py:6857
 msgid "Palette:"
 msgstr ""
 
-#: .././config.py:6833
+#: .././config.py:6864
 msgid "Uses dithering to a standard palette provided by FFmpeg"
 msgstr ""
 
-#: .././config.py:6834
+#: .././config.py:6865
 msgid "Can cause dithering artefacts and slight banding"
 msgstr ""
 
-#: .././config.py:6843
+#: .././config.py:6874
 msgid "Better"
 msgstr ""
 
-#: .././config.py:6844
+#: .././config.py:6875
 msgid "Determines an optimized palette for the video"
 msgstr ""
 
-#: .././config.py:6845
+#: .././config.py:6876
 msgid "Uses two passes and a temporary file for the palette"
 msgstr ""
 
-#: .././config.py:6898
+#: .././config.py:6929
 msgid ""
 "This merges a video and audio file with the same name into a single video "
 "file,\n"
 "using the extension specified in the File tab"
 msgstr ""
 
-#: .././config.py:6939
+#: .././config.py:6970
 msgid "The thumbnail's format can be changed in the File tab"
 msgstr ""
 
-#: .././config.py:6954
+#: .././config.py:6985
 msgid "_Optimisations"
 msgstr ""
 
-#: .././config.py:6960
+#: .././config.py:6991
 msgid ""
 "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)"
 msgstr ""
 "Optimize for fast seeking (shorter keyframe interval, about 10% larger file)"
 
-#: .././config.py:6968
+#: .././config.py:6999
 msgid "Input video is a high-quality movie"
 msgstr ""
 
-#: .././config.py:6974
+#: .././config.py:7005
 msgid "Input video is an animated movie"
 msgstr ""
 
-#: .././config.py:6980
+#: .././config.py:7011
 msgid "Input video contains film grain"
 msgstr ""
 
-#: .././config.py:6986
+#: .././config.py:7017
 msgid "Input video is an image slideshow"
 msgstr ""
 
-#: .././config.py:6992
+#: .././config.py:7023
 msgid "Optimise for really weak CPU playback devices"
 msgstr "Optimize for really weak CPU playback devices"
 
-#: .././config.py:6999
+#: .././config.py:7030
 msgid "Optimise for really old devices (requires rate factor above 0)"
 msgstr "Optimize for really old devices (requires rate factor above 0)"
 
-#: .././config.py:7010
+#: .././config.py:7041
 msgid ""
 "Move headers to beginning of file (so it can play while still downloading)"
 msgstr ""
 
-#: .././config.py:7018
+#: .././config.py:7049
 msgid "Fast encoding and low latency streaming"
 msgstr ""
 
-#: .././config.py:7024
+#: .././config.py:7055
 msgid "Limit bitrate (Mbit/s)"
 msgstr ""
 
-#: .././config.py:7041
+#: .././config.py:7072
 msgid "Assuming a receiving buffer (seconds)"
 msgstr ""
 
-#: .././config.py:7119
+#: .././config.py:7150
 msgid "List of videos to be processed"
 msgstr ""
 
-#: .././config.py:7138 .././media.py:88
+#: .././config.py:7169 .././media.py:88
 msgid "Video"
 msgstr ""
 
-#: .././config.py:7138
+#: .././config.py:7169
 msgid "Thumbnail"
 msgstr ""
 
-#: .././config.py:7181
+#: .././config.py:7212
 msgid "Remove video from list"
 msgstr ""
 
-#: .././config.py:7647
+#: .././config.py:7678
 msgid ""
 "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
 msgstr ""
 
-#: .././config.py:7657
+#: .././config.py:7688
 msgid "Show more FFmpeg options (when window re-opens)"
 msgstr ""
 
-#: .././config.py:7674
+#: .././config.py:7705
 msgid ""
 "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
 msgstr ""
 
-#: .././config.py:7684
+#: .././config.py:7715
 msgid "Show fewer FFmpeg options (when window re-opens)"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:8135 .././config.py:8752 .././config.py:9176
-#: .././config.py:9663 .././config.py:10464
+#: .././config.py:8166 .././config.py:8783 .././config.py:9207
+#: .././config.py:9694 .././config.py:10495
 msgid "_General"
 msgstr ""
 
-#: .././config.py:8138 .././config.py:8755 .././config.py:9179
-#: .././config.py:9668
+#: .././config.py:8169 .././config.py:8786 .././config.py:9210
+#: .././config.py:9699
 msgid "General properties"
 msgstr ""
 
-#: .././config.py:8164
+#: .././config.py:8195
 msgid "Set the file (if this is the wrong one)"
 msgstr ""
 
-#: .././config.py:8184
+#: .././config.py:8215
 msgid "Always simulate download of this video"
 msgstr ""
 
-#: .././config.py:8207
+#: .././config.py:8238
 msgid "Video has been downloaded"
 msgstr ""
 
-#: .././config.py:8228
+#: .././config.py:8259
 msgid "Video is marked as unwatched"
 msgstr ""
 
-#: .././config.py:8249
+#: .././config.py:8280
 msgid "Video is archived"
 msgstr ""
 
-#: .././config.py:8256
+#: .././config.py:8287
 msgid "Video is bookmarked"
 msgstr ""
 
-#: .././config.py:8263
+#: .././config.py:8294
 msgid "Receive time"
 msgstr ""
 
-#: .././config.py:8277
+#: .././config.py:8308
 msgid "Video is favourite"
 msgstr "Video is favorite"
 
-#: .././config.py:8284
+#: .././config.py:8315
 msgid "Video is in waiting list"
 msgstr ""
 
-#: .././config.py:8316
+#: .././config.py:8347
 msgid "Livestream properties"
 msgstr ""
 
-#: .././config.py:8321
+#: .././config.py:8352
 msgid "Livestream status"
 msgstr ""
 
-#: .././config.py:8332
+#: .././config.py:8363
 msgid "Waiting to start"
 msgstr ""
 
-#: .././config.py:8334
+#: .././config.py:8365
 msgid "Stream has started"
 msgstr ""
 
-#: .././config.py:8336
+#: .././config.py:8367
 msgid "Not a livestream"
 msgstr ""
 
-#: .././config.py:8339
+#: .././config.py:8370
 msgid "Livestream message"
 msgstr ""
 
-#: .././config.py:8354
+#: .././config.py:8385
 msgid "Video is pre-recorded"
 msgstr ""
 
-#: .././config.py:8361
+#: .././config.py:8392
 msgid "Livestream actions"
 msgstr ""
 
-#: .././config.py:8370
+#: .././config.py:8401
 msgid "When the livestream starts, show a desktop notification"
 msgstr ""
 
-#: .././config.py:8379
+#: .././config.py:8410
 msgid "When the livestream starts, play an alarm"
 msgstr ""
 
-#: .././config.py:8389
+#: .././config.py:8420
 msgid "When the livestream starts, open it in the system's web browser"
 msgstr ""
 
-#: .././config.py:8401
+#: .././config.py:8432
 msgid "When the livestream starts, begin downloading it immediately"
 msgstr ""
 
-#: .././config.py:8412 .././config.py:13782
+#: .././config.py:8443 .././config.py:13813
 msgid "When a livestream stops, download it (overwriting any earlier file)"
 msgstr ""
 
-#: .././config.py:8428
+#: .././config.py:8459
 msgid "_Description"
 msgstr ""
 
-#: .././config.py:8432
+#: .././config.py:8463
 msgid "Video description"
 msgstr ""
 
-#: .././config.py:8453 .././config.py:8959
+#: .././config.py:8484 .././config.py:8990
 msgid "Errors / Warnings"
 msgstr ""
 
-#: .././config.py:8459
+#: .././config.py:8490
 msgid "Error messages produced the last time this video was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8474
+#: .././config.py:8505
 msgid ""
 "Warning messages produced the last time this video was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8517
+#: .././config.py:8548
 msgid "Select the correct video/audio file"
 msgstr ""
 
-#: .././config.py:8543
+#: .././config.py:8574
 msgid ""
 "The replacement video/audio file must be in the same channel, playlist or "
 "folder"
 msgstr ""
 
-#: .././config.py:8561
+#: .././config.py:8592
 msgid "You must select a valid video/audio file"
 msgstr ""
 
-#: .././config.py:8629
+#: .././config.py:8660
 msgid "Channel properties"
 msgstr ""
 
-#: .././config.py:8632
+#: .././config.py:8663
 msgid "Playlist properties"
 msgstr ""
 
-#: .././config.py:8773
+#: .././config.py:8804
 msgid "Always simulate download of videos in this channel"
 msgstr ""
 
-#: .././config.py:8775
+#: .././config.py:8806
 msgid "Always simulate download of videos in this playlist"
 msgstr ""
 
-#: .././config.py:8785
+#: .././config.py:8816
 msgid "Disable checking/downloading for this channel"
 msgstr ""
 
-#: .././config.py:8787
+#: .././config.py:8818
 msgid "Disable checking/downloading for this playlist"
 msgstr ""
 
-#: .././config.py:8797
+#: .././config.py:8828
 msgid "This channel is marked as a favourite"
 msgstr "This channel is marked as a favorite"
 
-#: .././config.py:8799
+#: .././config.py:8830
 msgid "This playlist is marked as a favourite"
 msgstr "This playlist is marked as a favorite"
 
-#: .././config.py:8809
+#: .././config.py:8840
 msgid "Total videos"
 msgstr ""
 
-#: .././config.py:8833
+#: .././config.py:8864
 msgid "Favourite videos"
 msgstr "Favorite videos"
 
-#: .././config.py:8845
+#: .././config.py:8876
 msgid "Downloaded videos"
 msgstr ""
 
-#: .././config.py:8867 .././config.py:9408 .././config.py:11646
+#: .././config.py:8898 .././config.py:9439 .././config.py:11677
 msgid "_History"
 msgstr ""
 
-#: .././config.py:8872 .././config.py:9413 .././config.py:11653
+#: .././config.py:8903 .././config.py:9444 .././config.py:11684
 msgid "Download history"
 msgstr ""
 
-#: .././config.py:8886 .././config.py:9427 .././config.py:11667
+#: .././config.py:8917 .././config.py:9458 .././config.py:11698
 msgid "Draw"
 msgstr ""
 
-#: .././config.py:8914
+#: .././config.py:8945
 msgid "_RSS feed"
 msgstr ""
 
-#: .././config.py:8917
+#: .././config.py:8948
 msgid "RSS feed"
 msgstr ""
 
-#: .././config.py:8923
+#: .././config.py:8954
 msgid ""
 "If Tartube cannot detect the channel's RSS feed, you can enter the URL here"
 msgstr ""
 
-#: .././config.py:8928
+#: .././config.py:8959
 msgid ""
 "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here"
 msgstr ""
 
-#: .././config.py:8933
+#: .././config.py:8964
 msgid "(The feed is used to detect livestreams on compatible websites)"
 msgstr ""
 
-#: .././config.py:8965
+#: .././config.py:8996
 msgid ""
 "Error messages produced the last time this channel was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8970
+#: .././config.py:9001
 msgid ""
 "Error messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8988
+#: .././config.py:9019
 msgid ""
 "Warning messages produced the last time this channel was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8993
+#: .././config.py:9024
 msgid ""
 "Warning messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 
-#: .././config.py:9059
+#: .././config.py:9090
 msgid "Folder properties"
 msgstr ""
 
-#: .././config.py:9196
+#: .././config.py:9227
 msgid "Always simulate download of videos"
 msgstr ""
 
-#: .././config.py:9203
+#: .././config.py:9234
 msgid "Disable checking/downloading for this folder"
 msgstr ""
 
-#: .././config.py:9210
+#: .././config.py:9241
 msgid "This folder is marked as a favourite"
 msgstr "This folder is marked as a favorite"
 
-#: .././config.py:9217
+#: .././config.py:9248
 msgid "This folder is hidden"
 msgstr ""
 
-#: .././config.py:9224
+#: .././config.py:9255
 msgid "This folder can't be deleted by the user"
 msgstr ""
 
-#: .././config.py:9231
+#: .././config.py:9262
 msgid "This is a system-controlled folder"
 msgstr ""
 
-#: .././config.py:9238
+#: .././config.py:9269
 msgid "Only videos can be added to this folder"
 msgstr ""
 
-#: .././config.py:9245
+#: .././config.py:9276
 msgid "All contents deleted when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:9259 .././config.py:11475
+#: .././config.py:9290 .././config.py:11506
 msgid "_Statistics"
 msgstr ""
 
-#: .././config.py:9264 .././config.py:11482
+#: .././config.py:9295 .././config.py:11513
 msgid "Statistics"
 msgstr ""
 
-#: .././config.py:9285 .././config.py:11503
+#: .././config.py:9316 .././config.py:11534
 msgid "Downloaded"
 msgstr ""
 
-#: .././config.py:9329
+#: .././config.py:9360
 msgid "Sub-folders"
 msgstr ""
 
-#: .././config.py:9351
+#: .././config.py:9382
 msgid "Recalculate"
 msgstr ""
 
-#: .././config.py:9522
+#: .././config.py:9553
 msgid "Scheduled download"
 msgstr ""
 
-#: .././config.py:9673 .././config.py:12515
+#: .././config.py:9704 .././config.py:12546
 msgid "Scheduled download name"
 msgstr ""
 
-#: .././config.py:9685
+#: .././config.py:9716
 msgid "Download mode"
 msgstr ""
 
-#: .././config.py:9690
+#: .././config.py:9721
 msgid "Check channels, playlist and folders"
 msgstr ""
 
-#: .././config.py:9691
+#: .././config.py:9722
 msgid "Download channels, playlists and folders"
 msgstr ""
 
-#: .././config.py:9692
+#: .././config.py:9723
 msgid "Perform a custom download"
 msgstr ""
 
-#: .././config.py:9703 .././config.py:12481
+#: .././config.py:9734 .././config.py:12512
 msgid "Start mode"
 msgstr ""
 
-#: .././config.py:9708
+#: .././config.py:9739
 msgid "Perform this download at regular intervals"
 msgstr ""
 
-#: .././config.py:9709
+#: .././config.py:9740
 msgid "Perform this download when Tartube starts"
 msgstr ""
 
-#: .././config.py:9710
+#: .././config.py:9741
 msgid "Disable this scheduled download"
 msgstr ""
 
-#: .././config.py:9722
+#: .././config.py:9753
 msgid "Time between scheduled downloads"
 msgstr ""
 
-#: .././config.py:9766
+#: .././config.py:9797
 msgid "If another scheduled download is running:"
 msgstr ""
 
-#: .././config.py:9773
+#: .././config.py:9804
 msgid "Add channels, playlists and folders to the end of the queue"
 msgstr ""
 
-#: .././config.py:9779
+#: .././config.py:9810
 msgid "Add channels, playlists and folders to the beginning of the queue"
 msgstr ""
 
-#: .././config.py:9786
+#: .././config.py:9817
 msgid "Do nothing, just wait until the next scheduled download time"
 msgstr ""
 
-#: .././config.py:9801
+#: .././config.py:9832
 msgid "This scheduled download takes priority over others"
 msgstr ""
 
-#: .././config.py:9804
+#: .././config.py:9835
 msgid "Other scheduled downloads won't start until this one is finished"
 msgstr ""
 
-#: .././config.py:9813
+#: .././config.py:9844
 msgid ""
 "Ignore time-saving preferences, and check/download the whole channel/"
 "playlist/folder"
 msgstr ""
 
-#: .././config.py:9821
+#: .././config.py:9852
 msgid "Shut down Tartube when this scheduled download has finished"
 msgstr ""
 
-#: .././config.py:9839
+#: .././config.py:9870
 msgid "Media to download"
 msgstr ""
 
-#: .././config.py:9845
+#: .././config.py:9876
 msgid "Check/download everything"
 msgstr ""
 
-#: .././config.py:9853
+#: .././config.py:9884
 msgid "Only check/download the media below"
 msgstr ""
 
-#: .././config.py:9867
+#: .././config.py:9898
 msgid ""
 "Hint: you can drag and drop channels, playlists and your own folders here"
 msgstr ""
 
-#: .././config.py:9926
+#: .././config.py:9957
 msgid "Remove"
 msgstr ""
 
-#: .././config.py:10230
+#: .././config.py:10261
 msgid "System preferences"
 msgstr ""
 
-#: .././config.py:10483
+#: .././config.py:10514
 msgid "_Language"
 msgstr ""
 
-#: .././config.py:10488
+#: .././config.py:10519
 msgid "Language preferences"
 msgstr ""
 
-#: .././config.py:10493
+#: .././config.py:10524
 msgid "Language"
 msgstr ""
 
-#: .././config.py:10529
+#: .././config.py:10560
 msgid "_Stability"
 msgstr ""
 
-#: .././config.py:10539
+#: .././config.py:10570
 msgid "Gtk library"
 msgstr ""
 
-#: .././config.py:10544
+#: .././config.py:10575
 msgid "Current version of the system's Gtk library"
 msgstr ""
 
-#: .././config.py:10559
+#: .././config.py:10590
 msgid "Gtk stability"
 msgstr ""
 
-#: .././config.py:10598
+#: .././config.py:10629
 msgid ""
 "Tartube uses the Gtk graphics library. This library is notoriously "
 "unreliable and may even causes crashes."
 msgstr ""
 
-#: .././config.py:10605
+#: .././config.py:10636
 msgid ""
 "By default, some cosmetic features are disabled (for example, in the Videos "
 "tab, the list of videos is not updated until the end of a download "
 "operation)."
 msgstr ""
 
-#: .././config.py:10613
+#: .././config.py:10644
 msgid ""
 "If you think that your system Gtk has been fixed (or if you want to test Gtk "
 "stability), you can re-enable the cosmetic features."
 msgstr ""
 
-#: .././config.py:10623
+#: .././config.py:10654
 msgid "Disable some cosmetic features to prevent crashes and other issues"
 msgstr ""
 
-#: .././config.py:10641
+#: .././config.py:10672
 msgid "_Modules"
 msgstr ""
 
-#: .././config.py:10646
+#: .././config.py:10677
 msgid "Module availability"
 msgstr ""
 
-#: .././config.py:10652
+#: .././config.py:10683
 msgid "feedparser module is available (required for detecting livestreams)"
 msgstr ""
 
-#: .././config.py:10661
+#: .././config.py:10692
 msgid "matplotlib module is available (draws graphs)"
 msgstr ""
 
-#: .././config.py:10669
+#: .././config.py:10700
 msgid "moviepy module is available (finds the length of videos, if unknown)"
 msgstr ""
 
-#: .././config.py:10679
+#: .././config.py:10710
 msgid "playsound module is available (sound an alarm when a livestream starts)"
 msgstr ""
 
-#: .././config.py:10689
+#: .././config.py:10720
 msgid ""
 "XDG module is available (saves the config file in the standard location)"
 msgstr ""
 
-#: .././config.py:10699
+#: .././config.py:10730
 msgid ""
 "Notify module is available (shows desktop notifications; Linux/*BSD only)"
 msgstr ""
 
-#: .././config.py:10709
+#: .././config.py:10740
 msgid "Module preferences"
 msgstr ""
 
-#: .././config.py:10715
+#: .././config.py:10746
 msgid ""
 "Use 'moviepy' module to get a video's duration, if not known (may be slow)"
 msgstr ""
 
-#: .././config.py:10727
+#: .././config.py:10758
 msgid "Timeout applied when moviepy checks a video file"
 msgstr ""
 
-#: .././config.py:10752
+#: .././config.py:10783
 msgid "_Debugging"
 msgstr ""
 
-#: .././config.py:10760
+#: .././config.py:10791
 msgid "Debugging preferences"
 msgstr ""
 
-#: .././config.py:10766
+#: .././config.py:10797
 msgid ""
 "Debug messages are only visible in the terminal window (these settings are "
 "not saved)"
 msgstr ""
 
-#: .././config.py:10773
+#: .././config.py:10804
 msgid "Enable application debug messages (code in mainapp.py)"
 msgstr ""
 
-#: .././config.py:10782 .././config.py:10802
+#: .././config.py:10813 .././config.py:10833
 msgid "...but don't show timer debug messages"
 msgstr ""
 
-#: .././config.py:10793
+#: .././config.py:10824
 msgid "Enable main winddow debug messages (code in mainwin.py)"
 msgstr ""
 
-#: .././config.py:10813
+#: .././config.py:10844
 msgid "Enabled downloader debug messages (code in downloads.py)"
 msgstr ""
 
-#: .././config.py:10856
+#: .././config.py:10887
 msgid ""
 "Debugging messages are also visible if an empty file called debug.txt exists "
 "here:"
 msgstr ""
 
-#: .././config.py:10901
+#: .././config.py:10932
 msgid "_Device"
 msgstr ""
 
-#: .././config.py:10906
+#: .././config.py:10937
 msgid "Device preferences"
 msgstr ""
 
-#: .././config.py:10911
+#: .././config.py:10942
 msgid "Size of device (in Mb)"
 msgstr ""
 
-#: .././config.py:10923
+#: .././config.py:10954
 msgid "Free space on device (in Mb)"
 msgstr ""
 
-#: .././config.py:10935
+#: .././config.py:10966
 msgid "Warn user if disk space is less than"
 msgstr ""
 
-#: .././config.py:10953
+#: .././config.py:10984
 msgid "Halt downloads if disk space is less than"
 msgstr ""
 
-#: .././config.py:10992
+#: .././config.py:11023
 msgid "Configuration preferences"
 msgstr ""
 
-#: .././config.py:10997
+#: .././config.py:11028
 msgid "Tartube configuration file loaded from:"
 msgstr ""
 
-#: .././config.py:11016
+#: .././config.py:11047
 msgid "D_atabase"
 msgstr ""
 
-#: .././config.py:11022
+#: .././config.py:11053
 msgid "Database preferences"
 msgstr ""
 
-#: .././config.py:11027
+#: .././config.py:11058
 msgid "Tartube data folder"
 msgstr ""
 
-#: .././config.py:11039
+#: .././config.py:11070
 msgid "Add new database"
 msgstr ""
 
-#: .././config.py:11041
+#: .././config.py:11072
 msgid "Change to a different data folder"
 msgstr ""
 
-#: .././config.py:11048
+#: .././config.py:11079
 msgid "Check and repair database"
 msgstr ""
 
-#: .././config.py:11051
+#: .././config.py:11082
 msgid "Check for inconsistencies, and repair them"
 msgstr ""
 
-#: .././config.py:11056
+#: .././config.py:11087
 msgid "Recent data folders"
 msgstr ""
 
-#: .././config.py:11070
+#: .././config.py:11101
 msgid "Switch to the selected data folder"
 msgstr ""
 
-#: .././config.py:11080
+#: .././config.py:11111
 msgid "Forget"
 msgstr ""
 
-#: .././config.py:11083
+#: .././config.py:11114
 msgid "Remove the selected data folder from the list"
 msgstr ""
 
-#: .././config.py:11092
+#: .././config.py:11123
 msgid "Forget all"
 msgstr ""
 
-#: .././config.py:11095
+#: .././config.py:11126
 msgid "Forget every folder in this list (except the current one)"
 msgstr ""
 
-#: .././config.py:11108
+#: .././config.py:11139
 msgid "Move the selected folder up the list"
 msgstr ""
 
-#: .././config.py:11116
+#: .././config.py:11147
 msgid "Move the selected folder down the list"
 msgstr ""
 
-#: .././config.py:11144
+#: .././config.py:11175
 msgid ""
 "On startup, load the first database on the list (not the most recently-use "
 "one)"
 msgstr ""
 
-#: .././config.py:11154
+#: .././config.py:11185
 msgid "If one database is in use, try to load others"
 msgstr ""
 
-#: .././config.py:11162
+#: .././config.py:11193
 msgid "Add new data directories to this list"
 msgstr ""
 
-#: .././config.py:11201
+#: .././config.py:11232
 msgid "_Backups"
 msgstr ""
 
-#: .././config.py:11205
+#: .././config.py:11236
 msgid "Backup preferences"
 msgstr ""
 
-#: .././config.py:11210
+#: .././config.py:11241
 msgid ""
 "When saving a database file, Tartube makes a backup copy of it (in case "
 "something goes wrong)"
 msgstr ""
 
-#: .././config.py:11219
+#: .././config.py:11250
 msgid "Delete the backup file as soon as the save procedure is finished"
 msgstr ""
 
-#: .././config.py:11229
+#: .././config.py:11260
 msgid "Keep the backup file, replacing any previous backup file"
 msgstr ""
 
-#: .././config.py:11240
+#: .././config.py:11271
 msgid ""
 "Make a new backup file once per day, after the day's first save procedure"
 msgstr ""
 
-#: .././config.py:11251
+#: .././config.py:11282
 msgid "Make a new backup file for every save procedure"
 msgstr ""
 
-#: .././config.py:11300
+#: .././config.py:11331
 msgid "Automatic video deletion preferences"
 msgstr ""
 
-#: .././config.py:11305
+#: .././config.py:11336
 msgid "Automatically delete downloaded videos after this many days"
 msgstr ""
 
-#: .././config.py:11319
+#: .././config.py:11350
 msgid "...but only delete videos which have been watched"
 msgstr ""
 
-#: .././config.py:11343
+#: .././config.py:11374
 msgid "Video matching preferences"
 msgstr ""
 
-#: .././config.py:11348
+#: .././config.py:11379
 msgid "When matching videos on the filesystem:"
 msgstr ""
 
-#: .././config.py:11354
+#: .././config.py:11385
 msgid "The video names must match exactly"
 msgstr ""
 
-#: .././config.py:11361
+#: .././config.py:11392
 msgid "The first # characters must match exactly"
 msgstr ""
 
-#: .././config.py:11375
+#: .././config.py:11406
 msgid "Ignore the last # characters; the remaining name must match exactly"
 msgstr ""
 
-#: .././config.py:11421
+#: .././config.py:11452
 msgid "_Temporary folders"
 msgstr ""
 
-#: .././config.py:11427
+#: .././config.py:11458
 msgid "Temporary folder preferences"
 msgstr ""
 
-#: .././config.py:11432
+#: .././config.py:11463
 msgid "Empty temporary folders when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:11441
+#: .././config.py:11472
 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)"
 msgstr ""
 
-#: .././config.py:11449
+#: .././config.py:11480
 msgid "Open temporary folders (on the desktop) when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:11487
+#: .././config.py:11518
 msgid "The Tartube database contains:"
 msgstr ""
 
-#: .././config.py:11547
+#: .././config.py:11578
 msgid "Custom folders"
 msgstr ""
 
-#: .././config.py:11570
+#: .././config.py:11601
 msgid "Calculate"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:11696
+#: .././config.py:11727
 msgid "_Windows"
 msgstr ""
 
-#: .././config.py:11719
+#: .././config.py:11750
 msgid "_Main window"
 msgstr ""
 
-#: .././config.py:11725
+#: .././config.py:11756
 msgid "Main window preferences"
 msgstr ""
 
-#: .././config.py:11730
+#: .././config.py:11761
 msgid "Remember the size of the main window when shutting down"
 msgstr ""
 
-#: .././config.py:11738
+#: .././config.py:11769
 msgid "Also remember the position of main window sliders"
 msgstr ""
 
-#: .././config.py:11755
+#: .././config.py:11786
 msgid "Don't show the main window toolbar"
 msgstr ""
 
-#: .././config.py:11763
+#: .././config.py:11794
 msgid "Don't show labels in the main window toolbar"
 msgstr ""
 
-#: .././config.py:11781
+#: .././config.py:11812
 msgid ""
 "Replace stock icons with custom icons (in case stock icons are not visible)"
 msgstr ""
 
-#: .././config.py:11791
+#: .././config.py:11822
 msgid "Show tooltips for videos, channels, playlists and folders"
 msgstr ""
 
-#: .././config.py:11799
+#: .././config.py:11830
 msgid "Show errors/warnings in tooltips (but not in the Videos tab)"
 msgstr ""
 
-#: .././config.py:11817
+#: .././config.py:11848
 msgid "Disable the 'Download all' buttons in the toolbar and the Videos Tab"
 msgstr ""
 
-#: .././config.py:11828
+#: .././config.py:11859
 msgid "In the Progress Tab, hide finished videos / channels / playlists"
 msgstr ""
 
-#: .././config.py:11837
+#: .././config.py:11868
 msgid "In the Progress Tab, show results in reverse order"
 msgstr ""
 
-#: .././config.py:11845
+#: .././config.py:11876
 msgid "When Tartube starts, automatically open the Classic Mode tab"
 msgstr ""
 
-#: .././config.py:11859
+#: .././config.py:11890
 msgid ""
 "In the Classic Mode Tab, when adding URLs, remove duplicates rather than "
 "retaining them"
 msgstr ""
 
-#: .././config.py:11873
+#: .././config.py:11904
 msgid "In the Errors/Warnings Tab, don't reset the tab text when it is clicked"
 msgstr ""
 
-#: .././config.py:11896
+#: .././config.py:11927
 msgid "Video Index (left side of the Videos Tab)"
 msgstr ""
 
-#: .././config.py:11902
+#: .././config.py:11933
 msgid "Show smaller icons in the Video Index"
 msgstr ""
 
-#: .././config.py:11912
+#: .././config.py:11943
 msgid ""
 "In the Video Index, show detailed statistics about the videos in each "
 "channel / playlist / folder"
 msgstr ""
 
-#: .././config.py:11923
+#: .././config.py:11954
 msgid ""
 "After clicking on a folder, automatically expand/collapse the tree around it"
 msgstr ""
 
-#: .././config.py:11934
+#: .././config.py:11965
 msgid "Expand the whole tree, not just the level beneath the clicked folder"
 msgstr ""
 
-#: .././config.py:11955
+#: .././config.py:11986
 msgid "Video Catalogue (right side of the Videos Tab)"
 msgstr ""
 
-#: .././config.py:11962
+#: .././config.py:11993
 msgid "Show 'today' and 'yesterday' as the date, when possible"
 msgstr ""
 
-#: .././config.py:11972
+#: .././config.py:12003
 msgid "Draw a frame around each video"
 msgstr ""
 
-#: .././config.py:11982
+#: .././config.py:12013
 msgid "Draw status icons for each video"
 msgstr ""
 
-#: .././config.py:11991
+#: .././config.py:12022
 msgid "Thumbnail size (when videos are displayed on a grid)"
 msgstr ""
 
-#: .././config.py:12019
+#: .././config.py:12050
 msgid "Show livestreams with a different background colour"
 msgstr "Show livestreams with a different background color"
 
-#: .././config.py:12027
+#: .././config.py:12058
 msgid "Use same background colours for livestream and debut videos"
 msgstr "Use same background colors for livestream and debut videos"
 
-#: .././config.py:12055
+#: .././config.py:12086
 msgid "_Drag"
 msgstr ""
 
-#: .././config.py:12059
+#: .././config.py:12090
 msgid "Drag and drop preferences"
 msgstr ""
 
-#: .././config.py:12065
+#: .././config.py:12096
 msgid "When dragging and dropping videos to an external application..."
 msgstr ""
 
-#: .././config.py:12071
+#: .././config.py:12102
 msgid "Transfer the video's full file path"
 msgstr ""
 
-#: .././config.py:12079
+#: .././config.py:12110
 msgid "Transfer the video's source URL"
 msgstr ""
 
-#: .././config.py:12087
+#: .././config.py:12118
 msgid "Transfer the video's name"
 msgstr ""
 
-#: .././config.py:12095
+#: .././config.py:12126
 msgid "Transfer the thumbnail's full file path"
 msgstr ""
 
-#: .././config.py:12111
+#: .././config.py:12142
 msgid "_System tray"
 msgstr ""
 
-#: .././config.py:12117
+#: .././config.py:12148
 msgid "System tray preferences"
 msgstr ""
 
-#: .././config.py:12122
+#: .././config.py:12153
 msgid "Show icon in system tray"
 msgstr ""
 
-#: .././config.py:12131
+#: .././config.py:12162
 msgid "Close to the tray, rather than closing the application"
 msgstr ""
 
-#: .././config.py:12157
+#: .././config.py:12188
 msgid "D_ialogues"
 msgstr ""
 
-#: .././config.py:12163
+#: .././config.py:12194
 msgid "Dialogue window preferences"
 msgstr ""
 
-#: .././config.py:12168
+#: .././config.py:12199
 msgid "When adding channels/playlists, keep the dialogue window open"
 msgstr ""
 
-#: .././config.py:12178
+#: .././config.py:12209
 msgid "When the dialogue window opens, add URLs from the system clipboard"
 msgstr ""
 
-#: .././config.py:12206
+#: .././config.py:12237
 msgid "_Errors/Warnings"
 msgstr ""
 
-#: .././config.py:12214
+#: .././config.py:12245
 msgid "Errors/Warnings tab preferences"
 msgstr ""
 
-#: .././config.py:12219
+#: .././config.py:12250
 msgid "Show Tartube error messages"
 msgstr ""
 
-#: .././config.py:12227
+#: .././config.py:12258
 msgid "Show Tartube warning messages"
 msgstr ""
 
-#: .././config.py:12235
+#: .././config.py:12266
 msgid "Show server error messages"
 msgstr ""
 
-#: .././config.py:12246
+#: .././config.py:12277
 msgid "Show server warning messages"
 msgstr ""
 
-#: .././config.py:12258
+#: .././config.py:12289
 msgid "Downloader error/warning preferences"
 msgstr ""
 
-#: .././config.py:12263
+#: .././config.py:12294
 msgid "TRANSLATOR'S NOTE: These error messages are always in English"
 msgstr ""
 
-#: .././config.py:12267
+#: .././config.py:12298
 msgid "Ignore 'Child process exited with non-zero code' errors"
 msgstr ""
 
-#: .././config.py:12276
+#: .././config.py:12307
 msgid ""
 "Ignore 'Unable to download video data' and 'Unable to extract video data' "
 "errors"
 msgstr ""
 
-#: .././config.py:12286
+#: .././config.py:12317
 msgid "Ignore 'Did not get any data blocks' errors"
 msgstr ""
 
-#: .././config.py:12295
+#: .././config.py:12326
 msgid "Ignore 'Requested formats are incompatible for merge' warnings"
 msgstr ""
 
-#: .././config.py:12304
+#: .././config.py:12335
 msgid "Ignore 'No video formats found' errors"
 msgstr ""
 
-#: .././config.py:12312
+#: .././config.py:12343
 msgid "Ignore 'There are no annotations to write' warnings"
 msgstr ""
 
-#: .././config.py:12320
+#: .././config.py:12351
 msgid "Ignore 'Video doesn't have subtitles' warnings"
 msgstr ""
 
-#: .././config.py:12336
+#: .././config.py:12367
 msgid "_Websites"
 msgstr ""
 
-#: .././config.py:12344
+#: .././config.py:12375
 msgid "YouTube error/warning preferences"
 msgstr ""
 
-#: .././config.py:12349
+#: .././config.py:12380
 msgid "Ignore YouTube copyright errors"
 msgstr ""
 
-#: .././config.py:12357
+#: .././config.py:12388
 msgid "Ignore YouTube age-restriction errors"
 msgstr ""
 
-#: .././config.py:12365
+#: .././config.py:12396
 msgid "Ignore YouTube deletion by uploader errors"
 msgstr ""
 
-#: .././config.py:12373
+#: .././config.py:12404
 msgid "Ignore YouTube payment errors"
 msgstr ""
 
-#: .././config.py:12382
+#: .././config.py:12413
 msgid "General preferences"
 msgstr ""
 
-#: .././config.py:12388
+#: .././config.py:12419
 msgid ""
 "Ignore any errors/warnings which match lines in this list (applies to all "
 "websites)"
 msgstr ""
 
-#: .././config.py:12402
+#: .././config.py:12433
 msgid "These are ordinary strings"
 msgstr ""
 
-#: .././config.py:12409
+#: .././config.py:12440
 msgid "These are regular expressions (regexes)"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:12438
+#: .././config.py:12469
 msgid "_Scheduling"
 msgstr ""
 
-#: .././config.py:12455
+#: .././config.py:12486
 msgid "_Start"
 msgstr ""
 
-#: .././config.py:12461
+#: .././config.py:12492
 msgid "Scheduled download preferences"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Priority"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Whole"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Shutdown"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "D/L All"
 msgstr ""
 
-#: .././config.py:12483
+#: .././config.py:12514
 msgid "Join mode"
 msgstr ""
 
-#: .././config.py:12537 .././config.py:14468 .././config.py:14733
+#: .././config.py:12568 .././config.py:14499 .././config.py:14764
 msgid "Edit"
 msgstr ""
 
-#: .././config.py:12564 .././config.py:14504 .././config.py:14769
+#: .././config.py:12595 .././config.py:14535 .././config.py:14800
 msgid "Delete"
 msgstr ""
 
-#: .././config.py:12632
+#: .././config.py:12663
 msgid "S_top"
 msgstr ""
 
-#: .././config.py:12638
+#: .././config.py:12669
 msgid "Scheduled stop preferences"
 msgstr ""
 
-#: .././config.py:12643
+#: .././config.py:12674
 msgid "Stop all download operations after this much time"
 msgstr ""
 
-#: .././config.py:12691
+#: .././config.py:12722
 msgid "Stop all download operations after this many videos"
 msgstr ""
 
-#: .././config.py:12718
+#: .././config.py:12749
 msgid "Stop all download operations after this much disk space"
 msgstr ""
 
-#: .././config.py:12761
+#: .././config.py:12792
 msgid ""
 "N.B. Disk space is estimated. This setting does not apply to simulated "
 "downloads"
 msgstr ""
 
-#: .././config.py:12799
+#: .././config.py:12830
 msgid "_Performance"
 msgstr ""
 
-#: .././config.py:12807
+#: .././config.py:12838
 msgid "Performance limits"
 msgstr ""
 
-#: .././config.py:12812
+#: .././config.py:12843
 msgid "Limit simultaneous downloads to"
 msgstr ""
 
-#: .././config.py:12830
+#: .././config.py:12861
 msgid "Limit download speed to"
 msgstr ""
 
-#: .././config.py:12856
+#: .././config.py:12887
 msgid "Overriding video format options, limit video resolution to"
 msgstr ""
 
-#: .././config.py:12878
+#: .././config.py:12909
 msgid "Time-saving settings"
 msgstr ""
 
-#: .././config.py:12884
+#: .././config.py:12915
 msgid ""
 "Stop checking/downloading a channel/playlist when it starts sending videos "
 "you already have"
 msgstr ""
 
-#: .././config.py:12895
+#: .././config.py:12926
 msgid "Stop after this many videos (when checking)"
 msgstr ""
 
-#: .././config.py:12910
+#: .././config.py:12941
 msgid "Stop after this many videos (when downloading)"
 msgstr ""
 
-#: .././config.py:12941
+#: .././config.py:12972
 msgid "P_references"
 msgstr ""
 
-#: .././config.py:12949
+#: .././config.py:12980
 msgid "URL flexibility preferences"
 msgstr ""
 
-#: .././config.py:12956
+#: .././config.py:12987
 msgid ""
 "If a video's URL represents a channel/playlist, not a video, don't download "
 "it"
 msgstr ""
 
-#: .././config.py:12965
+#: .././config.py:12996
 msgid "...or, download multiple videos into the containing folder"
 msgstr ""
 
-#: .././config.py:12975
+#: .././config.py:13006
 msgid "...or, create a new channel, and download the videos into that"
 msgstr ""
 
-#: .././config.py:12986
+#: .././config.py:13017
 msgid "...or, create a new playlist, and download the videos into that"
 msgstr ""
 
-#: .././config.py:13018
+#: .././config.py:13049
 msgid "Missing video preferences"
 msgstr ""
 
-#: .././config.py:13024
+#: .././config.py:13055
 msgid ""
 "Add videos which have been removed from a channel/playlist to the Missing "
 "Videos folder"
 msgstr ""
 
-#: .././config.py:13035
+#: .././config.py:13066
 msgid "Only add videos that were uploaded within this many days"
 msgstr ""
 
-#: .././config.py:13076
+#: .././config.py:13107
 msgid "Invidious mirror"
 msgstr ""
 
-#: .././config.py:13082
+#: .././config.py:13113
 msgid "To find an updated list of Invidious mirrors, use any search engine!"
 msgstr ""
 
-#: .././config.py:13095 .././config.py:13407
+#: .././config.py:13126 .././config.py:13438
 msgid "Type the exact text that replaces youtube.com e.g."
 msgstr ""
 
-#: .././config.py:13121
+#: .././config.py:13152
 msgid "Download operation preferences"
 msgstr ""
 
-#: .././config.py:13127
+#: .././config.py:13158
 msgid "Automatically update downloader before every download operation"
 msgstr ""
 
-#: .././config.py:13139
+#: .././config.py:13170
 msgid "Automatically save files at the end of all operations"
 msgstr ""
 
-#: .././config.py:13149
+#: .././config.py:13180
 msgid "For simulated downloads, don't check a video in a folder more than once"
 msgstr ""
 
-#: .././config.py:13160
+#: .././config.py:13191
 msgid "If a download stalls, restart it after this many minutes"
 msgstr ""
 
-#: .././config.py:13181
+#: .././config.py:13212
 msgid "If a network problem is detected, restart the download immediately"
 msgstr ""
 
-#: .././config.py:13193
+#: .././config.py:13224
 msgid "Maximum restarts after a stalled download (0 for no maximum)"
 msgstr ""
 
-#: .././config.py:13234
+#: .././config.py:13265
 msgid ""
 "Allow downloader to create its own archive file (so deleted videos are not "
 "re-downloaded)"
 msgstr ""
 
-#: .././config.py:13245
+#: .././config.py:13276
 msgid ""
 "Also create an archive file when downloading from the Classic Mode tab (not "
 "recommended)"
 msgstr ""
 
-#: .././config.py:13256
+#: .././config.py:13287
 msgid "When checking videos, apply a 60-second timeout"
 msgstr ""
 
-#: .././config.py:13266
+#: .././config.py:13297
 msgid ""
 "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after "
 "downloading them"
 msgstr ""
 
-#: .././config.py:13283
+#: .././config.py:13314
 msgid "_Custom"
 msgstr ""
 
-#: .././config.py:13288
+#: .././config.py:13319
 msgid "Custom download preferences"
 msgstr ""
 
-#: .././config.py:13294
+#: .././config.py:13325
 msgid ""
 "In custom downloads, download each video independently of its channel or "
 "playlist"
 msgstr ""
 
-#: .././config.py:13305
+#: .././config.py:13336
 msgid ""
 "In custom downloads, apply a delay after each video/channel/playlist is "
 "download"
 msgstr ""
 
-#: .././config.py:13315
+#: .././config.py:13346
 msgid "Maximum delay to apply (in minutes)"
 msgstr ""
 
-#: .././config.py:13332
+#: .././config.py:13363
 msgid "Minimum delay to apply (in minutes; randomises the actual delay)"
 msgstr "Minimum delay to apply (in minutes; randomizes the actual delay)"
 
-#: .././config.py:13355
+#: .././config.py:13386
 msgid "In custom downloads, obtain a YouTube video from the original website"
 msgstr ""
 
-#: .././config.py:13365
+#: .././config.py:13396
 msgid "In custom downloads, obtain the video from HookTube rather than YouTube"
 msgstr ""
 
-#: .././config.py:13377
+#: .././config.py:13408
 msgid ""
 "In custom downloads, obtain the video from Invidious rather than YouTube"
 msgstr ""
 
-#: .././config.py:13389
+#: .././config.py:13420
 msgid ""
 "In custom downloads, obtain the video from the YouTube front-end specified "
 "below"
 msgstr ""
 
-#: .././config.py:13489
+#: .././config.py:13520
 msgid "Livestream preferences (compatible websites only)"
 msgstr ""
 
-#: .././config.py:13495
+#: .././config.py:13526
 msgid "Detect livestreams announced within this many days"
 msgstr ""
 
-#: .././config.py:13510
+#: .././config.py:13541
 msgid "How often to check the status of livestreams (in minutes)"
 msgstr ""
 
-#: .././config.py:13529
+#: .././config.py:13560
 msgid "Check more frequently when a livestream is due to start"
 msgstr ""
 
-#: .././config.py:13572
+#: .././config.py:13603
 msgid "Broadcast preferences (compatible websites only)"
 msgstr ""
 
-#: .././config.py:13579
+#: .././config.py:13610
 msgid ""
 "Use Youtube Stream Capture to download broadcasting livestreams (requires "
 "aria2)"
 msgstr ""
 
-#: .././config.py:13589
+#: .././config.py:13620
 msgid "Timeout after this many minutes of inactivity"
 msgstr ""
 
-#: .././config.py:13603
+#: .././config.py:13634
 msgid "Number of restarts after a timeout"
 msgstr ""
 
-#: .././config.py:13618
+#: .././config.py:13649
 msgid ""
 "Bypass usual limits on simultaneous downloads, so that all broadcasts can be "
 "downloaded"
 msgstr ""
 
-#: .././config.py:13659
+#: .././config.py:13690
 msgid "_Proxies"
 msgstr ""
 
-#: .././config.py:13665
+#: .././config.py:13696
 msgid "Proxies"
 msgstr ""
 
-#: .././config.py:13672
+#: .././config.py:13703
 msgid ""
 "During a download operation, Tartube will cycle betwween the proxies in this "
 "list"
 msgstr ""
 
-#: .././config.py:13693
+#: .././config.py:13724
 msgid "_Actions"
 msgstr ""
 
-#: .././config.py:13702
+#: .././config.py:13733
 msgid "Livestream actions (can be toggled for individual videos)"
 msgstr ""
 
-#: .././config.py:13709
+#: .././config.py:13740
 msgid "(currently disabled on MS Windows)"
 msgstr ""
 
-#: .././config.py:13714
+#: .././config.py:13745
 msgid "When a livestream starts, show a desktop notification"
 msgstr ""
 
-#: .././config.py:13728
+#: .././config.py:13759
 msgid "When a livestream starts, sound an alarm"
 msgstr ""
 
-#: .././config.py:13751
+#: .././config.py:13782
 msgid "Plays the selected sound effect"
 msgstr ""
 
-#: .././config.py:13758
+#: .././config.py:13789
 msgid "When a livestream starts, open it in the system's web browser"
 msgstr ""
 
-#: .././config.py:13770
+#: .././config.py:13801
 msgid "When a livestream starts, begin downloading it immediately"
 msgstr ""
 
-#: .././config.py:13796
+#: .././config.py:13827
 msgid "Desktop notification preferences"
 msgstr ""
 
-#: .././config.py:13803
+#: .././config.py:13834
 msgid "Show a dialogue window at the end of an operation"
 msgstr ""
 
-#: .././config.py:13828
+#: .././config.py:13859
 msgid "Don't notify the user at the end of an operation"
 msgstr ""
 
-#: .././config.py:13882
+#: .././config.py:13913
 msgid "_Forks"
 msgstr ""
 
-#: .././config.py:13888
+#: .././config.py:13919
 msgid "Forks of youtube-dl"
 msgstr ""
 
-#: .././config.py:13917
-msgid "Use youtube-dlc"
+#: .././config.py:13948
+msgid "Use yt-dlp"
 msgstr ""
 
-#: .././config.py:13946
+#: .././config.py:13977
 msgid "Use youtube-dl"
 msgstr ""
 
-#: .././config.py:13974
+#: .././config.py:14005
 msgid "Use a different fork of youtube-dl:"
 msgstr ""
 
-#: .././config.py:14051
+#: .././config.py:14082
 msgid "_File paths"
 msgstr ""
 
-#: .././config.py:14058
+#: .././config.py:14089
 msgid "Downloader file paths"
 msgstr ""
 
-#: .././config.py:14064
+#: .././config.py:14095
 msgid "Path to the executable"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././config.py:14070 .././config.py:14218 .././config.py:14259
-#: .././config.py:14329 .././config.py:20068
+#: .././config.py:14101 .././config.py:14249 .././config.py:14290
+#: .././config.py:14360 .././config.py:20098
 msgid "Use default path"
 msgstr ""
 
-#: .././config.py:14075 .././config.py:20080
+#: .././config.py:14106 .././config.py:20110
 msgid "Use local path"
 msgstr ""
 
-#: .././config.py:14079
+#: .././config.py:14110
 msgid "Use custom path"
 msgstr ""
 
-#: .././config.py:14087 .././config.py:20094
+#: .././config.py:14118 .././config.py:20124
 msgid "Use PyPI path"
 msgstr ""
 
-#: .././config.py:14138
+#: .././config.py:14169
 msgid "Command for update operations"
 msgstr ""
 
-#: .././config.py:14186
+#: .././config.py:14217
 msgid "_FFmpeg / AVConv"
 msgstr ""
 
-#: .././config.py:14194
+#: .././config.py:14225
 msgid "Post-processing file paths"
 msgstr ""
 
-#: .././config.py:14199
+#: .././config.py:14230
 msgid ""
 "You only need to set these paths if Tartube cannot find FFmpeg / AVConv "
 "automatically"
 msgstr ""
 
-#: .././config.py:14206
+#: .././config.py:14237
 msgid "Path to the FFmpeg executable"
 msgstr ""
 
-#: .././config.py:14233
+#: .././config.py:14264
 msgid "Install from main menu"
 msgstr ""
 
-#: .././config.py:14247
+#: .././config.py:14278
 msgid "Path to the AVConv executable"
 msgstr ""
 
-#: .././config.py:14274
+#: .././config.py:14305
 msgid "Not supported on MS Windows"
 msgstr ""
 
-#: .././config.py:14297
+#: .././config.py:14328
 msgid "_Stream Capture"
 msgstr ""
 
-#: .././config.py:14305
+#: .././config.py:14336
 msgid "Youtube Stream Capture file path"
 msgstr ""
 
-#: .././config.py:14310
+#: .././config.py:14341
 msgid ""
 "Tartube includes a copy of this script, but you can use a different copy, if "
 "you want"
 msgstr ""
 
-#: .././config.py:14317
+#: .././config.py:14348
 msgid "Path to the YT Stream Capture executable"
 msgstr ""
 
-#: .././config.py:14375
+#: .././config.py:14406
 msgid "_Download options"
 msgstr ""
 
-#: .././config.py:14382
+#: .././config.py:14413
 msgid "List of download options managers"
 msgstr ""
 
-#: .././config.py:14402
+#: .././config.py:14433
 msgid "Classic Mode"
 msgstr ""
 
-#: .././config.py:14403
+#: .././config.py:14434
 msgid "Applied to media"
 msgstr ""
 
-#: .././config.py:14477 .././config.py:14742
+#: .././config.py:14508 .././config.py:14773
 msgid "Export"
 msgstr ""
 
-#: .././config.py:14486 .././config.py:14751
+#: .././config.py:14517 .././config.py:14782
 msgid "Clone"
 msgstr ""
 
-#: .././config.py:14495
+#: .././config.py:14526
 msgid "Use in Classic Mode tab"
 msgstr ""
 
-#: .././config.py:14520 .././config.py:14785
+#: .././config.py:14551 .././config.py:14816
 msgid "Refresh list"
 msgstr ""
 
-#: .././config.py:14601
+#: .././config.py:14632
 msgid "_Preferences"
 msgstr ""
 
-#: .././config.py:14608
+#: .././config.py:14639
 msgid "Download options preferences"
 msgstr ""
 
-#: .././config.py:14614
+#: .././config.py:14645
 msgid ""
 "When applying download options to something, clone the general download "
 "options"
 msgstr ""
 
-#: .././config.py:14625
+#: .././config.py:14656
 msgid "After downloading a video, destroy its download options"
 msgstr ""
 
-#: .././config.py:14642
+#: .././config.py:14673
 msgid "_FFmpeg options"
 msgstr ""
 
-#: .././config.py:14649
+#: .././config.py:14680
 msgid "List of FFmpeg options managers"
 msgstr ""
 
-#: .././config.py:14669
+#: .././config.py:14700
 msgid "Current"
 msgstr ""
 
-#: .././config.py:14760
+#: .././config.py:14791
 msgid "Use these options"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:14851
+#: .././config.py:14882
 msgid "O_utput"
 msgstr ""
 
-#: .././config.py:14870
+#: .././config.py:14901
 msgid "_Output Tab"
 msgstr ""
 
-#: .././config.py:14878
+#: .././config.py:14909
 msgid "Output Tab preferences"
 msgstr ""
 
-#: .././config.py:14883
+#: .././config.py:14914
 msgid "Display downloader system commands in the Output Tab"
 msgstr ""
 
-#: .././config.py:14892
+#: .././config.py:14923
 msgid "Display output from downloader's STDOUT in the Output Tab"
 msgstr ""
 
-#: .././config.py:14901 .././config.py:15063
+#: .././config.py:14932 .././config.py:15094
 msgid "...but don't write each video's JSON data"
 msgstr ""
 
-#: .././config.py:14912 .././config.py:15074
+#: .././config.py:14943 .././config.py:15105
 msgid "...but don't write each video's download progress"
 msgstr ""
 
-#: .././config.py:14931
+#: .././config.py:14962
 msgid "Display output from downloader's STDERR in the Output Tab"
 msgstr ""
 
-#: .././config.py:14940
+#: .././config.py:14971
 msgid "Limit the size of Output Tab pages to"
 msgstr ""
 
-#: .././config.py:14961
+#: .././config.py:14992
 msgid "Empty pages in the Output Tab at the start of every operation"
 msgstr ""
 
-#: .././config.py:14971
+#: .././config.py:15002
 msgid ""
 "Show a summary of active threads (changes are applied when Tartube restarts)"
 msgstr ""
 
-#: .././config.py:14983
+#: .././config.py:15014
 msgid "During an update operation, automatically switch to the Output tab"
 msgstr ""
 
-#: .././config.py:14994
+#: .././config.py:15025
 msgid "During a refresh operation, show all matching videos in the Output Tab"
 msgstr ""
 
-#: .././config.py:15005
+#: .././config.py:15036
 msgid "...also show all non-matching videos"
 msgstr ""
 
-#: .././config.py:15034
+#: .././config.py:15065
 msgid "_Terminal window"
 msgstr ""
 
-#: .././config.py:15040
+#: .././config.py:15071
 msgid "Terminal window preferences"
 msgstr ""
 
-#: .././config.py:15045
+#: .././config.py:15076
 msgid "Write downloader system commands to the terminal window"
 msgstr ""
 
-#: .././config.py:15054
+#: .././config.py:15085
 msgid "Write output from downloader's STDOUT to the terminal window"
 msgstr ""
 
-#: .././config.py:15096
+#: .././config.py:15127
 msgid "Write output from downloader's STDERR to the terminal window"
 msgstr ""
 
-#: .././config.py:15115
+#: .././config.py:15146
 msgid "_Both"
 msgstr ""
 
-#: .././config.py:15120
+#: .././config.py:15151
 msgid ""
 "Special preferences (applies to both the Output Tab and the terminal window)"
 msgstr ""
 
-#: .././config.py:15127
+#: .././config.py:15158
 msgid "Downloader writes verbose output (youtube-dl debugging mode)"
 msgstr ""
 
-#: .././config.py:15136
+#: .././config.py:15167
 msgid "Youtube Stream Capture writes verbose output"
 msgstr ""
 
-#: .././config.py:16053
+#: .././config.py:16084
 msgid "Are you sure you want to create a new database at this location?"
 msgstr ""
 
-#: .././config.py:16160
+#: .././config.py:16191
 msgid "Are you sure you want to forget this database?"
 msgstr ""
 
-#: .././config.py:16195
+#: .././config.py:16226
 msgid "Are you sure you want to forget all databases except the current one?"
 msgstr ""
 
-#: .././config.py:16399
+#: .././config.py:16430
 msgid "No database exists at this location:"
 msgstr ""
 
-#: .././config.py:16401
+#: .././config.py:16432
 msgid "Do you want to create a new one?"
 msgstr ""
 
-#: .././config.py:17041
+#: .././config.py:17072
 msgid "The current options manager cannot be deleted"
 msgstr ""
 
-#: .././config.py:17049 .././config.py:18049
+#: .././config.py:17080 .././config.py:18080
 msgid "Are you sure you want to delete this options manager?"
 msgstr ""
 
-#: .././config.py:17243 .././config.py:17590 .././config.py:19074
+#: .././config.py:17274 .././config.py:17621 .././config.py:19105
 msgid "The new setting will be applied when Tartube restarts"
 msgstr ""
 
-#: .././config.py:18041
+#: .././config.py:18072
 msgid "The default options manager cannot be deleted"
 msgstr ""
 
-#: .././config.py:18736
+#: .././config.py:18767
 msgid "There is already a scheduled download with that name"
 msgstr ""
 
-#: .././config.py:18783
+#: .././config.py:18814
 msgid "Are you sure you want to delete this scheduled download?"
 msgstr ""
 
-#: .././config.py:18951
+#: .././config.py:18982
 msgid "Please select the AVConv executable"
 msgstr ""
 
-#: .././config.py:18984
+#: .././config.py:19015
 msgid "Please select the FFmpeg executable"
 msgstr ""
 
-#: .././config.py:19017
+#: .././config.py:19048
 msgid "Please select the Youtube Stream Capture executable"
 msgstr ""
 
-#: .././config.py:19807
+#: .././config.py:19837
 msgid "Select the youtube-dl-compatible executable"
 msgstr ""
 
-#: .././config.py:19991
+#: .././config.py:20021
 msgid "Database file not loaded"
 msgstr ""
 
-#: .././config.py:20011
+#: .././config.py:20041
 msgid "Did not try to load the database file"
 msgstr ""
 
-#: .././config.py:20036
+#: .././config.py:20066
 msgid "Database file loaded"
 msgstr ""
 
@@ -6385,97 +6397,97 @@ msgstr ""
 msgid "Cannot download videos in a private folder"
 msgstr ""
 
-#: .././downloads.py:2986 .././downloads.py:5243
+#: .././downloads.py:2986 .././downloads.py:5256
 msgid "Download did not start"
 msgstr ""
 
-#: .././downloads.py:2994 .././downloads.py:5255 .././info.py:364
+#: .././downloads.py:2994 .././downloads.py:5268 .././info.py:364
 #: .././updates.py:278 .././updates.py:476
 msgid "Child process exited with non-zero code: {}"
 msgstr ""
 
-#: .././downloads.py:3108 .././downloads.py:4060
+#: .././downloads.py:3108 .././downloads.py:4072
 msgid ""
 "This video has a URL that points to a channel or a playlist, not a video"
 msgstr ""
 
-#: .././downloads.py:3937 .././downloads.py:3951
+#: .././downloads.py:3949 .././downloads.py:3963
 msgid "Simulated download of:"
 msgstr ""
 
-#: .././downloads.py:3959
+#: .././downloads.py:3971
 msgid "Simulated download of video with unprintable characters"
 msgstr ""
 
 #. This object creates more messages for the Output Tab and/or terminal,
 #. than downloads.VideoDownloader would do, as the output generated by
 #. Youtube Stream Capture is not easy for the user to interpret
-#: .././downloads.py:5134
+#: .././downloads.py:5147
 msgid "Tartube is starting the stream capture..."
 msgstr ""
 
-#: .././downloads.py:5152
+#: .././downloads.py:5165
 msgid "Could not create a destination directory, capture halted"
 msgstr ""
 
-#: .././downloads.py:5173 .././downloads.py:5198
+#: .././downloads.py:5186 .././downloads.py:5211
 msgid "Youtube Stream Capture script not found:"
 msgstr ""
 
-#: .././downloads.py:5247
+#: .././downloads.py:5260
 msgid "Failed to capture the livestream"
 msgstr ""
 
-#: .././downloads.py:5251
+#: .././downloads.py:5264
 msgid "Stream capture terminated"
 msgstr ""
 
-#: .././downloads.py:5261
+#: .././downloads.py:5274
 msgid ""
 "Stream captured terminated without downloading any video segments "
 "(indicating an error with the stream)"
 msgstr ""
 
 #. Capture successful
-#: .././downloads.py:5277
+#: .././downloads.py:5290
 msgid "Stream capture successful"
 msgstr ""
 
 #. Show a confirmation message
-#: .././downloads.py:5307
+#: .././downloads.py:5320
 msgid "Merging file segments..."
 msgstr ""
 
-#: .././downloads.py:5327
+#: .././downloads.py:5340
 msgid "Segment merge did not start"
 msgstr ""
 
-#: .././downloads.py:5338
+#: .././downloads.py:5351
 msgid "Segment merge completed, but path not detected"
 msgstr ""
 
-#: .././downloads.py:5348
+#: .././downloads.py:5361
 msgid "Segment merge completed, but output file not found"
 msgstr ""
 
-#: .././downloads.py:5369
+#: .././downloads.py:5382
 msgid "File moved to:"
 msgstr ""
 
-#: .././downloads.py:5374
+#: .././downloads.py:5387
 msgid "Livestream download is complete"
 msgstr ""
 
-#: .././downloads.py:5379
+#: .././downloads.py:5392
 msgid "Failed to move output file"
 msgstr ""
 
-#: .././downloads.py:5548
+#: .././downloads.py:5561
 #, python-brace-format
 msgid "Stream capture is frozen, trying again (restart #{0})"
 msgstr ""
 
-#: .././downloads.py:5555
+#: .././downloads.py:5568
 msgid "Stream capture is frozen, giving up"
 msgstr ""
 
diff --git a/locale/ko_KR/LC_MESSAGES/base.mo b/locale/ko_KR/LC_MESSAGES/base.mo
index 1f1e8bdbf8daf2d7f09952b8f7dcd4ffc2088430..c8f3ace486a62fe153b36dc985406abb1e034d21 100644
GIT binary patch
delta 34310
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
ObFk&kzIlAZgZ~fgB7aK&

delta 34733
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

diff --git a/locale/ko_KR/LC_MESSAGES/base.po b/locale/ko_KR/LC_MESSAGES/base.po
index 886a710..c847be9 100644
--- a/locale/ko_KR/LC_MESSAGES/base.po
+++ b/locale/ko_KR/LC_MESSAGES/base.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-16 16:51+0000\n"
+"POT-Creation-Date: 2021-02-28 10:41+0000\n"
 "PO-Revision-Date: 2021-02-12 15:23+0900\n"
 "Last-Translator: mirusu400<mirusu400@naver.com>\n"
 "Language-Team: mirusu400\n"
@@ -37,7 +37,7 @@ msgstr "크게"
 msgid "Enormous"
 msgstr "엄청 크게"
 
-#: .././mainapp.py:945
+#: .././mainapp.py:944
 msgid ""
 "Failed to convert a thumbnail from .webp to .jpg. No more conversions will "
 "be attempted until you install FFmpeg on your system, or (if FFmpeg is "
@@ -50,158 +50,158 @@ msgstr ""
 "이 시도되지 않습니다. 경로 설정을 진행했다면 Tartube를 다시 시작해 주세요. 이"
 "러한 메시지를 표시하지 않을려면, 썸네일 변환 기능을 꺼주세요"
 
-#: .././mainapp.py:2665
+#: .././mainapp.py:2664
 msgid ""
 "Tartube can't create the folder in which its configuration file is saved"
 msgstr "Tartube는 구성 파일이 저장되는 폴더를 만들 수 없습니다"
 
 #. Load/save has been disabled. Show the error message in a dialogue
 #. window, then shut down
-#: .././mainapp.py:2712
+#: .././mainapp.py:2711
 msgid "Tartube failed to start because:"
 msgstr "Tartube는 다음과 같은 이유로 시작하지 못했습니다:"
 
-#: .././mainapp.py:2720
+#: .././mainapp.py:2719
 msgid "If you don't know how to resolve this error, please contact the authors"
 msgstr "이 문제를 해결할 방법을 모르겠으면, 개발자에게 문의해주세요"
 
-#: .././mainapp.py:2948
+#: .././mainapp.py:2947
 msgid "Because of an error, file load/save has been disabled"
 msgstr "오류에 의해, 파일 저장/불러오기 기능이 비활성화 되었습니다"
 
-#: .././mainapp.py:2957
+#: .././mainapp.py:2956
 msgid "Because of the error, file load/save has been disabled"
 msgstr "오류에 의해, 파일 저장/불러오기 기능이 비활성화 되었습니다"
 
-#: .././mainapp.py:3041
+#: .././mainapp.py:3040
 msgid "There is a download operation in progress."
 msgstr "진행중인 다운로드 작업이 있습니다."
 
-#: .././mainapp.py:3043
+#: .././mainapp.py:3042
 msgid "There is an update operation in progress."
 msgstr "진행중인 업데이트 작업이 있습니다."
 
-#: .././mainapp.py:3045
+#: .././mainapp.py:3044
 msgid "There is a refresh operation in progress."
 msgstr "진행중인 새로고침 작업이 있습니다."
 
-#: .././mainapp.py:3047
+#: .././mainapp.py:3046
 msgid "There is an info operation in progress."
 msgstr "진행중인 설정 작업이 있습니다."
 
-#: .././mainapp.py:3049
+#: .././mainapp.py:3048
 msgid "There is a tidy operation in progress."
 msgstr "진행중인 깔끔한 작업이 있습니다."
 
-#: .././mainapp.py:3051
+#: .././mainapp.py:3050
 msgid "There is a process operation in progress."
 msgstr "진행중인 처리 작업이 있습니다."
 
-#: .././mainapp.py:3056
+#: .././mainapp.py:3055
 msgid "Are you sure you want to quit Tartube?"
 msgstr "정말로 Tartube를 종료하시겠습니까?"
 
-#: .././mainapp.py:3261
+#: .././mainapp.py:3260
 msgid "Failed to load the Tartube config file (failed sanity check)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (완전성 검사 실패)"
 
-#: .././mainapp.py:3284
+#: .././mainapp.py:3283
 msgid "Failed to load the Tartube config file (file is locked)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잠겨있음)"
 
-#: .././mainapp.py:3314
+#: .././mainapp.py:3313
 msgid "Failed to load the Tartube config file (JSON load failure)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (JSON 로드 실패)"
 
-#: .././mainapp.py:3332
+#: .././mainapp.py:3331
 msgid "Failed to load the Tartube config file (file is invalid)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잘못됨)"
 
-#: .././mainapp.py:3350
+#: .././mainapp.py:3349
 msgid ""
 "Failed to load the Tartube config file (file cannot be read by this version)"
 msgstr ""
 "Tartube 구성 파일을 로드하지 못했습니다 (파일이 이 버전에선 읽을수 없음)"
 
-#: .././mainapp.py:3365
+#: .././mainapp.py:3364
 msgid "Failed to load the Tartube config file (missing file type)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일 유형 누락)"
 
-#: .././mainapp.py:4222
+#: .././mainapp.py:4221
 msgid "Failed to save the Tartube config file (failed sanity check)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (완전성 검사 실패)"
 
-#: .././mainapp.py:4542
+#: .././mainapp.py:4541
 msgid "Failed to save the Tartube config file (file is locked)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 잠겨있음)"
 
-#: .././mainapp.py:4544 .././mainapp.py:4584 .././mainapp.py:5920
-#: .././mainapp.py:5976 .././mainapp.py:5982
+#: .././mainapp.py:4543 .././mainapp.py:4583 .././mainapp.py:5941
+#: .././mainapp.py:5997 .././mainapp.py:6003
 msgid "File load/save has been disabled"
 msgstr "파일 저장/불러오기 기능이 비활성화 되었습니다"
 
-#: .././mainapp.py:4563
+#: .././mainapp.py:4562
 msgid "Failed to save the Tartube config file (file already in use)"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다 (파일이 사용중임)"
 
-#: .././mainapp.py:4583
+#: .././mainapp.py:4582
 msgid "Failed to save the Tartube config file"
 msgstr "Tartube 구성 파일을 로드하지 못했습니다"
 
-#: .././mainapp.py:4695 .././mainapp.py:4711 .././mainapp.py:4741
+#: .././mainapp.py:4694 .././mainapp.py:4710 .././mainapp.py:4740
 msgid "Failed to load the Tartube database file"
 msgstr "Tartube 데이터베이스 파일을 로드하지 못했습니다"
 
-#: .././mainapp.py:4756
+#: .././mainapp.py:4755
 msgid "The Tartube database file is invalid"
 msgstr "Tartube 데이터베이스 파일이 잘못되었습니다"
 
-#: .././mainapp.py:4772
+#: .././mainapp.py:4771
 msgid "Database file can't be read by this version of Tartube"
 msgstr "데이터베이스 파일을 이 Tartube 버전에서 읽을 수 없습니다"
 
-#: .././mainapp.py:5117
+#: .././mainapp.py:5116
 msgid "Tartube is applying an essential database update"
 msgstr "Tartube가 중요한 데이터베이스 업데이트를 적용중입니다"
 
-#: .././mainapp.py:5119
+#: .././mainapp.py:5118
 msgid "This might take a few minutes, so please be patient"
 msgstr "이 작업은 몇 분 정도 시간이 걸릴 수 있으므로, 잠시 기다려 주십시오"
 
-#: .././mainapp.py:5914 .././mainapp.py:5972 .././mainapp.py:5981
+#: .././mainapp.py:5935 .././mainapp.py:5993 .././mainapp.py:6002
 msgid "Failed to save the Tartube database file"
 msgstr "Tartube 데이터베이스 파일을 저장하지 못했습니다"
 
-#: .././mainapp.py:5917
+#: .././mainapp.py:5938
 msgid "(Could not make a backup copy of the existing file)"
 msgstr "(존재하는 파일의 백업 복사본을 만들지 못했습니다)"
 
-#: .././mainapp.py:5953
+#: .././mainapp.py:5974
 msgid "Failed to save the Tartube database file (file already in use)"
 msgstr ""
 "Tartube 데이터베이스 파일을 저장하는 데 실패했습니다 (파일이 이미 사용중)"
 
-#: .././mainapp.py:5974
+#: .././mainapp.py:5995
 msgid "A backup of the previous file can be found at:"
 msgstr "이전 파일의 백업본을 발견했습니다:"
 
-#: .././mainapp.py:6155 .././mainapp.py:6165
+#: .././mainapp.py:6176 .././mainapp.py:6186
 msgid "Database file created"
 msgstr "데이터베이스 파일이 생성됨"
 
-#: .././mainapp.py:6559
+#: .././mainapp.py:6580
 msgid "Tartube's database can't be checked while an operation is in progress"
 msgstr "Tartube의 데이터베이스는 작업이 진행중일 때 확인할 수 없습니다"
 
-#: .././mainapp.py:6795
+#: .././mainapp.py:6816
 msgid "Database check complete, no inconsistencies found"
 msgstr "데이터베이스 확인이 완료되었습니다. 불일치 사항이 없습니다"
 
-#: .././mainapp.py:6827
+#: .././mainapp.py:6848
 msgid "Database check complete, problems found:"
 msgstr "데이터베이스 확인이 완료되었습니다. 문제가 있습니다:"
 
-#: .././mainapp.py:6830
+#: .././mainapp.py:6851
 msgid ""
 "Do you want to repair these problems? (The database will be fixed, but no "
 "files will be deleted)"
@@ -209,100 +209,100 @@ msgstr ""
 "이 문제사항들을 복구하겠습니까? (데이터베이스가 수정되지만, 파일이 삭제되진 "
 "않습니다)"
 
-#: .././mainapp.py:7003
+#: .././mainapp.py:7024
 msgid "Database inconsistencies repaired"
 msgstr "데이터베이스 불일치 사항 복구됨"
 
-#: .././mainapp.py:7895 .././config.py:16026
+#: .././mainapp.py:7918 .././config.py:16057
 msgid "Please select Tartube's data folder"
 msgstr "Tartube의 데이터 폴더를 선택해 주세요"
 
-#: .././mainapp.py:8258
+#: .././mainapp.py:8281
 msgid ""
 "A download operation cannot start if one or more configuration windows are "
 "still open"
 msgstr "하나 이상의 설정 창이 열려 있으면 다운로드 작업이 시작되지 않습니다"
 
-#: .././mainapp.py:8282 .././mainapp.py:8307
+#: .././mainapp.py:8305 .././mainapp.py:8330
 #, python-brace-format
 msgid "You only have {0} / {1} Mb remaining on your device"
 msgstr "디바이스 장치에 남은 용량이 {0} / {1} Mb 밖에 없습니다"
 
-#: .././mainapp.py:8310 .././mainapp.py:13970 .././mainapp.py:14086
-#: .././mainapp.py:14268 .././mainwin.py:17484
+#: .././mainapp.py:8333 .././mainapp.py:14006 .././mainapp.py:14122
+#: .././mainapp.py:14304 .././mainwin.py:17484
 msgid "Are you sure you want to continue?"
 msgstr "계속 진행하시겠습니까?"
 
-#: .././mainapp.py:8397
+#: .././mainapp.py:8420
 msgid "There is nothing to check!"
 msgstr "확인할 항목이 없습니다!"
 
-#: .././mainapp.py:8399
+#: .././mainapp.py:8422
 msgid "There is nothing to download!"
 msgstr "다운로드 할 항 목이 없습니다!"
 
-#: .././mainapp.py:8642
+#: .././mainapp.py:8665
 msgid "Download operation complete"
 msgstr "다운로드 작업 완료"
 
-#: .././mainapp.py:8644
+#: .././mainapp.py:8667
 msgid "Download operation halted"
 msgstr "다운로드 작업 중지됨"
 
-#: .././mainapp.py:8648
+#: .././mainapp.py:8671
 msgid "Videos downloaded:"
 msgstr "다운로드한 비디오:"
 
-#: .././mainapp.py:8649
+#: .././mainapp.py:8672
 msgid "Videos checked:"
 msgstr "확인한 비디오:"
 
-#: .././mainapp.py:8652 .././mainapp.py:9253 .././mainapp.py:9747
-#: .././mainapp.py:10147
+#: .././mainapp.py:8675 .././mainapp.py:9276 .././mainapp.py:9770
+#: .././mainapp.py:10170
 msgid "Time taken:"
 msgstr "소요된 시간:"
 
-#: .././mainapp.py:8757
+#: .././mainapp.py:8780
 msgid ""
 "An update operation cannot start if one or more configuration windows are "
 "still open"
 msgstr "하나 이상의 설정 창이 열려 있으면 업데이트 작업이 시작되지 않습니다"
 
-#: .././mainapp.py:8943
+#: .././mainapp.py:8966
 msgid "Installation failed"
 msgstr "설치 실패"
 
-#: .././mainapp.py:8945
+#: .././mainapp.py:8968
 msgid "Installation complete"
 msgstr "설치 완료"
 
-#: .././mainapp.py:8949
+#: .././mainapp.py:8972
 msgid "Update operation failed"
 msgstr "업데이트 작업 실패"
 
-#: .././mainapp.py:8951
+#: .././mainapp.py:8974
 msgid "Update operation halted"
 msgstr "업데이트 작업 중지"
 
-#: .././mainapp.py:8953
+#: .././mainapp.py:8976
 msgid "Update operation complete"
 msgstr "업데이트 작업 성공"
 
-#: .././mainapp.py:8955
+#: .././mainapp.py:8978
 msgid "version:"
 msgstr "버전:"
 
-#: .././mainapp.py:8959
+#: .././mainapp.py:8982
 msgid "(unknown)"
 msgstr "(알수없음)"
 
-#: .././mainapp.py:9046
+#: .././mainapp.py:9069
 msgid ""
 "A refresh operation cannot start if one or more configuration windows are "
 "still open"
 msgstr "하나 이상의 설정 창이 열려 있으면 새로고침 작업이 시작되지 않습니다"
 
-#: .././mainapp.py:9059
+#: .././mainapp.py:9082
 msgid ""
 "During a refresh operation, Tartube analyses its data folder, looking for "
 "videos that haven't yet been added to its database"
@@ -310,7 +310,7 @@ msgstr ""
 "새로고침 작업을 하는 동안, Tartube는 데이터 폴더를 분석하고, 데이터베이스에 "
 "추가되지 않은 비디오를 탐색합니다"
 
-#: .././mainapp.py:9063
+#: .././mainapp.py:9086
 msgid ""
 "You only need to perform a refresh operation if you have manually copied "
 "videos into Tartube's data folder"
@@ -318,21 +318,21 @@ msgstr ""
 "Tartube의 데이터 폴더에 수동으로 비디오를 복사했다면 새로고침 작업을 해야 합"
 "니다"
 
-#: .././mainapp.py:9070
+#: .././mainapp.py:9093
 msgid ""
 "Before starting a refresh operation, you should click the 'Check all' button "
 "in the main window"
 msgstr ""
 "새로고침 작업을 시작하기 전에, 메인 화면의 '모두 선택' 버튼을 클릭해야 합니다"
 
-#: .././mainapp.py:9077
+#: .././mainapp.py:9100
 msgid ""
 "Before starting a refresh operation, you should right-click the channel and "
 "select 'Check channel'"
 msgstr ""
 "새로고침 작업을 시작하기 전에, 채널을 우클릭하고 '채널 검사'를 선택해주세요"
 
-#: .././mainapp.py:9084
+#: .././mainapp.py:9107
 msgid ""
 "Before starting a refresh operation, you should right-click the playlist and "
 "select 'Check playlist'"
@@ -340,110 +340,110 @@ msgstr ""
 "새로고침 작업을 시작하기 전에, 플레이르스트를 우클릭하고 '플레이리스트 검"
 "사'를 선택해주세요"
 
-#: .././mainapp.py:9091
+#: .././mainapp.py:9114
 msgid ""
 "Before starting a refresh operation, you should right-click the folder and "
 "select 'Check folder'"
 msgstr ""
 "새로고침 작업을 시작하기 전에, 폴더를 우클릭하고 '폴더 검사'를 선택해주세요"
 
-#: .././mainapp.py:9096
+#: .././mainapp.py:9119
 msgid "Are you sure you want to proceed with the refresh operation?"
 msgstr "새로고침 작업을 계속하시겠습니까?"
 
-#: .././mainapp.py:9248
+#: .././mainapp.py:9271
 msgid "Refresh operation complete"
 msgstr "새로고침 작업 완료됨"
 
-#: .././mainapp.py:9250
+#: .././mainapp.py:9273
 msgid "Refresh operation halted"
 msgstr "새로고침 작업 중지됨"
 
-#: .././mainapp.py:9355
+#: .././mainapp.py:9378
 msgid ""
 "An info operation cannot start if one or more configuration windows are "
 "still open"
 msgstr "하나 이상의 설정 창이 열려있으면 설정 작업이 시작되지 않습니다"
 
-#: .././mainapp.py:9471
+#: .././mainapp.py:9494
 msgid "Operation failed"
 msgstr "작업 실패"
 
-#: .././mainapp.py:9473 .././downloads.py:400
+#: .././mainapp.py:9496 .././downloads.py:400
 msgid "Operation complete"
 msgstr "작업 성공"
 
-#: .././mainapp.py:9475
+#: .././mainapp.py:9498
 msgid "Click the Output Tab to see the results"
 msgstr "결과를 보려면 출력 탭을 클릭하세요"
 
-#: .././mainapp.py:9488
+#: .././mainapp.py:9511
 msgid "A new release is available!"
 msgstr "새 버전이 업데이트 되었습니다!"
 
-#: .././mainapp.py:9490
+#: .././mainapp.py:9513
 msgid "Your installation is up to date!"
 msgstr "설치된 버전이 최신 버전입니다!"
 
-#: .././mainapp.py:9492
+#: .././mainapp.py:9515
 msgid "Installed version:"
 msgstr "설치된 버전:"
 
-#: .././mainapp.py:9497
+#: .././mainapp.py:9520
 msgid "Stable release:"
 msgstr "안정 버전:"
 
-#: .././mainapp.py:9502
+#: .././mainapp.py:9525
 msgid "Stable release: not found"
 msgstr "안정 버전: 존재하지 않음"
 
-#: .././mainapp.py:9505
+#: .././mainapp.py:9528
 msgid "Development release:"
 msgstr "개발 버전:"
 
-#: .././mainapp.py:9507
+#: .././mainapp.py:9530
 msgid "Development release: not found"
 msgstr "개발 버전 존재하지 않음"
 
-#: .././mainapp.py:9614
+#: .././mainapp.py:9637
 msgid ""
 "A tidy operation cannot start if one or more configuration windows are still "
 "open"
 msgstr "하나 이상의 설정 창이 열려있으면 마무리 작업이 시작되지 않습니다"
 
-#: .././mainapp.py:9742
+#: .././mainapp.py:9765
 msgid "Tidy operation complete"
 msgstr "마무리 작업 완료"
 
-#: .././mainapp.py:9744
+#: .././mainapp.py:9767
 msgid "Tidy operation halted"
 msgstr "마무리 작업 중지됨"
 
-#: .././mainapp.py:9911 .././mainwin.py:18169
+#: .././mainapp.py:9934 .././mainwin.py:18169
 msgid "Livestream has started"
 msgstr "생방송이 시작됨"
 
-#: .././mainapp.py:10136
+#: .././mainapp.py:10159
 msgid "Process operation complete"
 msgstr "처리 작업 완료됨"
 
-#: .././mainapp.py:10138
+#: .././mainapp.py:10161
 msgid "Process operation halted"
 msgstr "처리 작업이 중지됨"
 
-#: .././mainapp.py:10142
+#: .././mainapp.py:10165
 msgid "Files processed:"
 msgstr "처리된 파일:"
 
-#: .././mainapp.py:10143
+#: .././mainapp.py:10166
 msgid "Errors:"
 msgstr "오류:"
 
-#: .././mainapp.py:11403 .././mainapp.py:11578
+#: .././mainapp.py:11435 .././mainapp.py:11610
 msgid "Cannot move anything to:"
 msgstr "옮길 수 없습니다:"
 
-#: .././mainapp.py:11405 .././mainapp.py:11580
+#: .././mainapp.py:11437 .././mainapp.py:11612
 msgid ""
 "because a file or folder with the same name already exists (although "
 "Tartube's database doesn't know anything about it)"
@@ -451,7 +451,7 @@ msgstr ""
 "(Tartube의 데이터베이스에선 확인할 수 없지만) 같은 이름의 파일이나 폴더가 존"
 "재하기 때문입니다"
 
-#: .././mainapp.py:11409
+#: .././mainapp.py:11441
 msgid ""
 "You probably created that file/folder accidentally, in which case you should "
 "delete it manually before trying again"
@@ -459,19 +459,19 @@ msgstr ""
 "해당 파일이나 폴더를 실수로 만들었을 수 있으므로, 이 경우 재시도 전에 수동으"
 "로 삭제해야 합니다"
 
-#: .././mainapp.py:11423 .././mainapp.py:11598
+#: .././mainapp.py:11455 .././mainapp.py:11630
 msgid "Are you sure you want to move this channel:"
 msgstr "이 채널을 이동하시겠습니까?:"
 
-#: .././mainapp.py:11425 .././mainapp.py:11600
+#: .././mainapp.py:11457 .././mainapp.py:11632
 msgid "Are you sure you want to move this playlist:"
 msgstr "이 플레이리스트를 이동하시겠습니까?:"
 
-#: .././mainapp.py:11427 .././mainapp.py:11602
+#: .././mainapp.py:11459 .././mainapp.py:11634
 msgid "Are you sure you want to move this folder:"
 msgstr "이 폴더를 이동하시겠습니까?:"
 
-#: .././mainapp.py:11432
+#: .././mainapp.py:11464
 msgid ""
 "This procedure will move all downloaded files to the top level of Tartube's "
 "data folder"
@@ -479,21 +479,21 @@ msgstr ""
 "이 작업은 모든 다운로드 받은 파일을 Tartube 데이터 폴더의 최상위 위치로 이동"
 "합니다"
 
-#: .././mainapp.py:11532
+#: .././mainapp.py:11564
 msgid "Channels, playlists and folders can only be dragged into a folder"
 msgstr "채널, 플레이리스트, 폴더만 폴더 안으로 드래그 할 수 있습ㄴ디ㅏ"
 
-#: .././mainapp.py:11545
+#: .././mainapp.py:11577
 #, python-brace-format
 msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)"
 msgstr "고정된 폴더 '{0}'(은)는 이동할 수 없습니다 (하지만 숨길 순 있습니다)"
 
-#: .././mainapp.py:11558
+#: .././mainapp.py:11590
 #, python-brace-format
 msgid "The folder '{0}' can only contain videos"
 msgstr "폴더 '{0}'은(는) 비디오만 넣을 수 있습니다"
 
-#: .././mainapp.py:11585
+#: .././mainapp.py:11617
 msgid ""
 "You probably created that file/folder accidentally, in which case, you "
 "should delete it manually before trying again"
@@ -501,15 +501,15 @@ msgstr ""
 "해당 파일이나 폴더를 실수로 만들었을 수 있으므로, 이 경우 재시도 전에 수동으"
 "로 삭제해야 합니다"
 
-#: .././mainapp.py:11604
+#: .././mainapp.py:11636
 msgid "into this folder:"
 msgstr "이 폴더로:"
 
-#: .././mainapp.py:11608
+#: .././mainapp.py:11640
 msgid "This procedure will move all downloaded files to the new location"
 msgstr "이 작업은 모든 다운로드 받은 파일을 새 위치로 이동합니다"
 
-#: .././mainapp.py:11614
+#: .././mainapp.py:11646
 msgid ""
 "WARNING: The destination folder is marked as temporary, so everything inside "
 "it will be DELETED when Tartube restarts!"
@@ -517,101 +517,101 @@ msgstr ""
 "경고: 이 목적지 폴더는 임시 폴더이므로, Tartube가 재시작되면 해당 폴더 안의 "
 "모든게 삭제됩니다!!!"
 
-#: .././mainapp.py:12078
+#: .././mainapp.py:12114
 msgid ""
 "Are you SURE you want to delete files? This procedure cannot be reversed!"
 msgstr "정말로 파일을 삭제하겠습니까? 이 작업은 되돌릴 수 없습니다!"
 
-#: .././mainapp.py:13954 .././mainapp.py:14070 .././mainapp.py:14252
+#: .././mainapp.py:13990 .././mainapp.py:14106 .././mainapp.py:14288
 #, python-brace-format
 msgid "The channel contains {0} item(s), so this action may take a while"
 msgstr "이 채널은 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다"
 
-#: .././mainapp.py:13960 .././mainapp.py:14076 .././mainapp.py:14258
+#: .././mainapp.py:13996 .././mainapp.py:14112 .././mainapp.py:14294
 #, python-brace-format
 msgid "The playlist contains {0} item(s), so this action may take a while"
 msgstr "이 플레이리스트는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다"
 
-#: .././mainapp.py:13966 .././mainapp.py:14082 .././mainapp.py:14264
+#: .././mainapp.py:14002 .././mainapp.py:14118 .././mainapp.py:14300
 #, python-brace-format
 msgid "The folder contains {0} item(s), so this action may take a while"
 msgstr "이 폴더는 {0}개의 항목이 있으므로, 시간이 걸릴 수 있습니다"
 
-#: .././mainapp.py:14332 .././mainapp.py:18504 .././mainapp.py:18636
-#: .././mainapp.py:18767
+#: .././mainapp.py:14368 .././mainapp.py:18540 .././mainapp.py:18672
+#: .././mainapp.py:18803
 #, python-brace-format
 msgid "The name '{0}' is not allowed"
 msgstr "파일 이름 '{0}'은(는) 허용되지 않았습니다"
 
-#: .././mainapp.py:14341
+#: .././mainapp.py:14377
 #, python-brace-format
 msgid "The name '{0}' is already in use"
 msgstr "파일 이름 '{0}'은(는) 이미 사용중입니다"
 
-#: .././mainapp.py:14354
+#: .././mainapp.py:14390
 #, python-brace-format
 msgid "Failed to rename '{0}'"
 msgstr "'{0}'로 이름변경에 실패했습니다."
 
-#: .././mainapp.py:14701
+#: .././mainapp.py:14737
 msgid "Select where to save the database export"
 msgstr "내보낸 데이터베이스를 저장할 위치를 선택하세요"
 
-#: .././mainapp.py:14822
+#: .././mainapp.py:14858
 msgid "There is nothing to export!"
 msgstr "내보낼 항목이 없습니다!"
 
-#: .././mainapp.py:14862 .././mainapp.py:14928
+#: .././mainapp.py:14898 .././mainapp.py:14964
 msgid "Failed to save the database export file:"
 msgstr "내보낸 데이터베이스 파일을 저장하는데 실패했습니다:"
 
-#: .././mainapp.py:14936
+#: .././mainapp.py:14972
 msgid "Database export file saved to:"
 msgstr "내보낸 데이터베이스 파일이 저장되었습니다:"
 
-#: .././mainapp.py:14973
+#: .././mainapp.py:15009
 msgid "Select the database export"
 msgstr "내보낼 데이터베이스 파일을 선택하세요"
 
-#: .././mainapp.py:14994 .././mainapp.py:15008
+#: .././mainapp.py:15030 .././mainapp.py:15044
 msgid "Failed to load the database export file"
 msgstr "내보낸 데이터에피스 파일을 로드하는데 실패했습니다"
 
-#: .././mainapp.py:15025
+#: .././mainapp.py:15061
 msgid "The database export file is invalid"
 msgstr "내보낸 데이터베이스 파일이 잘못되었습니다"
 
-#: .././mainapp.py:15036
+#: .././mainapp.py:15072
 msgid "The database export file is invalid (or empty)"
 msgstr "내보낸 데이터베이스 파일이 잘못되었습니다 (혹은 비어있습니다)"
 
-#: .././mainapp.py:15080
+#: .././mainapp.py:15116
 msgid "Nothing was imported from the database export file"
 msgstr "내보낸 데이터베이스 파일에서 가져올 것이 없습니다"
 
 #. Show a confirmation
-#: .././mainapp.py:15094
+#: .././mainapp.py:15130
 msgid "Imported"
 msgstr "가져온것"
 
-#: .././mainapp.py:15095 .././mainwin.py:1287 .././config.py:888
-#: .././config.py:9274 .././config.py:11492
+#: .././mainapp.py:15131 .././mainwin.py:1287 .././config.py:888
+#: .././config.py:9305 .././config.py:11523
 msgid "Videos"
 msgstr "비디오"
 
-#: .././mainapp.py:15096 .././config.py:9307 .././config.py:11525
+#: .././mainapp.py:15132 .././config.py:9338 .././config.py:11556
 msgid "Channels"
 msgstr "채널"
 
-#: .././mainapp.py:15097 .././config.py:9318 .././config.py:11536
+#: .././mainapp.py:15133 .././config.py:9349 .././config.py:11567
 msgid "Playlists"
 msgstr "플레이리스트"
 
-#: .././mainapp.py:15098
+#: .././mainapp.py:15134
 msgid "Folders"
 msgstr "폴더"
 
-#: .././mainapp.py:15482
+#: .././mainapp.py:15518
 msgid ""
 "The video file is missing from Tartube's data folder (try downloading the "
 "video again!)"
@@ -619,107 +619,107 @@ msgstr ""
 "비디오 파일이 Tartube의 데이터 폴더에 존재하지 않습니다 (다시 다운로드 시도"
 "해 보세요!)"
 
-#: .././mainapp.py:16007 .././mainapp.py:16389
+#: .././mainapp.py:16043 .././mainapp.py:16425
 msgid "Select where to save the options export"
 msgstr "내보낸 설정을 저장할 위치를 선택하세요"
 
-#: .././mainapp.py:16055 .././mainapp.py:16437
+#: .././mainapp.py:16091 .././mainapp.py:16473
 msgid "Failed to save the options export file:"
 msgstr "내보낸 설정을 저장하는데 실패했습니다:"
 
-#: .././mainapp.py:16063
+#: .././mainapp.py:16099
 msgid "Download options exported to to:"
 msgstr "다운로드 옵션이 내보내졌습니다:"
 
-#: .././mainapp.py:16094 .././mainapp.py:16476
+#: .././mainapp.py:16130 .././mainapp.py:16512
 msgid "Select the options export file"
 msgstr "내보낼 설정 파일을 선택하세요"
 
-#: .././mainapp.py:16113 .././mainapp.py:16495
+#: .././mainapp.py:16149 .././mainapp.py:16531
 msgid "Failed to load the options export file"
 msgstr "내보낸 설정 파일을 불러오지 못했습니다"
 
-#: .././mainapp.py:16130 .././mainapp.py:16512
+#: .././mainapp.py:16166 .././mainapp.py:16548
 msgid "The options export file is invalid"
 msgstr "내보낸 설정 파일이 잘못되었습니다"
 
-#: .././mainapp.py:16141 .././mainapp.py:16523
+#: .././mainapp.py:16177 .././mainapp.py:16559
 msgid "The options export file is invalid (or empty)"
 msgstr "내보낸 설정 파일이 잘못되었습니다 (혹은 비어있습니다)"
 
-#: .././mainapp.py:16445
+#: .././mainapp.py:16481
 msgid "FFmpeg options exported to to:"
 msgstr "FFmpeg 설정이 내보내졌습니다:"
 
-#: .././mainapp.py:17419
+#: .././mainapp.py:17455
 msgid "Please select a destination folder"
 msgstr "목적지 폴더를 선택해주세요"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17491
+#: .././mainapp.py:17527
 msgid "Are you sure you want to clear this list?"
 msgstr "정말로 이 리스트를 비우시겠습니까?"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17538
+#: .././mainapp.py:17574
 msgid "Are you sure you want to clear downloaded videos?"
 msgstr "정말로 다운로드 받은 비디오들을 지우시겠습니까?"
 
-#: .././mainapp.py:17631 .././mainwin.py:14535
+#: .././mainapp.py:17667 .././mainwin.py:14535
 msgid "Only checked/downloaded videos can be processed by FFmpeg"
 msgstr "체크하거나 다운로드 받은 비디오들만 FFmpeg에 의해 처리됩니다"
 
-#: .././mainapp.py:17748
+#: .././mainapp.py:17784
 msgid "No video(s) have been downloaded"
 msgstr "아무 비디오도 다운로드 되지 않았습니다"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17846
+#: .././mainapp.py:17882
 msgid "Are you sure you want to remove the selected item(s)?"
 msgstr "정말로 선택한 항목들을 삭제하시겠습니까?"
 
-#: .././mainapp.py:18495
+#: .././mainapp.py:18531
 msgid "You must give the channel a name"
 msgstr "채널에 이름을 입력해야 합니다"
 
-#: .././mainapp.py:18513 .././mainapp.py:18776
+#: .././mainapp.py:18549 .././mainapp.py:18812
 msgid "You must enter a valid URL"
 msgstr "올바른 URL을 입력해야 합니다"
 
-#: .././mainapp.py:18628
+#: .././mainapp.py:18664
 msgid "You must give the folder a name"
 msgstr "폴더에 이름을 입력해야 합니다"
 
-#: .././mainapp.py:18758
+#: .././mainapp.py:18794
 msgid "You must give the playlist a name"
 msgstr "플레이리스트에 이름을 입력해야 합니다"
 
-#: .././mainapp.py:18913
+#: .././mainapp.py:18949
 msgid "The following videos are duplicates:"
 msgstr "해당하는 비디오들이 복제되었습니다:"
 
-#: .././mainapp.py:18977
+#: .././mainapp.py:19013
 msgid "There were no livestream alerts to cancel"
 msgstr "취소할 생방송 알림이 없습니다"
 
-#: .././mainapp.py:18979
+#: .././mainapp.py:19015
 msgid "Livestream alerts for 1 video were cancelled"
 msgstr "비디오 1개에 대한 생방송 알림이 취소되었습니다"
 
-#: .././mainapp.py:18982
+#: .././mainapp.py:19018
 #, python-brace-format
 msgid "Livestream alerts for {0} videos were cancelled"
 msgstr "비디오 {0}개에 대한 생방송 알림이 취소되었습니다"
 
-#: .././mainapp.py:19352
+#: .././mainapp.py:19388
 msgid "All Tartube data has been saved"
 msgstr "모든 Tartube 데이터가 저장되었습니다"
 
-#: .././mainapp.py:19382
+#: .././mainapp.py:19418
 msgid "Database saved"
 msgstr "데이터베이스 저장됨"
 
-#: .././mainapp.py:19637 .././mainwin.py:13487
+#: .././mainapp.py:19673 .././mainwin.py:13487
 msgid ""
 "Files cannot be recovered, after being deleted. Are you sure you want to "
 "continue?"
@@ -728,39 +728,39 @@ msgstr "파일은 삭제된 뒤 복구가 불가능합니다. 계속하시겠습
 #. Because livestream operations run silently in the background, when
 #. the user goes to the trouble of clicking a menu item in the
 #. main window's menu, tell them why nothing is happening
-#: .././mainapp.py:19677
+#: .././mainapp.py:19713
 msgid "Cannot update existing livestreams because"
 msgstr "존재하는 생방송을 업데이트 하지 못했습니다"
 
-#: .././mainapp.py:19679
+#: .././mainapp.py:19715
 msgid "there is another operation running"
 msgstr "다른 작업이 진행중입니다"
 
-#: .././mainapp.py:19681
+#: .././mainapp.py:19717
 msgid "they are currently being updated"
 msgstr "이미 업데이트를 진행중입니다"
 
-#: .././mainapp.py:19683
+#: .././mainapp.py:19719
 msgid "one or more configuration windows are open"
 msgstr "하나 이상의 설정 창이 열려있습니다"
 
-#: .././mainapp.py:19685
+#: .././mainapp.py:19721
 msgid "there are no livestreams to update"
 msgstr "업데이트 할 생방송이 없습니다"
 
-#: .././mainapp.py:19759
+#: .././mainapp.py:19795
 msgid "There is already a channel with that name"
 msgstr "동일한 이름을 가진 채널이 이미 존재합니다"
 
-#: .././mainapp.py:19761
+#: .././mainapp.py:19797
 msgid "There is already a playlist with that name"
 msgstr "동일한 이름을 가진 플레이리스트가 이미 존재합니다"
 
-#: .././mainapp.py:19763
+#: .././mainapp.py:19799
 msgid "There is already a folder with that name"
 msgstr "동일한 이름을 가진 폴더가 이미 존재합니다"
 
-#: .././mainapp.py:19766
+#: .././mainapp.py:19802
 msgid "(so please choose a different name)"
 msgstr "(다른 이름을 설정해 주세요)"
 
@@ -769,7 +769,7 @@ msgid "Tartube cannot start because it cannot find its icons folder"
 msgstr "아이콘 폴더를 찾지 못해 Tartube를 켜지 못했습니다"
 
 #. File column
-#: .././mainwin.py:943 .././config.py:6357
+#: .././mainwin.py:943 .././config.py:6359
 msgid "_File"
 msgstr "_파일"
 
@@ -812,7 +812,7 @@ msgid "_General download options..."
 msgstr "_일반 다운로드 설정..."
 
 #. Media column
-#: .././mainwin.py:1009 .././config.py:9834
+#: .././mainwin.py:1009 .././config.py:9865
 msgid "_Media"
 msgstr "_미디어"
 
@@ -870,7 +870,7 @@ msgstr "_테스트 코드 실행하기"
 
 #. Operations column
 #. Add this tab...
-#: .././mainwin.py:1115 .././config.py:12776
+#: .././mainwin.py:1115 .././config.py:12807
 msgid "_Operations"
 msgstr "_작업"
 
@@ -913,7 +913,7 @@ msgid "_Stop current operation"
 msgstr "_현재 작업 멈추기"
 
 #. Livestreams column
-#: .././mainwin.py:1195 .././config.py:13480
+#: .././mainwin.py:1195 .././config.py:13511
 msgid "_Livestreams"
 msgstr "_생방송"
 
@@ -996,7 +996,7 @@ msgstr "모든 비디오, 채널, 플레이리스트, 폴더 선택"
 #: .././mainwin.py:1393 .././mainwin.py:19371 .././mainwin.py:19376
 #: .././mainwin.py:19384 .././mainwin.py:19633 .././mainwin.py:19645
 #: .././mainwin.py:20380 .././mainwin.py:21727 .././mainwin.py:21753
-#: .././config.py:12481
+#: .././config.py:12512
 msgid "Download"
 msgstr "다운로드"
 
@@ -1013,7 +1013,7 @@ msgstr "정지"
 msgid "Stop the current operation"
 msgstr "현재 작업 정지"
 
-#: .././mainwin.py:1443 .././config.py:11068
+#: .././mainwin.py:1443 .././config.py:11099
 msgid "Switch"
 msgstr "변경"
 
@@ -1045,8 +1045,8 @@ msgstr "종료"
 msgid "Close Tartube"
 msgstr "Tartube 닫기"
 
-#: .././mainwin.py:1532 .././config.py:7115 .././config.py:11292
-#: .././config.py:11890
+#: .././mainwin.py:1532 .././config.py:7146 .././config.py:11323
+#: .././config.py:11921
 msgid "_Videos"
 msgstr "_비디오들"
 
@@ -1062,7 +1062,7 @@ msgstr "_클래식 모드"
 msgid "_Output"
 msgstr "_출력"
 
-#: .././mainwin.py:1566 .././config.py:8450 .././config.py:8956
+#: .././mainwin.py:1566 .././config.py:8481 .././config.py:8987
 msgid "_Errors / Warnings"
 msgstr "_오류 / 경고"
 
@@ -1123,12 +1123,12 @@ msgstr "더 많은 설정"
 msgid "Sort"
 msgstr "정렬"
 
-#: .././mainwin.py:1875 .././config.py:8235
+#: .././mainwin.py:1875 .././config.py:8266
 msgid "Upload time"
 msgstr "업로드 시간"
 
-#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7138
-#: .././config.py:12481 .././config.py:14402 .././config.py:14669
+#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7169
+#: .././config.py:12512 .././config.py:14433 .././config.py:14700
 msgid "Name"
 msgstr "이름"
 
@@ -1220,11 +1220,11 @@ msgstr "속도"
 msgid "ETA"
 msgstr "예상 시간"
 
-#: .././mainwin.py:2219 .././config.py:8821
+#: .././mainwin.py:2219 .././config.py:8852
 msgid "New videos"
 msgstr "새 비디오"
 
-#: .././mainwin.py:2219 .././config.py:404 .././config.py:8191
+#: .././mainwin.py:2219 .././config.py:404 .././config.py:8222
 msgid "Duration"
 msgstr "기간"
 
@@ -1232,7 +1232,7 @@ msgstr "기간"
 msgid "Date"
 msgstr "날짜"
 
-#: .././mainwin.py:2220 .././config.py:8147
+#: .././mainwin.py:2220 .././config.py:8178
 msgid "File"
 msgstr "파일"
 
@@ -1303,7 +1303,7 @@ msgstr "목적지 폴더 열기"
 msgid "Format:"
 msgstr "포맷:"
 
-#: .././mainwin.py:2591 .././config.py:14402
+#: .././mainwin.py:2591 .././config.py:14433
 msgid "Default"
 msgstr "기본"
 
@@ -1332,14 +1332,14 @@ msgid "Play video"
 msgstr "비디오 재생"
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11105
-#: .././config.py:12546
+#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11136
+#: .././config.py:12577
 msgid "Move up"
 msgstr "위로 올리기"
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11113
-#: .././config.py:12555
+#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11144
+#: .././config.py:12586
 msgid "Move down"
 msgstr "아래로 내리기"
 
@@ -1375,7 +1375,7 @@ msgstr "다운로드된 항목 비우기"
 msgid "Maximum page size"
 msgstr "최대 페이지 크기"
 
-#: .././mainwin.py:3017 .././config.py:12481
+#: .././mainwin.py:3017 .././config.py:12512
 msgid "Time"
 msgstr "시간"
 
@@ -1403,7 +1403,7 @@ msgstr "서버 오류 표시하기"
 msgid "Show server warnings"
 msgstr "서버 경고 표시하기"
 
-#: .././mainwin.py:3113 .././config.py:9936
+#: .././mainwin.py:3113 .././config.py:9967
 msgid "Clear list"
 msgstr "리스트 초기화"
 
@@ -1756,7 +1756,7 @@ msgstr "_중지 시 다운로드"
 msgid "Not a _livestream"
 msgstr "_생방송이 아님"
 
-#: .././mainwin.py:5295 .././config.py:8310
+#: .././mainwin.py:5295 .././config.py:8341
 msgid "_Livestream"
 msgstr "_생방송"
 
@@ -2429,8 +2429,8 @@ msgstr "Invidious"
 #. this function returns. Workaround is to make the label unclickable,
 #. then use a Glib timer to restore it (after some small fraction of a
 #. second)
-#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9296
-#: .././config.py:11514
+#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9327
+#: .././config.py:11545
 msgid "Other"
 msgstr "기타"
 
@@ -2771,7 +2771,7 @@ msgstr "채널에 포함된 항목:"
 msgid "This playlist contains:"
 msgstr "플레이리스트에 포함된 항목:"
 
-#: .././mainwin.py:24726 .././config.py:9269
+#: .././mainwin.py:24726 .././config.py:9300
 msgid "This folder contains:"
 msgstr "폴더에 포함된 항목:"
 
@@ -2941,7 +2941,7 @@ msgstr "데이터베이스로 가져오기"
 msgid "Choose which items to import"
 msgstr "가져올 항목 선택하기"
 
-#: .././mainwin.py:25104 .././config.py:14454 .././config.py:14719
+#: .././mainwin.py:25104 .././config.py:14485 .././config.py:14750
 msgid "Import"
 msgstr "가져오기"
 
@@ -3005,7 +3005,7 @@ msgstr "취소"
 
 #. 'OK' button
 #: .././mainwin.py:25521 .././config.py:1035 .././config.py:2242
-#: .././config.py:7694 .././config.py:7828
+#: .././config.py:7725 .././config.py:7859
 msgid "OK"
 msgstr "확인"
 
@@ -3203,7 +3203,7 @@ msgstr "업데이트"
 msgid "Copy to clipboard"
 msgstr "클립보드에 복사"
 
-#: .././mainwin.py:26846 .././config.py:13749
+#: .././mainwin.py:26846 .././config.py:13780
 msgid "Test"
 msgstr "테스트"
 
@@ -3298,7 +3298,7 @@ msgstr "다운로드"
 msgid "Uploads"
 msgstr "업로드"
 
-#: .././config.py:403 .././config.py:8214
+#: .././config.py:403 .././config.py:8245
 msgid "File size"
 msgstr "파일 크기"
 
@@ -3376,8 +3376,8 @@ msgstr "흰색"
 
 #. 'Reset' button
 #. (Signal connect appears below)
-#: .././config.py:1017 .././config.py:3306 .././config.py:14214
-#: .././config.py:14255 .././config.py:14325
+#: .././config.py:1017 .././config.py:3306 .././config.py:14245
+#: .././config.py:14286 .././config.py:14356
 msgid "Reset"
 msgstr "초기화"
 
@@ -3394,7 +3394,7 @@ msgstr "적용"
 msgid "Apply changes without closing the window"
 msgstr "창을 닫지않고 변경사항 적용"
 
-#: .././config.py:1038 .././config.py:7697 .././config.py:7831
+#: .././config.py:1038 .././config.py:7728 .././config.py:7862
 msgid "Apply changes"
 msgstr "변경사항 적용"
 
@@ -3451,7 +3451,7 @@ msgstr "다운로드 설정 지우기"
 msgid "Close this window"
 msgstr "이 창 닫기"
 
-#: .././config.py:2869 .././config.py:6260
+#: .././config.py:2869 .././config.py:6262
 msgid "_Name"
 msgstr "_이름"
 
@@ -3496,7 +3496,7 @@ msgid "Completely reset all download options to their default values"
 msgstr "모든 다운로드 설정을 완전히 기본값으로 초기화하기"
 
 #. Add this tab...
-#: .././config.py:3000 .././config.py:10878
+#: .././config.py:3000 .././config.py:10909
 msgid "_Files"
 msgstr "_파일"
 
@@ -3520,7 +3520,7 @@ msgstr "파일 출력 템플릿"
 msgid "Add to template:"
 msgstr "템플릿 추가:"
 
-#: .././config.py:3083 .././config.py:8018
+#: .././config.py:3083 .././config.py:8049
 msgid "Video properties"
 msgstr "비디오 속성"
 
@@ -3564,10 +3564,14 @@ msgstr "자동 번호 비디오 (0부터 시작함)"
 msgid "Creator/uploader"
 msgstr "제작자/업로더"
 
-#: .././config.py:3098 .././config.py:3099
+#: .././config.py:3098
 msgid "Full name of video uploader"
 msgstr "비디오 업로더의 실제 이름"
 
+#: .././config.py:3099
+msgid "Uploader ID"
+msgstr ""
+
 #: .././config.py:3100
 msgid "Nickname/ID of video uploader"
 msgstr "비디오 업로더의 닉네임/ID"
@@ -3676,8 +3680,8 @@ msgstr "신고 개수"
 msgid "Number of comments"
 msgstr "댓글 개수"
 
-#: .././config.py:3170 .././config.py:9916 .././config.py:12528
-#: .././config.py:14445 .././config.py:14710
+#: .././config.py:3170 .././config.py:9947 .././config.py:12559
+#: .././config.py:14476 .././config.py:14741
 msgid "Add"
 msgstr "추가"
 
@@ -3718,8 +3722,8 @@ msgid "Path to the downloader's cookie jar file"
 msgstr "다운로더의 Cookie jar 파일 경로"
 
 #: .././config.py:3302 .././config.py:4927 .././config.py:4947
-#: .././config.py:4967 .././config.py:14111 .././config.py:14210
-#: .././config.py:14251 .././config.py:14321
+#: .././config.py:4967 .././config.py:14142 .././config.py:14241
+#: .././config.py:14282 .././config.py:14352
 msgid "Set"
 msgstr "설정"
 
@@ -3783,20 +3787,20 @@ msgid "Options during real (not simulated) downloads"
 msgstr "(시뮬레이션이 아닌) 실제 다운로드 설정"
 
 #: .././config.py:3450 .././config.py:3481
-msgid "Keep the description file after Tartube shuts down"
-msgstr "설명 파일을 Tartube가 꺼져도 유지하기"
+msgid "Keep the description file after the download has finished"
+msgstr ""
 
 #: .././config.py:3456 .././config.py:3487
-msgid "Keep the metadata file after Tartube shuts down"
-msgstr "메타데이터 파일을 Tartube가 꺼져도 유지하기"
+msgid "Keep the metadata file after the download has finished"
+msgstr ""
 
 #: .././config.py:3462 .././config.py:3493
-msgid "Keep the annotations file after Tartube shuts down"
-msgstr "어노테이션 파일을 Tartube가 꺼져도 유지하기"
+msgid "Keep the annotations file after the download has finished"
+msgstr ""
 
 #: .././config.py:3468 .././config.py:3499
-msgid "Keep the thumbnail file after Tartube shuts down"
-msgstr "섬네일 파일을 Tartube가 꺼져도 유지하기"
+msgid "Keep the thumbnail file after the download has finished"
+msgstr ""
 
 #: .././config.py:3475
 msgid "Options during simulated (not real) downloads"
@@ -3888,7 +3892,7 @@ msgid "Do not download DASH-related data for YouTube videos"
 msgstr "유튜브 비디오의 DASH 관련 데이터 다운로드 안함"
 
 #. Add this tab...
-#: .././config.py:3790 .././config.py:3809 .././config.py:13113
+#: .././config.py:3790 .././config.py:3809 .././config.py:13144
 msgid "_Downloads"
 msgstr "_다운로드"
 
@@ -4322,8 +4326,8 @@ msgstr "이 외부 다운로더 사용"
 msgid "Arguments to pass to external downloader"
 msgstr "외부 다운로더에 전달할 인자"
 
-#: .././config.py:5168 .././config.py:5658 .././config.py:7355
-#: .././config.py:7603
+#: .././config.py:5168 .././config.py:5658 .././config.py:7386
+#: .././config.py:7634
 msgid "This procedure cannot be reversed. Are you sure you want to continue?"
 msgstr "이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?"
 
@@ -4367,55 +4371,55 @@ msgid "FFmpeg options"
 msgstr "FFmpeg 설정"
 
 #. Replace the 'OK' button with a 'Process files' button
-#: .././config.py:6246 .././config.py:7776
+#: .././config.py:6248 .././config.py:7807
 msgid "Process files"
 msgstr "파일 처리"
 
-#: .././config.py:6248 .././config.py:7778
+#: .././config.py:6250 .././config.py:7809
 msgid "Process the files with FFmpeg"
 msgstr "FFmpeg로 파일 처리"
 
-#: .././config.py:6265
+#: .././config.py:6267
 msgid "Name for these FFmpeg options"
 msgstr "FFmpeg 설정 이름"
 
-#: .././config.py:6275
+#: .././config.py:6277
 msgid "Extra command line options (e.g. --help)"
 msgstr "추가 커맨드 라인 설정 (예. --help)"
 
-#: .././config.py:6286
+#: .././config.py:6288
 msgid "System command, based on all FFmpeg options in this window:"
 msgstr "이 창에 있는 FFmpeg 설정에 기반한 시스템 커맨드:"
 
-#: .././config.py:6317
+#: .././config.py:6319
 msgid "Show fewer FFmpeg options"
 msgstr "더 적은 FFmpeg 설정"
 
-#: .././config.py:6319
+#: .././config.py:6321
 msgid "Show more FFmpeg options"
 msgstr "더 많은 FFmpeg 설정"
 
-#: .././config.py:6329
+#: .././config.py:6331
 msgid "Import current FFmpeg options into this window"
 msgstr "현재 FFmpeg 설정을 이 창에 가져오기"
 
-#: .././config.py:6344
+#: .././config.py:6346
 msgid "Completely reset all FFmpeg options to their default values"
 msgstr "모든 FFmpeg 설정을 완전히 기본값으로 초기화하기"
 
-#: .././config.py:6360
+#: .././config.py:6362
 msgid "Add to end of filename:"
 msgstr "파일명의 맨 마지막에 추가하기:"
 
-#: .././config.py:6370
+#: .././config.py:6372
 msgid "If regex matches filename:"
 msgstr "정규식과 일치하는 파일명:"
 
-#: .././config.py:6384
+#: .././config.py:6386
 msgid "...then apply substitution:"
 msgstr "...그리고 대체 적용하기:"
 
-#: .././config.py:6397
+#: .././config.py:6399
 msgid ""
 "If the video/audio file is renamed, also rename the thumbnail (but not vice-"
 "versa)"
@@ -4423,53 +4427,53 @@ msgstr ""
 "만약 비디오/오디오 파일 이름이 변경되었다면, 섬네일 이름도 변경해 주십시오 "
 "(반대로는 아님)"
 
-#: .././config.py:6408
+#: .././config.py:6410
 msgid "Change file extension:"
 msgstr "변경 파일 확장자:"
 
-#: .././config.py:6422
+#: .././config.py:6424
 msgid "After changing the file extension, delete the original file"
 msgstr "파일 확장자를 변경한 이후엔, 원본 파일을 삭제해 주세요"
 
-#: .././config.py:6448
+#: .././config.py:6450
 msgid "_Settings"
 msgstr "_설정"
 
-#: .././config.py:6455
+#: .././config.py:6457
 msgid "Source file"
 msgstr "소스 파일"
 
-#: .././config.py:6462
+#: .././config.py:6464
 msgid "Downloaded video/audio"
 msgstr "다운받은 비디오/오디오"
 
-#: .././config.py:6471
+#: .././config.py:6473
 msgid "with audio"
 msgstr "오디오와 함께"
 
-#: .././config.py:6484
+#: .././config.py:6486
 msgid "Video thumbnail"
 msgstr "비디오 섬네일"
 
-#: .././config.py:6503
+#: .././config.py:6505
 msgid "Output file"
 msgstr "출력 파일"
 
-#: .././config.py:6630
+#: .././config.py:6632
 msgid "Audio bitrate"
 msgstr "오디오 진동"
 
-#: .././config.py:6644
+#: .././config.py:6646
 msgid "How to set the quality"
 msgstr "품질 설정 방법"
 
-#: .././config.py:6649
+#: .././config.py:6651
 msgid ""
 "FFmpeg always encodes according to a Rate Factor that specifies the quality "
 "of the result."
 msgstr "FFmpeg는 항상 결과의 화질을 지정하는 속도 계수에 따라 인코딩됩니다."
 
-#: .././config.py:6652
+#: .././config.py:6654
 msgid ""
 "Instead of directly specifying the Rate Factor, an average bit rate can be "
 "specified. FFmpeg will then determine the optimal Rate Factor in a first "
@@ -4478,7 +4482,7 @@ msgstr ""
 "속도 계수를 직접 지정하는 대신 평균 비트레이트를 지정할 수 있습니다. 그런 다"
 "음 FFmpeg가 첫 번째 패스 도중 최적의 속도 계수를 결정합니다."
 
-#: .././config.py:6656
+#: .././config.py:6658
 msgid ""
 "In fact the first pass is only used for determining the Rate Factor, no "
 "other data is carried over into the second pass."
@@ -4486,7 +4490,7 @@ msgstr ""
 "실제로 첫 번째 패스는 속도 계수를 결정하는 데만 사용되며, 다른 데이터는 두번"
 "째 패스로 전달되지 않습니다."
 
-#: .././config.py:6659
+#: .././config.py:6661
 msgid ""
 "Specifying an average bitrate but running only one pass is possible, but not "
 "recommended. FFmpeg would then encode the beginning of the video with a "
@@ -4498,126 +4502,134 @@ msgstr ""
 "비디오 끝부분에 와서 목표 비트레이트를 도달하기 위해 속도계수를 변경할 것입니"
 "다."
 
-#: .././config.py:6672
+#: .././config.py:6674
 msgid "Manual rate factor"
 msgstr "속도 계수 수동 지정"
 
-#: .././config.py:6681
+#: .././config.py:6683
 msgid "Determine from target bitrate (2-Pass)"
 msgstr "목표 비트레이트 결정하기 (2-패스)"
 
-#: .././config.py:6691
+#: .././config.py:6693
 msgid "Rate factor"
 msgstr "속도 계수"
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Lossless"
 msgstr "무손실"
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Large file"
 msgstr "큰 파일"
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Bad quality"
 msgstr "저 화질"
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Small file"
 msgstr "작은 파일"
 
-#: .././config.py:6732
+#: .././config.py:6734
 msgid "Name of dummy file"
 msgstr "더미 파일 이름"
 
-#: .././config.py:6736
+#: .././config.py:6738
 msgid "A dummy file is created during the first pass."
 msgstr "더미 파일은 첫번째 패스 중 만들어지는 파일입니다."
 
-#: .././config.py:6740
+#: .././config.py:6742
 msgid "Use the output file"
 msgstr "출력 파일 사용"
 
-#: .././config.py:6741
+#: .././config.py:6743
 msgid "Dummy"
 msgstr "더미"
 
-#: .././config.py:6742
+#: .././config.py:6744
 msgid "/dev/null (Linux)"
 msgstr "/dev/null (Linux)"
 
-#: .././config.py:6743
+#: .././config.py:6745
 msgid "NUL (MS Windows)"
 msgstr "NUL (MS Windows)"
 
-#: .././config.py:6755
+#: .././config.py:6757
 msgid "Patience preset"
 msgstr "인내 프리셋"
 
-#: .././config.py:6760
+#: .././config.py:6762
 msgid "Ultra fast"
 msgstr "울트라 빠름"
 
-#: .././config.py:6761
+#: .././config.py:6763
 msgid "Super fast"
 msgstr "슈퍼 빠름"
 
-#: .././config.py:6762
+#: .././config.py:6764
 msgid "Very fast"
 msgstr "매우 빠름"
 
-#: .././config.py:6763 .././config.py:6832
+#: .././config.py:6765 .././config.py:6863
 msgid "Faster"
 msgstr "빠르게"
 
-#: .././config.py:6764
+#: .././config.py:6766
 msgid "Fast"
 msgstr "빠름"
 
-#: .././config.py:6765
+#: .././config.py:6767
 msgid "Medium (default)"
 msgstr "중간 (기본값)"
 
-#: .././config.py:6766
+#: .././config.py:6768
 #, python-format
 msgid "Slow (file about 5-10% smaller than medium)"
 msgstr "느리게 (파일 크기가 중간보다 5-10% 더 작음)"
 
-#: .././config.py:6767
+#: .././config.py:6769
 #, python-format
 msgid "Slower (file about 15% smaller than medium)"
 msgstr "더 느리게 (파일 크기가 중간보다 15% 더 작음)"
 
-#: .././config.py:6768
+#: .././config.py:6770
 #, python-format
 msgid "Very slow (file about 17% smaller than medium)"
 msgstr "엄청 느리게 (파일 크기가 중간보다 17% 더 작음)"
 
-#: .././config.py:6826
+#: .././config.py:6781
+msgid "GPU encoding"
+msgstr ""
+
+#: .././config.py:6797
+msgid "Hardware acceleration"
+msgstr ""
+
+#: .././config.py:6857
 msgid "Palette:"
 msgstr "팔레트:"
 
-#: .././config.py:6833
+#: .././config.py:6864
 msgid "Uses dithering to a standard palette provided by FFmpeg"
 msgstr "FFmpeg에서 제공하는 표준 팔레트로 디더링 사용"
 
-#: .././config.py:6834
+#: .././config.py:6865
 msgid "Can cause dithering artefacts and slight banding"
 msgstr "디더링 아티팩트와 약간의 밴딩이 생길 수 있습니다"
 
-#: .././config.py:6843
+#: .././config.py:6874
 msgid "Better"
 msgstr "최적화"
 
-#: .././config.py:6844
+#: .././config.py:6875
 msgid "Determines an optimized palette for the video"
 msgstr "비디오에 최적화된 팔레트를 결정합니다"
 
-#: .././config.py:6845
+#: .././config.py:6876
 msgid "Uses two passes and a temporary file for the palette"
 msgstr "팔레트를 위해 투 패스와 임시 파일을 사용합니다"
 
-#: .././config.py:6898
+#: .././config.py:6929
 msgid ""
 "This merges a video and audio file with the same name into a single video "
 "file,\n"
@@ -4626,77 +4638,77 @@ msgstr ""
 "파일 탭에서 지정된 확장자를 사용해\n"
 "동일한 이름의 비디오 및 오디오 파일을 단일 비디오 파일로 병합합니다"
 
-#: .././config.py:6939
+#: .././config.py:6970
 msgid "The thumbnail's format can be changed in the File tab"
 msgstr "파일 탭에서 섬네일 포맷을 변경할 수 있습니다"
 
-#: .././config.py:6954
+#: .././config.py:6985
 msgid "_Optimisations"
 msgstr "_최적화"
 
-#: .././config.py:6960
+#: .././config.py:6991
 msgid ""
 "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)"
 msgstr "빠른 탐색을 위한 최적화 (키프레임 간격 단축, 파일 크기가 10% 더 커짐)"
 
-#: .././config.py:6968
+#: .././config.py:6999
 msgid "Input video is a high-quality movie"
 msgstr "입력 비디오가 고화질 영화임"
 
-#: .././config.py:6974
+#: .././config.py:7005
 msgid "Input video is an animated movie"
 msgstr "입력 비디오가 애니매이션 영화임"
 
-#: .././config.py:6980
+#: .././config.py:7011
 msgid "Input video contains film grain"
 msgstr "입력 비디오가 필름 그레인을 포함함"
 
-#: .././config.py:6986
+#: .././config.py:7017
 msgid "Input video is an image slideshow"
 msgstr "입력 비디오가 이미지 슬라이드쇼임"
 
-#: .././config.py:6992
+#: .././config.py:7023
 msgid "Optimise for really weak CPU playback devices"
 msgstr "낮은 CPU 성능을 가진 디바이스를 위한 최적화"
 
-#: .././config.py:6999
+#: .././config.py:7030
 msgid "Optimise for really old devices (requires rate factor above 0)"
 msgstr "정말 구형 디바이스를 위한 최적화 (0 이상의 속도 계수 필요)"
 
-#: .././config.py:7010
+#: .././config.py:7041
 msgid ""
 "Move headers to beginning of file (so it can play while still downloading)"
 msgstr "파일 시작 부분으로 헤더 이동 (다운로드 중 재생이 가능해짐)"
 
-#: .././config.py:7018
+#: .././config.py:7049
 msgid "Fast encoding and low latency streaming"
 msgstr "빠른 인코딩 및 짧은 레이턴시 스트리밍"
 
-#: .././config.py:7024
+#: .././config.py:7055
 msgid "Limit bitrate (Mbit/s)"
 msgstr "비트레이트 제한 (Mbit/s)"
 
-#: .././config.py:7041
+#: .././config.py:7072
 msgid "Assuming a receiving buffer (seconds)"
 msgstr "수신 버퍼 가정 (초)"
 
-#: .././config.py:7119
+#: .././config.py:7150
 msgid "List of videos to be processed"
 msgstr "처리될 비디오 목록"
 
-#: .././config.py:7138 .././media.py:88
+#: .././config.py:7169 .././media.py:88
 msgid "Video"
 msgstr "비디오"
 
-#: .././config.py:7138
+#: .././config.py:7169
 msgid "Thumbnail"
 msgstr "섬네일"
 
-#: .././config.py:7181
+#: .././config.py:7212
 msgid "Remove video from list"
 msgstr "리스트에서 비디오 제거"
 
-#: .././config.py:7647
+#: .././config.py:7678
 msgid ""
 "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
@@ -4704,11 +4716,11 @@ msgstr ""
 "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 적은 "
 "FFmpeg 설정이 표시됩니다."
 
-#: .././config.py:7657
+#: .././config.py:7688
 msgid "Show more FFmpeg options (when window re-opens)"
 msgstr "고급 FFmpeg 설정 표시하기 (윈도우를 다시 열면)"
 
-#: .././config.py:7674
+#: .././config.py:7705
 msgid ""
 "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
@@ -4716,135 +4728,135 @@ msgstr ""
 "'적용' 또는 '재설정' 버튼을 클리하면 (혹은 창을 닫았다 다시 열면) 더 많은 "
 "FFmpeg 설정이 표시됩니다."
 
-#: .././config.py:7684
+#: .././config.py:7715
 msgid "Show fewer FFmpeg options (when window re-opens)"
 msgstr "고급 FFmpeg 설정 숨기기 (윈도우를 다시 열면)"
 
 #. Add this tab...
-#: .././config.py:8135 .././config.py:8752 .././config.py:9176
-#: .././config.py:9663 .././config.py:10464
+#: .././config.py:8166 .././config.py:8783 .././config.py:9207
+#: .././config.py:9694 .././config.py:10495
 msgid "_General"
 msgstr "_일반"
 
-#: .././config.py:8138 .././config.py:8755 .././config.py:9179
-#: .././config.py:9668
+#: .././config.py:8169 .././config.py:8786 .././config.py:9210
+#: .././config.py:9699
 msgid "General properties"
 msgstr "일반 환경설정"
 
-#: .././config.py:8164
+#: .././config.py:8195
 msgid "Set the file (if this is the wrong one)"
 msgstr "파일 설정하기 (잘못된 경우에)"
 
-#: .././config.py:8184
+#: .././config.py:8215
 msgid "Always simulate download of this video"
 msgstr "언제나 비디오 다운로드 시뮬레이트됨"
 
-#: .././config.py:8207
+#: .././config.py:8238
 msgid "Video has been downloaded"
 msgstr "비디오가 다운로드됨"
 
-#: .././config.py:8228
+#: .././config.py:8259
 msgid "Video is marked as unwatched"
 msgstr "비디오가 시청하지 않은것으로 표기됨"
 
-#: .././config.py:8249
+#: .././config.py:8280
 msgid "Video is archived"
 msgstr "비디오가 아카이브됨"
 
-#: .././config.py:8256
+#: .././config.py:8287
 msgid "Video is bookmarked"
 msgstr "비디오가 북마크됨"
 
-#: .././config.py:8263
+#: .././config.py:8294
 msgid "Receive time"
 msgstr "받은 시간"
 
-#: .././config.py:8277
+#: .././config.py:8308
 msgid "Video is favourite"
 msgstr "비디오가 즐겨찾기임"
 
-#: .././config.py:8284
+#: .././config.py:8315
 msgid "Video is in waiting list"
 msgstr "비디오가 대기 리스트에 있음"
 
-#: .././config.py:8316
+#: .././config.py:8347
 msgid "Livestream properties"
 msgstr "생방송 속성"
 
-#: .././config.py:8321
+#: .././config.py:8352
 msgid "Livestream status"
 msgstr "생방송 상태"
 
-#: .././config.py:8332
+#: .././config.py:8363
 msgid "Waiting to start"
 msgstr "시작 대기중"
 
-#: .././config.py:8334
+#: .././config.py:8365
 msgid "Stream has started"
 msgstr "방송이 시작됨"
 
-#: .././config.py:8336
+#: .././config.py:8367
 msgid "Not a livestream"
 msgstr "생방송이 아님"
 
-#: .././config.py:8339
+#: .././config.py:8370
 msgid "Livestream message"
 msgstr "생방송 메시지"
 
-#: .././config.py:8354
+#: .././config.py:8385
 msgid "Video is pre-recorded"
 msgstr "비디오가 미리 녹화됨"
 
-#: .././config.py:8361
+#: .././config.py:8392
 msgid "Livestream actions"
 msgstr "생방송 액션"
 
-#: .././config.py:8370
+#: .././config.py:8401
 msgid "When the livestream starts, show a desktop notification"
 msgstr "생방송이 시작되면, 데스크탑 알림으로 알림"
 
-#: .././config.py:8379
+#: .././config.py:8410
 msgid "When the livestream starts, play an alarm"
 msgstr "생방송이 시작되면, 알람 울림"
 
-#: .././config.py:8389
+#: .././config.py:8420
 msgid "When the livestream starts, open it in the system's web browser"
 msgstr "생방송이 시작되면, 시스템의 웹브라우저로 실행"
 
-#: .././config.py:8401
+#: .././config.py:8432
 msgid "When the livestream starts, begin downloading it immediately"
 msgstr "생방송이 시작되면, 즉시 다운로드"
 
-#: .././config.py:8412 .././config.py:13782
+#: .././config.py:8443 .././config.py:13813
 msgid "When a livestream stops, download it (overwriting any earlier file)"
 msgstr "생방송이 종료되면, 다운로드 시작 (이전의 파일을 덮어씀)"
 
-#: .././config.py:8428
+#: .././config.py:8459
 msgid "_Description"
 msgstr "_설명"
 
-#: .././config.py:8432
+#: .././config.py:8463
 msgid "Video description"
 msgstr "비디오 설명"
 
-#: .././config.py:8453 .././config.py:8959
+#: .././config.py:8484 .././config.py:8990
 msgid "Errors / Warnings"
 msgstr "오류 / 경고"
 
-#: .././config.py:8459
+#: .././config.py:8490
 msgid "Error messages produced the last time this video was checked/downloaded"
 msgstr "이 비디오를 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지"
 
-#: .././config.py:8474
+#: .././config.py:8505
 msgid ""
 "Warning messages produced the last time this video was checked/downloaded"
 msgstr "이 비디오를 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지"
 
-#: .././config.py:8517
+#: .././config.py:8548
 msgid "Select the correct video/audio file"
 msgstr "올바른 비디오/오디오 파일 선택"
 
-#: .././config.py:8543
+#: .././config.py:8574
 msgid ""
 "The replacement video/audio file must be in the same channel, playlist or "
 "folder"
@@ -4852,300 +4864,300 @@ msgstr ""
 "교체할 비디오/오디오 파일은 반드시 같은 채널, 플레이리스트, 폴더 안에 있어야 "
 "합니다"
 
-#: .././config.py:8561
+#: .././config.py:8592
 msgid "You must select a valid video/audio file"
 msgstr "반드시 적합한 비디오/오디오 파일을 선택해야 합니다"
 
-#: .././config.py:8629
+#: .././config.py:8660
 msgid "Channel properties"
 msgstr "채널 속성"
 
-#: .././config.py:8632
+#: .././config.py:8663
 msgid "Playlist properties"
 msgstr "플레이리스트 속성"
 
-#: .././config.py:8773
+#: .././config.py:8804
 msgid "Always simulate download of videos in this channel"
 msgstr "언제나 이 채널 안의 비디오들을 다운로드 시뮬레이트됨"
 
-#: .././config.py:8775
+#: .././config.py:8806
 msgid "Always simulate download of videos in this playlist"
 msgstr "언제나 이 플레이리스트 안의 비디오들을 다운로드 시뮬레이트됨"
 
-#: .././config.py:8785
+#: .././config.py:8816
 msgid "Disable checking/downloading for this channel"
 msgstr "이 채널에 대해서 확인/다운로드 사용 안 함"
 
-#: .././config.py:8787
+#: .././config.py:8818
 msgid "Disable checking/downloading for this playlist"
 msgstr "이 플레이리스트에 대해서 확인/다운로드 사용 안 함"
 
-#: .././config.py:8797
+#: .././config.py:8828
 msgid "This channel is marked as a favourite"
 msgstr "이 채널은 즐겨찾기로 표기됨"
 
-#: .././config.py:8799
+#: .././config.py:8830
 msgid "This playlist is marked as a favourite"
 msgstr "이 플레이리스트는 즐겨찾기로 표기됨"
 
-#: .././config.py:8809
+#: .././config.py:8840
 msgid "Total videos"
 msgstr "총 비디오들"
 
-#: .././config.py:8833
+#: .././config.py:8864
 msgid "Favourite videos"
 msgstr "즐겨찾기 된 비디오들"
 
-#: .././config.py:8845
+#: .././config.py:8876
 msgid "Downloaded videos"
 msgstr "다운로드 된 비디오들"
 
-#: .././config.py:8867 .././config.py:9408 .././config.py:11646
+#: .././config.py:8898 .././config.py:9439 .././config.py:11677
 msgid "_History"
 msgstr "_히스토리"
 
-#: .././config.py:8872 .././config.py:9413 .././config.py:11653
+#: .././config.py:8903 .././config.py:9444 .././config.py:11684
 msgid "Download history"
 msgstr "히스토리 다운로드"
 
-#: .././config.py:8886 .././config.py:9427 .././config.py:11667
+#: .././config.py:8917 .././config.py:9458 .././config.py:11698
 msgid "Draw"
 msgstr "드로우"
 
-#: .././config.py:8914
+#: .././config.py:8945
 msgid "_RSS feed"
 msgstr "_RSS 피드"
 
-#: .././config.py:8917
+#: .././config.py:8948
 msgid "RSS feed"
 msgstr "RSS 피드"
 
-#: .././config.py:8923
+#: .././config.py:8954
 msgid ""
 "If Tartube cannot detect the channel's RSS feed, you can enter the URL here"
 msgstr "Tartube가 채널의 RSS 피드를 인식하지 못한다면, URL을 여기에 입력하세요"
 
-#: .././config.py:8928
+#: .././config.py:8959
 msgid ""
 "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here"
 msgstr ""
 "Tartube가 플레이리스트의 RSS 피드를 인식하지 못한다면, URL을 여기에 입력하세"
 "요"
 
-#: .././config.py:8933
+#: .././config.py:8964
 msgid "(The feed is used to detect livestreams on compatible websites)"
 msgstr "(피드는 호환되는 웹 사이트 안에서 생방송을 감지할 때 사용됩니다)"
 
-#: .././config.py:8965
+#: .././config.py:8996
 msgid ""
 "Error messages produced the last time this channel was checked/downloaded"
 msgstr "이 채널을 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지"
 
-#: .././config.py:8970
+#: .././config.py:9001
 msgid ""
 "Error messages produced the last time this playlist was checked/downloaded"
 msgstr "이 플레이리스트를 마지막으로 확인/다운로드 했을 때 생성된 오류 메시지"
 
-#: .././config.py:8988
+#: .././config.py:9019
 msgid ""
 "Warning messages produced the last time this channel was checked/downloaded"
 msgstr "이 채널을 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지"
 
-#: .././config.py:8993
+#: .././config.py:9024
 msgid ""
 "Warning messages produced the last time this playlist was checked/downloaded"
 msgstr "이 플레이리스트를 마지막으로 확인/다운로드 했을 때 생성된 경고 메시지"
 
-#: .././config.py:9059
+#: .././config.py:9090
 msgid "Folder properties"
 msgstr "폴더 속성"
 
-#: .././config.py:9196
+#: .././config.py:9227
 msgid "Always simulate download of videos"
 msgstr "언제나 비디오 다운로드 시뮬레이트됨"
 
-#: .././config.py:9203
+#: .././config.py:9234
 msgid "Disable checking/downloading for this folder"
 msgstr "이 폴더에 대해서 확인/다운로드 사용 안 함"
 
-#: .././config.py:9210
+#: .././config.py:9241
 msgid "This folder is marked as a favourite"
 msgstr "이 폴더는 즐겨찾기로 마크되어 있음"
 
-#: .././config.py:9217
+#: .././config.py:9248
 msgid "This folder is hidden"
 msgstr "이 폴더는 숨겨짐"
 
-#: .././config.py:9224
+#: .././config.py:9255
 msgid "This folder can't be deleted by the user"
 msgstr "이 폴더는 유저에 의해 삭제할 수 없음"
 
-#: .././config.py:9231
+#: .././config.py:9262
 msgid "This is a system-controlled folder"
 msgstr "이 폴더는 시스템 제어 폴더임"
 
-#: .././config.py:9238
+#: .././config.py:9269
 msgid "Only videos can be added to this folder"
 msgstr "이 폴더엔 비디오만 추가할 수 있음"
 
-#: .././config.py:9245
+#: .././config.py:9276
 msgid "All contents deleted when Tartube shuts down"
 msgstr "Tartube가 종료되면 모든 컨텐츠가 삭제됨"
 
-#: .././config.py:9259 .././config.py:11475
+#: .././config.py:9290 .././config.py:11506
 msgid "_Statistics"
 msgstr "_통계"
 
-#: .././config.py:9264 .././config.py:11482
+#: .././config.py:9295 .././config.py:11513
 msgid "Statistics"
 msgstr "통계"
 
-#: .././config.py:9285 .././config.py:11503
+#: .././config.py:9316 .././config.py:11534
 msgid "Downloaded"
 msgstr "다운로드"
 
-#: .././config.py:9329
+#: .././config.py:9360
 msgid "Sub-folders"
 msgstr "서브 폴더"
 
-#: .././config.py:9351
+#: .././config.py:9382
 msgid "Recalculate"
 msgstr "다시 계산"
 
-#: .././config.py:9522
+#: .././config.py:9553
 msgid "Scheduled download"
 msgstr "예약 다운로드"
 
-#: .././config.py:9673 .././config.py:12515
+#: .././config.py:9704 .././config.py:12546
 msgid "Scheduled download name"
 msgstr "예약 다운로드 이름"
 
-#: .././config.py:9685
+#: .././config.py:9716
 msgid "Download mode"
 msgstr "다운로드 모드"
 
-#: .././config.py:9690
+#: .././config.py:9721
 msgid "Check channels, playlist and folders"
 msgstr "채널, 플레이리스트, 폴더 선택"
 
-#: .././config.py:9691
+#: .././config.py:9722
 msgid "Download channels, playlists and folders"
 msgstr "채널, 플레이리스트, 폴더 다운로드"
 
-#: .././config.py:9692
+#: .././config.py:9723
 msgid "Perform a custom download"
 msgstr "커스텀 다운로드 수행"
 
-#: .././config.py:9703 .././config.py:12481
+#: .././config.py:9734 .././config.py:12512
 msgid "Start mode"
 msgstr "시작 모드"
 
-#: .././config.py:9708
+#: .././config.py:9739
 msgid "Perform this download at regular intervals"
 msgstr "정기적으로 이 다운로드 수행"
 
-#: .././config.py:9709
+#: .././config.py:9740
 msgid "Perform this download when Tartube starts"
 msgstr "Tartube가 시작되면 이 다운로드 수행"
 
-#: .././config.py:9710
+#: .././config.py:9741
 msgid "Disable this scheduled download"
 msgstr "이 예약 다운로드 비활성화"
 
-#: .././config.py:9722
+#: .././config.py:9753
 msgid "Time between scheduled downloads"
 msgstr "예약 다운로드 시간"
 
-#: .././config.py:9766
+#: .././config.py:9797
 msgid "If another scheduled download is running:"
 msgstr "만약 다른 예약 다운로드가 수행중이면:"
 
-#: .././config.py:9773
+#: .././config.py:9804
 msgid "Add channels, playlists and folders to the end of the queue"
 msgstr "대기열 끝에 채널, 플레이리스트, 폴더 추가"
 
-#: .././config.py:9779
+#: .././config.py:9810
 msgid "Add channels, playlists and folders to the beginning of the queue"
 msgstr "대기열 맨 앞에 채널, 플레이리스트, 폴더 추가"
 
-#: .././config.py:9786
+#: .././config.py:9817
 msgid "Do nothing, just wait until the next scheduled download time"
 msgstr "아무것도 하지 않고 다음 예약 다운로드 시간까지 기다리기"
 
-#: .././config.py:9801
+#: .././config.py:9832
 msgid "This scheduled download takes priority over others"
 msgstr "이 예약된 다운로드가 다른것보다 우선시됩니다"
 
-#: .././config.py:9804
+#: .././config.py:9835
 msgid "Other scheduled downloads won't start until this one is finished"
 msgstr ""
 "다른 예약 다운로드는 이 예약 다운로드가 종료되기 전까지 시작하지 않습니다"
 
-#: .././config.py:9813
+#: .././config.py:9844
 msgid ""
 "Ignore time-saving preferences, and check/download the whole channel/"
 "playlist/folder"
 msgstr ""
 "시간 절약 환경 설정을 무시하고, 전체 채널/플레이리스트/폴더 확인/다운로드"
 
-#: .././config.py:9821
+#: .././config.py:9852
 msgid "Shut down Tartube when this scheduled download has finished"
 msgstr "예약 작업이 종료되면 Tartube 종료"
 
-#: .././config.py:9839
+#: .././config.py:9870
 msgid "Media to download"
 msgstr "다운로드 할 미디어"
 
-#: .././config.py:9845
+#: .././config.py:9876
 msgid "Check/download everything"
 msgstr "모든걸 확인/다운로드"
 
-#: .././config.py:9853
+#: .././config.py:9884
 msgid "Only check/download the media below"
 msgstr "하단의 미디어만 확인/다운로드"
 
-#: .././config.py:9867
+#: .././config.py:9898
 msgid ""
 "Hint: you can drag and drop channels, playlists and your own folders here"
 msgstr "힌트: 여기에 채널, 플레이리스트, 폴더를 드래그 앤 드랍할 수 있습니다"
 
-#: .././config.py:9926
+#: .././config.py:9957
 msgid "Remove"
 msgstr "제거"
 
-#: .././config.py:10230
+#: .././config.py:10261
 msgid "System preferences"
 msgstr "시스템 환경 설정"
 
-#: .././config.py:10483
+#: .././config.py:10514
 msgid "_Language"
 msgstr "_언어"
 
-#: .././config.py:10488
+#: .././config.py:10519
 msgid "Language preferences"
 msgstr "언어 환경 설정"
 
-#: .././config.py:10493
+#: .././config.py:10524
 msgid "Language"
 msgstr "언어"
 
-#: .././config.py:10529
+#: .././config.py:10560
 msgid "_Stability"
 msgstr "_안정성"
 
-#: .././config.py:10539
+#: .././config.py:10570
 msgid "Gtk library"
 msgstr "Gtk 라이브러리"
 
-#: .././config.py:10544
+#: .././config.py:10575
 msgid "Current version of the system's Gtk library"
 msgstr "시스템의 현재 Gtk 라이브러리 버전"
 
-#: .././config.py:10559
+#: .././config.py:10590
 msgid "Gtk stability"
 msgstr "Gtk 안정성"
 
-#: .././config.py:10598
+#: .././config.py:10629
 msgid ""
 "Tartube uses the Gtk graphics library. This library is notoriously "
 "unreliable and may even causes crashes."
@@ -5153,7 +5165,7 @@ msgstr ""
 "Tartube는 Gtk 그래픽 라이브러리를 사용합니다. Gtk 라이브러리는 믿을수 없을 정"
 "도로 악명깊고 심지어 충돌이 일어날 수도 있습니다."
 
-#: .././config.py:10605
+#: .././config.py:10636
 msgid ""
 "By default, some cosmetic features are disabled (for example, in the Videos "
 "tab, the list of videos is not updated until the end of a download "
@@ -5162,7 +5174,7 @@ msgstr ""
 "기본적으로, 일부 그래픽 기능은 비활성화 되어있습니다 (예를 들어, 비디오 탭의 "
 "비디오 목록은 다운로드 작업이 끝날 때 까지 업데이트 되지 않습니다)."
 
-#: .././config.py:10613
+#: .././config.py:10644
 msgid ""
 "If you think that your system Gtk has been fixed (or if you want to test Gtk "
 "stability), you can re-enable the cosmetic features."
@@ -5170,192 +5182,192 @@ msgstr ""
 "만약 시스템의 Gtk 라이브러리가 수정되었다고 생각하는 경우 (혹은 Gtk 안정성을 "
 "테스트하고 싶은 경우) 그래픽 기능을 다시 활성화 할 수 있습니다."
 
-#: .././config.py:10623
+#: .././config.py:10654
 msgid "Disable some cosmetic features to prevent crashes and other issues"
 msgstr "몇몇 그래픽 기능을 비활성화 해서 충돌 및 기타 문제 방지하기"
 
-#: .././config.py:10641
+#: .././config.py:10672
 msgid "_Modules"
 msgstr "_모듈"
 
-#: .././config.py:10646
+#: .././config.py:10677
 msgid "Module availability"
 msgstr "모듈 가용성"
 
-#: .././config.py:10652
+#: .././config.py:10683
 msgid "feedparser module is available (required for detecting livestreams)"
 msgstr "feedparser 모듈을 사용할 수 있습니다 (생방송 감지 시 필요)"
 
-#: .././config.py:10661
+#: .././config.py:10692
 msgid "matplotlib module is available (draws graphs)"
 msgstr "matplotlib 모듈을 사용할 수 있습니다 (그래프를 그릴 때 사용)"
 
-#: .././config.py:10669
+#: .././config.py:10700
 msgid "moviepy module is available (finds the length of videos, if unknown)"
 msgstr ""
 "moviepy 모듈을 사용할 수 있습니다 (비디오의 길이를 모를 경우 이를 찾는데 사"
 "용)"
 
-#: .././config.py:10679
+#: .././config.py:10710
 msgid "playsound module is available (sound an alarm when a livestream starts)"
 msgstr "playsound 모듈을 사용할 수 있습니다 (생방송이 시작될 경우 알람을 재생)"
 
-#: .././config.py:10689
+#: .././config.py:10720
 msgid ""
 "XDG module is available (saves the config file in the standard location)"
 msgstr "XDG 모듈을 사용할 수 있습니다 (구성 파일을 표준 위치에 저장해줌)"
 
-#: .././config.py:10699
+#: .././config.py:10730
 msgid ""
 "Notify module is available (shows desktop notifications; Linux/*BSD only)"
 msgstr ""
 "Notify 모듈을 사용할 수 있습니다 (데스크탑 알림을 보여줌; Linux/*BSD만 사용가"
 "능)"
 
-#: .././config.py:10709
+#: .././config.py:10740
 msgid "Module preferences"
 msgstr "모듈 환경 설정"
 
-#: .././config.py:10715
+#: .././config.py:10746
 msgid ""
 "Use 'moviepy' module to get a video's duration, if not known (may be slow)"
 msgstr ""
 "알려지지 않은 비디오 길이를 'moviepy' 모듈을 사용해 측정합니다 (느릴 수 있음)"
 
-#: .././config.py:10727
+#: .././config.py:10758
 msgid "Timeout applied when moviepy checks a video file"
 msgstr "비디오 파일을 moviepy로 체크할 때 타임아웃 적용"
 
-#: .././config.py:10752
+#: .././config.py:10783
 msgid "_Debugging"
 msgstr "_디버깅"
 
-#: .././config.py:10760
+#: .././config.py:10791
 msgid "Debugging preferences"
 msgstr "디버깅 환경 설정"
 
-#: .././config.py:10766
+#: .././config.py:10797
 msgid ""
 "Debug messages are only visible in the terminal window (these settings are "
 "not saved)"
 msgstr ""
 "디버그 메시지는 터미널 윈도우에서만 보입니다 (이 설정들은 저장되지 않습니다)"
 
-#: .././config.py:10773
+#: .././config.py:10804
 msgid "Enable application debug messages (code in mainapp.py)"
 msgstr "애플리케이션 디버그 메시지 활성화 (code in mainapp.py)"
 
-#: .././config.py:10782 .././config.py:10802
+#: .././config.py:10813 .././config.py:10833
 msgid "...but don't show timer debug messages"
 msgstr "...하지만 디버그 메시지 타이머는 표시하지 않기"
 
-#: .././config.py:10793
+#: .././config.py:10824
 msgid "Enable main winddow debug messages (code in mainwin.py)"
 msgstr "메인 디버그 메시지 활성화 (code in mainapp.py)"
 
-#: .././config.py:10813
+#: .././config.py:10844
 msgid "Enabled downloader debug messages (code in downloads.py)"
 msgstr "다운로더 디버그 메시지 활성화 (code in mainapp.py)"
 
-#: .././config.py:10856
+#: .././config.py:10887
 msgid ""
 "Debugging messages are also visible if an empty file called debug.txt exists "
 "here:"
 msgstr "디버깅 메시지는 이 위치의 debug.txt 파일이 비어있는 경우에도 보입니다:"
 
-#: .././config.py:10901
+#: .././config.py:10932
 msgid "_Device"
 msgstr "_디바이스"
 
-#: .././config.py:10906
+#: .././config.py:10937
 msgid "Device preferences"
 msgstr "디바이스 환경 설정"
 
-#: .././config.py:10911
+#: .././config.py:10942
 msgid "Size of device (in Mb)"
 msgstr "디바이스 파일 크기 (Mb)"
 
-#: .././config.py:10923
+#: .././config.py:10954
 msgid "Free space on device (in Mb)"
 msgstr "디바이스 남은 공간 (Mb)"
 
-#: .././config.py:10935
+#: .././config.py:10966
 msgid "Warn user if disk space is less than"
 msgstr "디스크 공간이 적으면 경고해주기"
 
-#: .././config.py:10953
+#: .././config.py:10984
 msgid "Halt downloads if disk space is less than"
 msgstr "디스크 공간이 적으면 중지하기"
 
-#: .././config.py:10992
+#: .././config.py:11023
 msgid "Configuration preferences"
 msgstr "구성 환경 설정"
 
-#: .././config.py:10997
+#: .././config.py:11028
 msgid "Tartube configuration file loaded from:"
 msgstr "Tartube 환경 설정 파일은 여기서 불러옵니다:"
 
-#: .././config.py:11016
+#: .././config.py:11047
 msgid "D_atabase"
 msgstr "_데이터베이스"
 
-#: .././config.py:11022
+#: .././config.py:11053
 msgid "Database preferences"
 msgstr "데이터베이스 환경 설정"
 
-#: .././config.py:11027
+#: .././config.py:11058
 msgid "Tartube data folder"
 msgstr "Tartube 데이터 폴더"
 
-#: .././config.py:11039
+#: .././config.py:11070
 msgid "Add new database"
 msgstr "새 데이터베이스 추가"
 
-#: .././config.py:11041
+#: .././config.py:11072
 msgid "Change to a different data folder"
 msgstr "다른 데이터 폴더로 변경"
 
-#: .././config.py:11048
+#: .././config.py:11079
 msgid "Check and repair database"
 msgstr "데이터베이스 확인 후 수리"
 
-#: .././config.py:11051
+#: .././config.py:11082
 msgid "Check for inconsistencies, and repair them"
 msgstr "불일치 확인 후 수리"
 
-#: .././config.py:11056
+#: .././config.py:11087
 msgid "Recent data folders"
 msgstr "최근 데이터 폴더"
 
-#: .././config.py:11070
+#: .././config.py:11101
 msgid "Switch to the selected data folder"
 msgstr "선택한 데이터 폴더로 변경"
 
-#: .././config.py:11080
+#: .././config.py:11111
 msgid "Forget"
 msgstr "잊어버리기"
 
-#: .././config.py:11083
+#: .././config.py:11114
 msgid "Remove the selected data folder from the list"
 msgstr "리스트에서 선택한 데이터 폴더 지우기"
 
-#: .././config.py:11092
+#: .././config.py:11123
 msgid "Forget all"
 msgstr "모두 잊어버리기"
 
-#: .././config.py:11095
+#: .././config.py:11126
 msgid "Forget every folder in this list (except the current one)"
 msgstr "이 목록의 모든 폴더 잊어버리기 (현재 폴더 제외)"
 
-#: .././config.py:11108
+#: .././config.py:11139
 msgid "Move the selected folder up the list"
 msgstr "선택한 폴더를 위로 이동"
 
-#: .././config.py:11116
+#: .././config.py:11147
 msgid "Move the selected folder down the list"
 msgstr "선택한 폴더를 아래로 이동"
 
-#: .././config.py:11144
+#: .././config.py:11175
 msgid ""
 "On startup, load the first database on the list (not the most recently-use "
 "one)"
@@ -5363,23 +5375,23 @@ msgstr ""
 "시작시, 목록의 첫 번째 데이터베이스 로드 (가장 최근에 사용한 데이터베이스 아"
 "님)"
 
-#: .././config.py:11154
+#: .././config.py:11185
 msgid "If one database is in use, try to load others"
 msgstr "만약 한 데이터베이스가 사용중이면, 다른 것을 로드하기"
 
-#: .././config.py:11162
+#: .././config.py:11193
 msgid "Add new data directories to this list"
 msgstr "새 데이터 디렉토리를 리스트에 추가하기"
 
-#: .././config.py:11201
+#: .././config.py:11232
 msgid "_Backups"
 msgstr "_백업"
 
-#: .././config.py:11205
+#: .././config.py:11236
 msgid "Backup preferences"
 msgstr "백업 환경 설정"
 
-#: .././config.py:11210
+#: .././config.py:11241
 msgid ""
 "When saving a database file, Tartube makes a backup copy of it (in case "
 "something goes wrong)"
@@ -5387,165 +5399,165 @@ msgstr ""
 "데이터베이스 파일을 저장할 때 Tartube에서 백업 사본을 만들어 두기 (만약을 위"
 "해서)"
 
-#: .././config.py:11219
+#: .././config.py:11250
 msgid "Delete the backup file as soon as the save procedure is finished"
 msgstr "저장 절차가 완료되는 즉시 백업 파일 삭제"
 
-#: .././config.py:11229
+#: .././config.py:11260
 msgid "Keep the backup file, replacing any previous backup file"
 msgstr "백업 파일을 유지하고 이전 백업 파일만 대체"
 
-#: .././config.py:11240
+#: .././config.py:11271
 msgid ""
 "Make a new backup file once per day, after the day's first save procedure"
 msgstr "매일매일 첫번째 저장 시에 새로운 백업 파일 생성"
 
-#: .././config.py:11251
+#: .././config.py:11282
 msgid "Make a new backup file for every save procedure"
 msgstr "매 저장 시에 새로운 백업 파일 생성"
 
-#: .././config.py:11300
+#: .././config.py:11331
 msgid "Automatic video deletion preferences"
 msgstr "자동 비디오 삭제 환경 설정"
 
-#: .././config.py:11305
+#: .././config.py:11336
 msgid "Automatically delete downloaded videos after this many days"
 msgstr "이 기간이 지나면 다운로드한 비디오 자동 삭제"
 
-#: .././config.py:11319
+#: .././config.py:11350
 msgid "...but only delete videos which have been watched"
 msgstr "...하지만 시청한 비디오만 삭제"
 
-#: .././config.py:11343
+#: .././config.py:11374
 msgid "Video matching preferences"
 msgstr "비디오 매칭 환경 설정"
 
-#: .././config.py:11348
+#: .././config.py:11379
 msgid "When matching videos on the filesystem:"
 msgstr "파일 시스템에서 비디오를 매칭할 때:"
 
-#: .././config.py:11354
+#: .././config.py:11385
 msgid "The video names must match exactly"
 msgstr "비디오 이름이 완벽히 일치"
 
-#: .././config.py:11361
+#: .././config.py:11392
 msgid "The first # characters must match exactly"
 msgstr "첫번째 # 글자만 완벽히 일치"
 
-#: .././config.py:11375
+#: .././config.py:11406
 msgid "Ignore the last # characters; the remaining name must match exactly"
 msgstr "마지막 # 글자를 무시하고 나머지 글자만 완벽히 일치"
 
-#: .././config.py:11421
+#: .././config.py:11452
 msgid "_Temporary folders"
 msgstr "_임시 폴더"
 
-#: .././config.py:11427
+#: .././config.py:11458
 msgid "Temporary folder preferences"
 msgstr "임시 폴더 환경 설정"
 
-#: .././config.py:11432
+#: .././config.py:11463
 msgid "Empty temporary folders when Tartube shuts down"
 msgstr "Tartube가 종료되면 임시 폴더 비우기"
 
-#: .././config.py:11441
+#: .././config.py:11472
 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)"
 msgstr "(주의. Tartube가 시작되면 임시 폴더가 항상 비워집니다)"
 
-#: .././config.py:11449
+#: .././config.py:11480
 msgid "Open temporary folders (on the desktop) when Tartube shuts down"
 msgstr "Tartube가 종료되면 임시 폴더를 열기 (바탕화면에)"
 
-#: .././config.py:11487
+#: .././config.py:11518
 msgid "The Tartube database contains:"
 msgstr "Tartube 데이터베이스가 갖고 있는 정보:"
 
-#: .././config.py:11547
+#: .././config.py:11578
 msgid "Custom folders"
 msgstr "커스텀 폴더"
 
-#: .././config.py:11570
+#: .././config.py:11601
 msgid "Calculate"
 msgstr "계산"
 
 #. Add this tab...
-#: .././config.py:11696
+#: .././config.py:11727
 msgid "_Windows"
 msgstr "_윈도우"
 
-#: .././config.py:11719
+#: .././config.py:11750
 msgid "_Main window"
 msgstr "_메인 윈도우"
 
-#: .././config.py:11725
+#: .././config.py:11756
 msgid "Main window preferences"
 msgstr "메인 윈도우 환경설정"
 
-#: .././config.py:11730
+#: .././config.py:11761
 msgid "Remember the size of the main window when shutting down"
 msgstr "메인 윈도우를 종료 시 창 크기 기억"
 
-#: .././config.py:11738
+#: .././config.py:11769
 msgid "Also remember the position of main window sliders"
 msgstr "메인 윈도우의 슬라이더 위치 또한 기억"
 
-#: .././config.py:11755
+#: .././config.py:11786
 msgid "Don't show the main window toolbar"
 msgstr "메인 메뉴 툴바 보이지 않기"
 
-#: .././config.py:11763
+#: .././config.py:11794
 msgid "Don't show labels in the main window toolbar"
 msgstr "메인 메뉴 툴바 레이블 보이지 않기"
 
-#: .././config.py:11781
+#: .././config.py:11812
 msgid ""
 "Replace stock icons with custom icons (in case stock icons are not visible)"
 msgstr ""
 "스톡 아이콘을 커스텀 아이콘으로 교체 (스톡 아이콘이 표시되지 않는 경우)"
 
-#: .././config.py:11791
+#: .././config.py:11822
 msgid "Show tooltips for videos, channels, playlists and folders"
 msgstr "비디오, 채널, 플레이리스트, 폴더에 대한 툴팁 표시"
 
-#: .././config.py:11799
+#: .././config.py:11830
 msgid "Show errors/warnings in tooltips (but not in the Videos tab)"
 msgstr "툴팁에 오류/경고 표시 (비디오 탭에선 아님)"
 
-#: .././config.py:11817
+#: .././config.py:11848
 msgid "Disable the 'Download all' buttons in the toolbar and the Videos Tab"
 msgstr "툴바와 비디오 탭에서 '모두 다운로드' 버튼 비활성화"
 
-#: .././config.py:11828
+#: .././config.py:11859
 msgid "In the Progress Tab, hide finished videos / channels / playlists"
 msgstr "작업 탭에서 완료한 비디오 / 채널 / 플레이리스트 숨기기"
 
-#: .././config.py:11837
+#: .././config.py:11868
 msgid "In the Progress Tab, show results in reverse order"
 msgstr "작업 탭에서, 결과를 반대로 보여주기"
 
-#: .././config.py:11845
+#: .././config.py:11876
 msgid "When Tartube starts, automatically open the Classic Mode tab"
 msgstr "Tartube가 시작하면, 자동으로 클래식 모드 탭으로 열기"
 
-#: .././config.py:11859
+#: .././config.py:11890
 msgid ""
 "In the Classic Mode Tab, when adding URLs, remove duplicates rather than "
 "retaining them"
 msgstr "클래식 모드 탭에서, URL을 추가할 때, 중복 항목을 유지하지 않고 제거"
 
-#: .././config.py:11873
+#: .././config.py:11904
 msgid "In the Errors/Warnings Tab, don't reset the tab text when it is clicked"
 msgstr "오류/경고 탭에서, 탭 텍스트를 클릭 시 재설정하지 않음"
 
-#: .././config.py:11896
+#: .././config.py:11927
 msgid "Video Index (left side of the Videos Tab)"
 msgstr "비디오 색인 (비디오 탭의 왼쪽)"
 
-#: .././config.py:11902
+#: .././config.py:11933
 msgid "Show smaller icons in the Video Index"
 msgstr "비디오 색인에서 작은 아이콘 표시하기"
 
-#: .././config.py:11912
+#: .././config.py:11943
 msgid ""
 "In the Video Index, show detailed statistics about the videos in each "
 "channel / playlist / folder"
@@ -5553,140 +5565,140 @@ msgstr ""
 "비디오 색인 내 각 채널 / 플레이리스트 / 폴더에서 비디오에 대한 자세한 통계 표"
 "시하기"
 
-#: .././config.py:11923
+#: .././config.py:11954
 msgid ""
 "After clicking on a folder, automatically expand/collapse the tree around it"
 msgstr "폴더를 클릭하면, 자동으로 관련 트리를 확장/축소하기"
 
-#: .././config.py:11934
+#: .././config.py:11965
 msgid "Expand the whole tree, not just the level beneath the clicked folder"
 msgstr "클릭한 폴더 아래뿐 아니라 전체 트리 확장하기"
 
-#: .././config.py:11955
+#: .././config.py:11986
 msgid "Video Catalogue (right side of the Videos Tab)"
 msgstr "비디오 카탈로그 (비디오 탭의 오른쪽)"
 
-#: .././config.py:11962
+#: .././config.py:11993
 msgid "Show 'today' and 'yesterday' as the date, when possible"
 msgstr "가능하면 '오늘'과 '어제' 사용하기"
 
-#: .././config.py:11972
+#: .././config.py:12003
 msgid "Draw a frame around each video"
 msgstr "각 비디오 주위에 프레임 그리기"
 
-#: .././config.py:11982
+#: .././config.py:12013
 msgid "Draw status icons for each video"
 msgstr "각 비디오에 상태 아이콘 그리기"
 
-#: .././config.py:11991
+#: .././config.py:12022
 msgid "Thumbnail size (when videos are displayed on a grid)"
 msgstr "섬네일 크기 (비디오가 그리드로 표시될 때)"
 
-#: .././config.py:12019
+#: .././config.py:12050
 msgid "Show livestreams with a different background colour"
 msgstr "생방송을 다른 배경 색으로 표시하기"
 
-#: .././config.py:12027
+#: .././config.py:12058
 msgid "Use same background colours for livestream and debut videos"
 msgstr "생방송과 데뷔 비디오를 동일한 배경 색으로 표시하기"
 
-#: .././config.py:12055
+#: .././config.py:12086
 msgid "_Drag"
 msgstr "_드래그"
 
-#: .././config.py:12059
+#: .././config.py:12090
 msgid "Drag and drop preferences"
 msgstr "드래그 앤 드랍 환경 설정"
 
-#: .././config.py:12065
+#: .././config.py:12096
 msgid "When dragging and dropping videos to an external application..."
 msgstr "비디오를 외부 프로그램으로 드래그 앤 드랍 할때..."
 
-#: .././config.py:12071
+#: .././config.py:12102
 msgid "Transfer the video's full file path"
 msgstr "비디오의 전체 경로 전송하기"
 
-#: .././config.py:12079
+#: .././config.py:12110
 msgid "Transfer the video's source URL"
 msgstr "비디오의 원본 URL 전송하기"
 
-#: .././config.py:12087
+#: .././config.py:12118
 msgid "Transfer the video's name"
 msgstr "비디오의 이름 전송하기"
 
-#: .././config.py:12095
+#: .././config.py:12126
 msgid "Transfer the thumbnail's full file path"
 msgstr "비디오 섬네일의 전체 경로 전송하기"
 
-#: .././config.py:12111
+#: .././config.py:12142
 msgid "_System tray"
 msgstr "_시스템 트레이"
 
-#: .././config.py:12117
+#: .././config.py:12148
 msgid "System tray preferences"
 msgstr "시스템 트레이 환경 설정"
 
-#: .././config.py:12122
+#: .././config.py:12153
 msgid "Show icon in system tray"
 msgstr "시스템 트레이에 아이콘 표시하기"
 
-#: .././config.py:12131
+#: .././config.py:12162
 msgid "Close to the tray, rather than closing the application"
 msgstr "프로그램을 닫는 대신 트레이에 닫기"
 
-#: .././config.py:12157
+#: .././config.py:12188
 msgid "D_ialogues"
 msgstr "_다이얼로그"
 
-#: .././config.py:12163
+#: .././config.py:12194
 msgid "Dialogue window preferences"
 msgstr "다이얼로그 윈도우 환경 설정"
 
-#: .././config.py:12168
+#: .././config.py:12199
 msgid "When adding channels/playlists, keep the dialogue window open"
 msgstr "채널/플레이리스트 추가 시 다이얼로그 윈도우 열기"
 
-#: .././config.py:12178
+#: .././config.py:12209
 msgid "When the dialogue window opens, add URLs from the system clipboard"
 msgstr "다이얼로그 윈도우가 열릴ㄸ 때, URL을 클립보드에 추가하기"
 
-#: .././config.py:12206
+#: .././config.py:12237
 msgid "_Errors/Warnings"
 msgstr "_오류/경고"
 
-#: .././config.py:12214
+#: .././config.py:12245
 msgid "Errors/Warnings tab preferences"
 msgstr "오류/경고 탭 환경 설정"
 
-#: .././config.py:12219
+#: .././config.py:12250
 msgid "Show Tartube error messages"
 msgstr "Tartube 오류 메시지 표시하기"
 
-#: .././config.py:12227
+#: .././config.py:12258
 msgid "Show Tartube warning messages"
 msgstr "Tartube 경고 메시지 표시하기"
 
-#: .././config.py:12235
+#: .././config.py:12266
 msgid "Show server error messages"
 msgstr "서버 에러 메시지 표시하기"
 
-#: .././config.py:12246
+#: .././config.py:12277
 msgid "Show server warning messages"
 msgstr "서버 경고 메시지 표시하기"
 
-#: .././config.py:12258
+#: .././config.py:12289
 msgid "Downloader error/warning preferences"
 msgstr "다운로드 오류/경고 환경설정"
 
-#: .././config.py:12263
+#: .././config.py:12294
 msgid "TRANSLATOR'S NOTE: These error messages are always in English"
 msgstr "TRANSLATOR'S NOTE: These error messages are always in English"
 
-#: .././config.py:12267
+#: .././config.py:12298
 msgid "Ignore 'Child process exited with non-zero code' errors"
 msgstr "Ignore 'Child process exited with non-zero code' errors"
 
-#: .././config.py:12276
+#: .././config.py:12307
 msgid ""
 "Ignore 'Unable to download video data' and 'Unable to extract video data' "
 "errors"
@@ -5694,130 +5706,130 @@ msgstr ""
 "Ignore 'Unable to download video data' and 'Unable to extract video data' "
 "errors"
 
-#: .././config.py:12286
+#: .././config.py:12317
 msgid "Ignore 'Did not get any data blocks' errors"
 msgstr "Ignore 'Did not get any data blocks' errors"
 
-#: .././config.py:12295
+#: .././config.py:12326
 msgid "Ignore 'Requested formats are incompatible for merge' warnings"
 msgstr "Ignore 'Requested formats are incompatible for merge' warnings"
 
-#: .././config.py:12304
+#: .././config.py:12335
 msgid "Ignore 'No video formats found' errors"
 msgstr "Ignore 'No video formats found' errors"
 
-#: .././config.py:12312
+#: .././config.py:12343
 msgid "Ignore 'There are no annotations to write' warnings"
 msgstr "Ignore 'There are no annotations to write' warnings"
 
-#: .././config.py:12320
+#: .././config.py:12351
 msgid "Ignore 'Video doesn't have subtitles' warnings"
 msgstr "Ignore 'Video doesn't have subtitles' warnings"
 
-#: .././config.py:12336
+#: .././config.py:12367
 msgid "_Websites"
 msgstr "_웹사이트"
 
-#: .././config.py:12344
+#: .././config.py:12375
 msgid "YouTube error/warning preferences"
 msgstr "유튜브 오류/경고 설정"
 
-#: .././config.py:12349
+#: .././config.py:12380
 msgid "Ignore YouTube copyright errors"
 msgstr "유튜브 저작권 오류 무시하기"
 
-#: .././config.py:12357
+#: .././config.py:12388
 msgid "Ignore YouTube age-restriction errors"
 msgstr "유튜브 나이제한 오류 무시하기"
 
-#: .././config.py:12365
+#: .././config.py:12396
 msgid "Ignore YouTube deletion by uploader errors"
 msgstr "유튜브 업로더 삭제 오류 무시하기"
 
-#: .././config.py:12373
+#: .././config.py:12404
 msgid "Ignore YouTube payment errors"
 msgstr "유튜브 결제 오류 무시하기"
 
-#: .././config.py:12382
+#: .././config.py:12413
 msgid "General preferences"
 msgstr "일반 속성"
 
-#: .././config.py:12388
+#: .././config.py:12419
 msgid ""
 "Ignore any errors/warnings which match lines in this list (applies to all "
 "websites)"
 msgstr "이 목록의 행과 일치하는 오류/경고 무시하기(모든 웹사이트에 적용)"
 
-#: .././config.py:12402
+#: .././config.py:12433
 msgid "These are ordinary strings"
 msgstr "이것들은 보통 문자열임"
 
-#: .././config.py:12409
+#: .././config.py:12440
 msgid "These are regular expressions (regexes)"
 msgstr "이것들은 정규식임 (regexes)"
 
 #. Add this tab...
-#: .././config.py:12438
+#: .././config.py:12469
 msgid "_Scheduling"
 msgstr "_예약"
 
-#: .././config.py:12455
+#: .././config.py:12486
 msgid "_Start"
 msgstr "_시작"
 
-#: .././config.py:12461
+#: .././config.py:12492
 msgid "Scheduled download preferences"
 msgstr "예약 다운로드 속성"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Priority"
 msgstr "우선순위"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Whole"
 msgstr "전체"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Shutdown"
 msgstr "강제 종료"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "D/L All"
 msgstr "모두 다운로드"
 
-#: .././config.py:12483
+#: .././config.py:12514
 msgid "Join mode"
 msgstr "조인 모드"
 
-#: .././config.py:12537 .././config.py:14468 .././config.py:14733
+#: .././config.py:12568 .././config.py:14499 .././config.py:14764
 msgid "Edit"
 msgstr "편집"
 
-#: .././config.py:12564 .././config.py:14504 .././config.py:14769
+#: .././config.py:12595 .././config.py:14535 .././config.py:14800
 msgid "Delete"
 msgstr "삭제"
 
-#: .././config.py:12632
+#: .././config.py:12663
 msgid "S_top"
 msgstr "_중지"
 
-#: .././config.py:12638
+#: .././config.py:12669
 msgid "Scheduled stop preferences"
 msgstr "예약 중지 속성"
 
-#: .././config.py:12643
+#: .././config.py:12674
 msgid "Stop all download operations after this much time"
 msgstr "이 시간 이후 모든 다운로드 작업 중지"
 
-#: .././config.py:12691
+#: .././config.py:12722
 msgid "Stop all download operations after this many videos"
 msgstr "비디오 개수 이후 모든 다운로드 작업 중지"
 
-#: .././config.py:12718
+#: .././config.py:12749
 msgid "Stop all download operations after this much disk space"
 msgstr "다운로드 용량 차지시 모든 다운로드 작업 중지"
 
-#: .././config.py:12761
+#: .././config.py:12792
 msgid ""
 "N.B. Disk space is estimated. This setting does not apply to simulated "
 "downloads"
@@ -5825,163 +5837,163 @@ msgstr ""
 "주의. 디스크 용량은 추정치입니다. 이 설정은 시뮬레이션 다운로드 시 적용되지 "
 "않습니다"
 
-#: .././config.py:12799
+#: .././config.py:12830
 msgid "_Performance"
 msgstr "_퍼포먼스"
 
-#: .././config.py:12807
+#: .././config.py:12838
 msgid "Performance limits"
 msgstr "퍼포먼스 제한"
 
-#: .././config.py:12812
+#: .././config.py:12843
 msgid "Limit simultaneous downloads to"
 msgstr "동시 다운로드 개수 제한"
 
-#: .././config.py:12830
+#: .././config.py:12861
 msgid "Limit download speed to"
 msgstr "다운로드 속도 제한"
 
-#: .././config.py:12856
+#: .././config.py:12887
 msgid "Overriding video format options, limit video resolution to"
 msgstr "비디오 포맷 옵션 무시, 비디오 해상도 제한"
 
-#: .././config.py:12878
+#: .././config.py:12909
 msgid "Time-saving settings"
 msgstr "시간절약 설정"
 
-#: .././config.py:12884
+#: .././config.py:12915
 msgid ""
 "Stop checking/downloading a channel/playlist when it starts sending videos "
 "you already have"
 msgstr ""
 "이미 가지고 있는 비디오 전송을 시작할 때 채널/플레이리스트 확인/다운로드 중지"
 
-#: .././config.py:12895
+#: .././config.py:12926
 msgid "Stop after this many videos (when checking)"
 msgstr "비디오 개수 이후 작업 중지 (확인 중에)"
 
-#: .././config.py:12910
+#: .././config.py:12941
 msgid "Stop after this many videos (when downloading)"
 msgstr "비디오 개수 이후 작업 중지 (다운로드 중에)"
 
-#: .././config.py:12941
+#: .././config.py:12972
 msgid "P_references"
 msgstr "_환경 설정"
 
-#: .././config.py:12949
+#: .././config.py:12980
 msgid "URL flexibility preferences"
 msgstr "URL 유연성 기본 설정"
 
-#: .././config.py:12956
+#: .././config.py:12987
 msgid ""
 "If a video's URL represents a channel/playlist, not a video, don't download "
 "it"
 msgstr "비디오 URL이 채널이나 플레이리스트라면 다운로드받지 않기"
 
-#: .././config.py:12965
+#: .././config.py:12996
 msgid "...or, download multiple videos into the containing folder"
 msgstr "...혹은, 포함된 폴더로 여러 동영상을 다운로드 받기"
 
-#: .././config.py:12975
+#: .././config.py:13006
 msgid "...or, create a new channel, and download the videos into that"
 msgstr "...혹은, 새로운 채널을 만들어서, 거기에 비디오 받기"
 
-#: .././config.py:12986
+#: .././config.py:13017
 msgid "...or, create a new playlist, and download the videos into that"
 msgstr "...혹은, 새로운 플레이리스트를 만들어서, 거기에 비디오 받기"
 
-#: .././config.py:13018
+#: .././config.py:13049
 msgid "Missing video preferences"
 msgstr "사라진 비디오 환경 설정"
 
-#: .././config.py:13024
+#: .././config.py:13055
 msgid ""
 "Add videos which have been removed from a channel/playlist to the Missing "
 "Videos folder"
 msgstr "채널/플레이리스트에서 사라진 비디오를 '사라진 비디오' 폴더에 추가하기"
 
-#: .././config.py:13035
+#: .././config.py:13066
 msgid "Only add videos that were uploaded within this many days"
 msgstr "이 기간 내에 업로드 된 동영상만 추가(일)"
 
-#: .././config.py:13076
+#: .././config.py:13107
 msgid "Invidious mirror"
 msgstr "Invidious 미러"
 
-#: .././config.py:13082
+#: .././config.py:13113
 msgid "To find an updated list of Invidious mirrors, use any search engine!"
 msgstr "Invidious 미러 최신 버전 링크를 확인할려면 검색 엔진을 사용하세요!"
 
-#: .././config.py:13095 .././config.py:13407
+#: .././config.py:13126 .././config.py:13438
 msgid "Type the exact text that replaces youtube.com e.g."
 msgstr "youtube.com을 대체하는 정확한 텍스트를 입력하세요."
 
-#: .././config.py:13121
+#: .././config.py:13152
 msgid "Download operation preferences"
 msgstr "다운로드 작업 환경 설정"
 
-#: .././config.py:13127
+#: .././config.py:13158
 msgid "Automatically update downloader before every download operation"
 msgstr "매일 다운로드 작업 전에 자동으로 다운로더 업데이트"
 
-#: .././config.py:13139
+#: .././config.py:13170
 msgid "Automatically save files at the end of all operations"
 msgstr "모든 작업 이후 자동으로 저장"
 
-#: .././config.py:13149
+#: .././config.py:13180
 msgid "For simulated downloads, don't check a video in a folder more than once"
 msgstr "시뮬레이션 다운로드에서, 비디오를 두번 이상 확인하지 않기"
 
-#: .././config.py:13160
+#: .././config.py:13191
 msgid "If a download stalls, restart it after this many minutes"
 msgstr "만약 다운로드가 지연된 경우 이 시간 이후 재시작하기 (분)"
 
-#: .././config.py:13181
+#: .././config.py:13212
 msgid "If a network problem is detected, restart the download immediately"
 msgstr "네트워크 문제가 감지된 경우, 즉시 재시작하기"
 
-#: .././config.py:13193
+#: .././config.py:13224
 msgid "Maximum restarts after a stalled download (0 for no maximum)"
 msgstr "지연된 다운로드 최대 재시작 횟수 (0인 경우 무제한)"
 
-#: .././config.py:13234
+#: .././config.py:13265
 msgid ""
 "Allow downloader to create its own archive file (so deleted videos are not "
 "re-downloaded)"
 msgstr ""
 "다운로더가 아카이브 파일 생성하도록 허용 (삭제된 비디오 재 다운로드 방지)"
 
-#: .././config.py:13245
+#: .././config.py:13276
 msgid ""
 "Also create an archive file when downloading from the Classic Mode tab (not "
 "recommended)"
 msgstr "클래식 모드 탭에서 다운로드 시에도 아카이브 파일 생성 (권장하지 않음)"
 
-#: .././config.py:13256
+#: .././config.py:13287
 msgid "When checking videos, apply a 60-second timeout"
 msgstr "비디오를 확인할 때, 60초 타임아웃 적용"
 
-#: .././config.py:13266
+#: .././config.py:13297
 msgid ""
 "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after "
 "downloading them"
 msgstr "다운로드 후 .webp 섬네일을 FFmpeg를 이용해 .jpg로 변환"
 
-#: .././config.py:13283
+#: .././config.py:13314
 msgid "_Custom"
 msgstr "_커스텀"
 
-#: .././config.py:13288
+#: .././config.py:13319
 msgid "Custom download preferences"
 msgstr "커스텀 다운로드 환경 설정"
 
-#: .././config.py:13294
+#: .././config.py:13325
 msgid ""
 "In custom downloads, download each video independently of its channel or "
 "playlist"
 msgstr "커스텀 다운로드에서 채널이나 플레이리스트를 독립적으로 다운로드 받기"
 
-#: .././config.py:13305
+#: .././config.py:13336
 msgid ""
 "In custom downloads, apply a delay after each video/channel/playlist is "
 "download"
@@ -5989,69 +6001,69 @@ msgstr ""
 "커스텀 다운로드에서 각각의 비디오/채널/플레이리스트가 다운로드 될 때 딜레이 "
 "적용하기"
 
-#: .././config.py:13315
+#: .././config.py:13346
 msgid "Maximum delay to apply (in minutes)"
 msgstr "적용할 최대 딜레이 (분)"
 
-#: .././config.py:13332
+#: .././config.py:13363
 msgid "Minimum delay to apply (in minutes; randomises the actual delay)"
 msgstr "적용할 최소 딜레이 (분; 실제 딜레이는 랜덤화됨)"
 
-#: .././config.py:13355
+#: .././config.py:13386
 msgid "In custom downloads, obtain a YouTube video from the original website"
 msgstr "커스텀 다운로드 시 원본 웹 사이트에서 유튜브 비디오를 가져오기"
 
-#: .././config.py:13365
+#: .././config.py:13396
 msgid "In custom downloads, obtain the video from HookTube rather than YouTube"
 msgstr "커스텀 다운로드 시 유튜브 대신 HookTube 가져오기"
 
-#: .././config.py:13377
+#: .././config.py:13408
 msgid ""
 "In custom downloads, obtain the video from Invidious rather than YouTube"
 msgstr "커스텀 다운로드 시 유튜브 대신 Invidious 가져오기"
 
-#: .././config.py:13389
+#: .././config.py:13420
 msgid ""
 "In custom downloads, obtain the video from the YouTube front-end specified "
 "below"
 msgstr "커스텀 다운로드 시 유튜브 대신 아래 유튜브 프론트엔드 링크로 가져오기"
 
-#: .././config.py:13489
+#: .././config.py:13520
 msgid "Livestream preferences (compatible websites only)"
 msgstr "생방송 환경 설정 (호환 가능한 사이트만 가능)"
 
-#: .././config.py:13495
+#: .././config.py:13526
 msgid "Detect livestreams announced within this many days"
 msgstr "이 기간 내 예약된 생방송 탐지 (일)"
 
-#: .././config.py:13510
+#: .././config.py:13541
 msgid "How often to check the status of livestreams (in minutes)"
 msgstr "생방송을 탐지할 주기 (분)"
 
-#: .././config.py:13529
+#: .././config.py:13560
 msgid "Check more frequently when a livestream is due to start"
 msgstr "생방송이 시작해야될 때 더 자주 확인"
 
-#: .././config.py:13572
+#: .././config.py:13603
 msgid "Broadcast preferences (compatible websites only)"
 msgstr "브로드캐스트 환경 설정 (호환 가능한 사이트만 가능)"
 
-#: .././config.py:13579
+#: .././config.py:13610
 msgid ""
 "Use Youtube Stream Capture to download broadcasting livestreams (requires "
 "aria2)"
 msgstr ""
 "브로드캐스트 생방송을 다운로드 할때 유튜브 스트림 캡처 사용하기 (aria2 필요)"
 
-#: .././config.py:13589
+#: .././config.py:13620
 msgid "Timeout after this many minutes of inactivity"
 msgstr "비활성 시 타임아웃 시간 설정 (분)"
 
-#: .././config.py:13603
+#: .././config.py:13634
 msgid "Number of restarts after a timeout"
 msgstr "타임아웃 시 재시도 횟수"
 
-#: .././config.py:13618
+#: .././config.py:13649
 msgid ""
 "Bypass usual limits on simultaneous downloads, so that all broadcasts can be "
 "downloaded"
@@ -6059,127 +6071,127 @@ msgstr ""
 "모든 브로드캐스트를 다운로드 할 수 있도록 동시 다운로드에 대한 일반적인 제한"
 "사항 우회"
 
-#: .././config.py:13659
+#: .././config.py:13690
 msgid "_Proxies"
 msgstr "_프록시"
 
-#: .././config.py:13665
+#: .././config.py:13696
 msgid "Proxies"
 msgstr "프록시"
 
-#: .././config.py:13672
+#: .././config.py:13703
 msgid ""
 "During a download operation, Tartube will cycle betwween the proxies in this "
 "list"
 msgstr "다운로드 작업 중, Tartube가 리스트에 있는 프록시를 경유합니다"
 
-#: .././config.py:13693
+#: .././config.py:13724
 msgid "_Actions"
 msgstr "_행동"
 
-#: .././config.py:13702
+#: .././config.py:13733
 msgid "Livestream actions (can be toggled for individual videos)"
 msgstr "생방송 행동 (개별 비디오에 대해 토글 가능)"
 
-#: .././config.py:13709
+#: .././config.py:13740
 msgid "(currently disabled on MS Windows)"
 msgstr "(현재 MS Windows에서는 비활성화됨)"
 
-#: .././config.py:13714
+#: .././config.py:13745
 msgid "When a livestream starts, show a desktop notification"
 msgstr "생방송이 시작되면, 데스크탑 알림으로 알림"
 
-#: .././config.py:13728
+#: .././config.py:13759
 msgid "When a livestream starts, sound an alarm"
 msgstr "생방송이 시작되면, 알람을 소리로 울림"
 
-#: .././config.py:13751
+#: .././config.py:13782
 msgid "Plays the selected sound effect"
 msgstr "선택한 사운드 효과 재생"
 
-#: .././config.py:13758
+#: .././config.py:13789
 msgid "When a livestream starts, open it in the system's web browser"
 msgstr "생방송이 시작되면, 시스템의 웹브라우저로 실행"
 
-#: .././config.py:13770
+#: .././config.py:13801
 msgid "When a livestream starts, begin downloading it immediately"
 msgstr "생방송이 시작되면, 즉시 다운로드 시작"
 
-#: .././config.py:13796
+#: .././config.py:13827
 msgid "Desktop notification preferences"
 msgstr "데스크탑 알림 환경 설정"
 
-#: .././config.py:13803
+#: .././config.py:13834
 msgid "Show a dialogue window at the end of an operation"
 msgstr "작업 종료 후에 다이얼로그 윈도우 표시"
 
-#: .././config.py:13828
+#: .././config.py:13859
 msgid "Don't notify the user at the end of an operation"
 msgstr "작업이 끝나도 유저에게 알리지 않기"
 
-#: .././config.py:13882
+#: .././config.py:13913
 msgid "_Forks"
 msgstr "_포크"
 
-#: .././config.py:13888
+#: .././config.py:13919
 msgid "Forks of youtube-dl"
 msgstr "youtube-dl의 포크"
 
-#: .././config.py:13917
-msgid "Use youtube-dlc"
-msgstr "youtube-dlc 사용"
+#: .././config.py:13948
+msgid "Use yt-dlp"
+msgstr ""
 
-#: .././config.py:13946
+#: .././config.py:13977
 msgid "Use youtube-dl"
 msgstr "youtube-dl 사용"
 
-#: .././config.py:13974
+#: .././config.py:14005
 msgid "Use a different fork of youtube-dl:"
 msgstr "yotube-dl의 다른 포크 사용"
 
-#: .././config.py:14051
+#: .././config.py:14082
 msgid "_File paths"
 msgstr "_파일 경로"
 
-#: .././config.py:14058
+#: .././config.py:14089
 msgid "Downloader file paths"
 msgstr "다운로더 파일 경로"
 
-#: .././config.py:14064
+#: .././config.py:14095
 msgid "Path to the executable"
 msgstr "실행 파일 경로"
 
 #. (Signal connect appears below)
-#: .././config.py:14070 .././config.py:14218 .././config.py:14259
-#: .././config.py:14329 .././config.py:20068
+#: .././config.py:14101 .././config.py:14249 .././config.py:14290
+#: .././config.py:14360 .././config.py:20098
 msgid "Use default path"
 msgstr "기본 경로 사용"
 
-#: .././config.py:14075 .././config.py:20080
+#: .././config.py:14106 .././config.py:20110
 msgid "Use local path"
 msgstr "로컬 경로 사용"
 
-#: .././config.py:14079
+#: .././config.py:14110
 msgid "Use custom path"
 msgstr "커스텀 경로 사용"
 
-#: .././config.py:14087 .././config.py:20094
+#: .././config.py:14118 .././config.py:20124
 msgid "Use PyPI path"
 msgstr "PyPI 경로 사용"
 
-#: .././config.py:14138
+#: .././config.py:14169
 msgid "Command for update operations"
 msgstr "업데이트 작업 명령"
 
-#: .././config.py:14186
+#: .././config.py:14217
 msgid "_FFmpeg / AVConv"
 msgstr "_FFmpeg / AVConv"
 
-#: .././config.py:14194
+#: .././config.py:14225
 msgid "Post-processing file paths"
 msgstr "후처리 파일 경로"
 
-#: .././config.py:14199
+#: .././config.py:14230
 msgid ""
 "You only need to set these paths if Tartube cannot find FFmpeg / AVConv "
 "automatically"
@@ -6187,31 +6199,31 @@ msgstr ""
 "Tartube가 FFmpeg / AVConv 경로를 자동으로 찾을 수 없는 경우에만 경로 설정을 "
 "진행하면 됩니다"
 
-#: .././config.py:14206
+#: .././config.py:14237
 msgid "Path to the FFmpeg executable"
 msgstr "FFmpeg 실행 파일 경로"
 
-#: .././config.py:14233
+#: .././config.py:14264
 msgid "Install from main menu"
 msgstr "메인 메뉴에서 설치"
 
-#: .././config.py:14247
+#: .././config.py:14278
 msgid "Path to the AVConv executable"
 msgstr "AVConv 실행 파일 경로"
 
-#: .././config.py:14274
+#: .././config.py:14305
 msgid "Not supported on MS Windows"
 msgstr "MS Windows에서는 지원하지 않음"
 
-#: .././config.py:14297
+#: .././config.py:14328
 msgid "_Stream Capture"
 msgstr "_스트림 캡처"
 
-#: .././config.py:14305
+#: .././config.py:14336
 msgid "Youtube Stream Capture file path"
 msgstr "유튜브 스트림 캡처 파일 경로"
 
-#: .././config.py:14310
+#: .././config.py:14341
 msgid ""
 "Tartube includes a copy of this script, but you can use a different copy, if "
 "you want"
@@ -6219,241 +6231,241 @@ msgstr ""
 "Tartube는 기본적으로 이 스크립트의 복사본을 포함하지만, 다른 복사본을 사용할 "
 "수도 있습니다"
 
-#: .././config.py:14317
+#: .././config.py:14348
 msgid "Path to the YT Stream Capture executable"
 msgstr "YT 스트림 캡처 실행파일 경로"
 
-#: .././config.py:14375
+#: .././config.py:14406
 msgid "_Download options"
 msgstr "_다운로드 설정"
 
-#: .././config.py:14382
+#: .././config.py:14413
 msgid "List of download options managers"
 msgstr "다운로드 설정 매니저 리스트"
 
-#: .././config.py:14402
+#: .././config.py:14433
 msgid "Classic Mode"
 msgstr "클래식 모드"
 
-#: .././config.py:14403
+#: .././config.py:14434
 msgid "Applied to media"
 msgstr "적용된 미디어"
 
-#: .././config.py:14477 .././config.py:14742
+#: .././config.py:14508 .././config.py:14773
 msgid "Export"
 msgstr "내보내기"
 
-#: .././config.py:14486 .././config.py:14751
+#: .././config.py:14517 .././config.py:14782
 msgid "Clone"
 msgstr "복제"
 
-#: .././config.py:14495
+#: .././config.py:14526
 msgid "Use in Classic Mode tab"
 msgstr "클래식 모드 탭에서 사용"
 
-#: .././config.py:14520 .././config.py:14785
+#: .././config.py:14551 .././config.py:14816
 msgid "Refresh list"
 msgstr "리스트 새로고침"
 
-#: .././config.py:14601
+#: .././config.py:14632
 msgid "_Preferences"
 msgstr "_환경 설정"
 
-#: .././config.py:14608
+#: .././config.py:14639
 msgid "Download options preferences"
 msgstr "다운로드 환경 설정"
 
-#: .././config.py:14614
+#: .././config.py:14645
 msgid ""
 "When applying download options to something, clone the general download "
 "options"
 msgstr "다운로드 설정을 적용할 때, 일반 다운로드 설정 복제"
 
-#: .././config.py:14625
+#: .././config.py:14656
 msgid "After downloading a video, destroy its download options"
 msgstr "비디오 다운로드 후, 그것의 다운로드 설정 삭제"
 
-#: .././config.py:14642
+#: .././config.py:14673
 msgid "_FFmpeg options"
 msgstr "_FFmpeg 설정"
 
-#: .././config.py:14649
+#: .././config.py:14680
 msgid "List of FFmpeg options managers"
 msgstr "FFmpeg 설정 매니저 리스트"
 
-#: .././config.py:14669
+#: .././config.py:14700
 msgid "Current"
 msgstr "사용"
 
-#: .././config.py:14760
+#: .././config.py:14791
 msgid "Use these options"
 msgstr "이 옵션 사용"
 
 #. Add this tab...
-#: .././config.py:14851
+#: .././config.py:14882
 msgid "O_utput"
 msgstr "_출력"
 
-#: .././config.py:14870
+#: .././config.py:14901
 msgid "_Output Tab"
 msgstr "_출력 탭"
 
-#: .././config.py:14878
+#: .././config.py:14909
 msgid "Output Tab preferences"
 msgstr "출력 탭 환경 설정"
 
-#: .././config.py:14883
+#: .././config.py:14914
 msgid "Display downloader system commands in the Output Tab"
 msgstr "출력 탭에 다운로드 시스템 커맨드 표시"
 
-#: .././config.py:14892
+#: .././config.py:14923
 msgid "Display output from downloader's STDOUT in the Output Tab"
 msgstr "출력 탭에 다운로더의 STDOUT 출력 표시"
 
-#: .././config.py:14901 .././config.py:15063
+#: .././config.py:14932 .././config.py:15094
 msgid "...but don't write each video's JSON data"
 msgstr "...하지만 각각의 JSON 데이터는 쓰지 않기"
 
-#: .././config.py:14912 .././config.py:15074
+#: .././config.py:14943 .././config.py:15105
 msgid "...but don't write each video's download progress"
 msgstr "...하지만 각각의 비디오 다운로드 진행 상황은 쓰지 않기"
 
-#: .././config.py:14931
+#: .././config.py:14962
 msgid "Display output from downloader's STDERR in the Output Tab"
 msgstr "출력 탭에 다운로더의 STDERR 출력 표시"
 
-#: .././config.py:14940
+#: .././config.py:14971
 msgid "Limit the size of Output Tab pages to"
 msgstr "출력 탭의 페이지 사이즈 제한하기"
 
-#: .././config.py:14961
+#: .././config.py:14992
 msgid "Empty pages in the Output Tab at the start of every operation"
 msgstr "모든 작업을 시작 할 때 출력 탭 비우기"
 
-#: .././config.py:14971
+#: .././config.py:15002
 msgid ""
 "Show a summary of active threads (changes are applied when Tartube restarts)"
 msgstr "활성 스레드 요약 표시 (Tartube를 재시작 시 변경 사항 적용)"
 
-#: .././config.py:14983
+#: .././config.py:15014
 msgid "During an update operation, automatically switch to the Output tab"
 msgstr "업데이트 작업 중, 자동으로 출력 탭으로 전환"
 
-#: .././config.py:14994
+#: .././config.py:15025
 msgid "During a refresh operation, show all matching videos in the Output Tab"
 msgstr "새로고침 작업 중, 자동으로 출력 탭으로 전환"
 
-#: .././config.py:15005
+#: .././config.py:15036
 msgid "...also show all non-matching videos"
 msgstr "...또한 모든 비 매칭 비디오도 표시"
 
-#: .././config.py:15034
+#: .././config.py:15065
 msgid "_Terminal window"
 msgstr "_터미널 윈도우"
 
-#: .././config.py:15040
+#: .././config.py:15071
 msgid "Terminal window preferences"
 msgstr "터미널 윈도우 환경 설정"
 
-#: .././config.py:15045
+#: .././config.py:15076
 msgid "Write downloader system commands to the terminal window"
 msgstr "다운로더 시스템 커맨드를 터미널 윈도우에 쓰기"
 
-#: .././config.py:15054
+#: .././config.py:15085
 msgid "Write output from downloader's STDOUT to the terminal window"
 msgstr "다운로더의 STDOUT 출력을 터미널 윈도우에 쓰기"
 
-#: .././config.py:15096
+#: .././config.py:15127
 msgid "Write output from downloader's STDERR to the terminal window"
 msgstr "다운로더의 STDERR 출력을 터미널 윈도우에 쓰기"
 
-#: .././config.py:15115
+#: .././config.py:15146
 msgid "_Both"
 msgstr "_둘 다"
 
-#: .././config.py:15120
+#: .././config.py:15151
 msgid ""
 "Special preferences (applies to both the Output Tab and the terminal window)"
 msgstr "특별한 환경 설정 (출력 탭과 터미널 윈도우에 둘다 적용됨)"
 
-#: .././config.py:15127
+#: .././config.py:15158
 msgid "Downloader writes verbose output (youtube-dl debugging mode)"
 msgstr "다운로더가 상세한 출력 쓰도록 하기 (youtube-dl 디버깅 모드)"
 
-#: .././config.py:15136
+#: .././config.py:15167
 msgid "Youtube Stream Capture writes verbose output"
 msgstr "유튜브 스트림 캡처가 상세한 출력 쓰도록 하기"
 
-#: .././config.py:16053
+#: .././config.py:16084
 msgid "Are you sure you want to create a new database at this location?"
 msgstr "정말로 이 위치에 새로운 데이터베이스를 만드시겠습니까?"
 
-#: .././config.py:16160
+#: .././config.py:16191
 msgid "Are you sure you want to forget this database?"
 msgstr "정말로 이 데이터베이스를 잊어버리시겠습니까?"
 
-#: .././config.py:16195
+#: .././config.py:16226
 msgid "Are you sure you want to forget all databases except the current one?"
 msgstr ""
 "정말로 이 데이터베이스를 제외한 모든 데이터베이스를 잊어버리시겠습니까?"
 
-#: .././config.py:16399
+#: .././config.py:16430
 msgid "No database exists at this location:"
 msgstr "이 위치에 아무 데이터베이스도 없습니다:"
 
-#: .././config.py:16401
+#: .././config.py:16432
 msgid "Do you want to create a new one?"
 msgstr "정말로 새것을 만듭니까?"
 
-#: .././config.py:17041
+#: .././config.py:17072
 msgid "The current options manager cannot be deleted"
 msgstr "현재 설정 관리자를 삭제할 수 없습니다"
 
-#: .././config.py:17049 .././config.py:18049
+#: .././config.py:17080 .././config.py:18080
 msgid "Are you sure you want to delete this options manager?"
 msgstr "정말로 이 설정 관리자를 삭제하시겠습니까?"
 
-#: .././config.py:17243 .././config.py:17590 .././config.py:19074
+#: .././config.py:17274 .././config.py:17621 .././config.py:19105
 msgid "The new setting will be applied when Tartube restarts"
 msgstr "새 설정은 Tartube가 재시작 시 적용됩니다"
 
-#: .././config.py:18041
+#: .././config.py:18072
 msgid "The default options manager cannot be deleted"
 msgstr "기본 설정 매니저를 삭제할 수 없습니다"
 
-#: .././config.py:18736
+#: .././config.py:18767
 msgid "There is already a scheduled download with that name"
 msgstr "이미 동일한 이름의 예약 다운로드가 존재합니다"
 
-#: .././config.py:18783
+#: .././config.py:18814
 msgid "Are you sure you want to delete this scheduled download?"
 msgstr "정말로 이 예약 다운로드를 삭제하시겠습니까?"
 
-#: .././config.py:18951
+#: .././config.py:18982
 msgid "Please select the AVConv executable"
 msgstr "AVConv 실행 파일을 선택해주세요"
 
-#: .././config.py:18984
+#: .././config.py:19015
 msgid "Please select the FFmpeg executable"
 msgstr "FFmpeg 실행 파일을 선택해주세요"
 
-#: .././config.py:19017
+#: .././config.py:19048
 msgid "Please select the Youtube Stream Capture executable"
 msgstr "Youtube Stream Capture 실행 파일을 선택해주세요"
 
-#: .././config.py:19807
+#: .././config.py:19837
 msgid "Select the youtube-dl-compatible executable"
 msgstr "youtube-dl-compatible 실행 파일을 선택해주세요"
 
-#: .././config.py:19991
+#: .././config.py:20021
 msgid "Database file not loaded"
 msgstr "데이터베이스 파일이 로드되지 않음"
 
-#: .././config.py:20011
+#: .././config.py:20041
 msgid "Did not try to load the database file"
 msgstr "데이터베이스 파일을 로드하지 않았습니다"
 
-#: .././config.py:20036
+#: .././config.py:20066
 msgid "Database file loaded"
 msgstr "데이터베이스 파일 불러옴"
 
@@ -6522,52 +6534,52 @@ msgstr "RSS 피드 확인중"
 msgid "Cannot download videos in a private folder"
 msgstr "개인 폴더에 있는 비디오를 다운받지 못했습니다"
 
-#: .././downloads.py:2986 .././downloads.py:5243
+#: .././downloads.py:2986 .././downloads.py:5256
 msgid "Download did not start"
 msgstr "다운로드 시작하지 않음"
 
-#: .././downloads.py:2994 .././downloads.py:5255 .././info.py:364
+#: .././downloads.py:2994 .././downloads.py:5268 .././info.py:364
 #: .././updates.py:278 .././updates.py:476
 msgid "Child process exited with non-zero code: {}"
 msgstr "하위 프로세스가 0이 아닌 코드로 종료됨: {}"
 
-#: .././downloads.py:3108 .././downloads.py:4060
+#: .././downloads.py:3108 .././downloads.py:4072
 msgid ""
 "This video has a URL that points to a channel or a playlist, not a video"
 msgstr "이 URL은 비디오가 아닌 채널이나 플레이리스트를 가르키고 있습니다"
 
-#: .././downloads.py:3937 .././downloads.py:3951
+#: .././downloads.py:3949 .././downloads.py:3963
 msgid "Simulated download of:"
 msgstr "다음 시뮬레이션 다운로드:"
 
-#: .././downloads.py:3959
+#: .././downloads.py:3971
 msgid "Simulated download of video with unprintable characters"
 msgstr "출력할 수 없는 문자가 포함된 비디오 시뮬레이션 다운로드"
 
 #. This object creates more messages for the Output Tab and/or terminal,
 #. than downloads.VideoDownloader would do, as the output generated by
 #. Youtube Stream Capture is not easy for the user to interpret
-#: .././downloads.py:5134
+#: .././downloads.py:5147
 msgid "Tartube is starting the stream capture..."
 msgstr "Tartube가 스트림 캡처를 시작합니다..."
 
-#: .././downloads.py:5152
+#: .././downloads.py:5165
 msgid "Could not create a destination directory, capture halted"
 msgstr "목적지 디렉토리를 생성하지 못해, 캡처 중지됨"
 
-#: .././downloads.py:5173 .././downloads.py:5198
+#: .././downloads.py:5186 .././downloads.py:5211
 msgid "Youtube Stream Capture script not found:"
 msgstr "유튜브 스트림 캡처 스크립트를 발견하지 못함:"
 
-#: .././downloads.py:5247
+#: .././downloads.py:5260
 msgid "Failed to capture the livestream"
 msgstr "생방송 캡처 실패"
 
-#: .././downloads.py:5251
+#: .././downloads.py:5264
 msgid "Stream capture terminated"
 msgstr "스트림 캡처 중지"
 
-#: .././downloads.py:5261
+#: .././downloads.py:5274
 msgid ""
 "Stream captured terminated without downloading any video segments "
 "(indicating an error with the stream)"
@@ -6576,45 +6588,45 @@ msgstr ""
 "오류가 있음을 나타냄)"
 
 #. Capture successful
-#: .././downloads.py:5277
+#: .././downloads.py:5290
 msgid "Stream capture successful"
 msgstr "스트림 캡처 성공"
 
 #. Show a confirmation message
-#: .././downloads.py:5307
+#: .././downloads.py:5320
 msgid "Merging file segments..."
 msgstr "파일 세그먼트 병합중..."
 
-#: .././downloads.py:5327
+#: .././downloads.py:5340
 msgid "Segment merge did not start"
 msgstr "세그먼트 병합이 시작되지 않았습니다"
 
-#: .././downloads.py:5338
+#: .././downloads.py:5351
 msgid "Segment merge completed, but path not detected"
 msgstr "세그먼트 병합이 완료되었지만, 경로가 인식되지 않았습니다"
 
-#: .././downloads.py:5348
+#: .././downloads.py:5361
 msgid "Segment merge completed, but output file not found"
 msgstr "세그먼트 병합이 완료되었지만, 출력 파일이 발견되지 않음"
 
-#: .././downloads.py:5369
+#: .././downloads.py:5382
 msgid "File moved to:"
 msgstr "파일 이동됨:"
 
-#: .././downloads.py:5374
+#: .././downloads.py:5387
 msgid "Livestream download is complete"
 msgstr "생방송 다운로드가 완료됨"
 
-#: .././downloads.py:5379
+#: .././downloads.py:5392
 msgid "Failed to move output file"
 msgstr "출력 파일을 이동하는 데 실패"
 
-#: .././downloads.py:5548
+#: .././downloads.py:5561
 #, python-brace-format
 msgid "Stream capture is frozen, trying again (restart #{0})"
 msgstr "스트림 캡처가 중지됨, 재시도 중 (재시작 #{0})"
 
-#: .././downloads.py:5555
+#: .././downloads.py:5568
 msgid "Stream capture is frozen, giving up"
 msgstr "스트림 캡처가 중지되어 포기함"
 
@@ -7194,5 +7206,20 @@ msgstr "업데이트 설치 작업이 시작됨 "
 msgid "Update did not start"
 msgstr "업데이트가 시작하지 않음"
 
+#~ msgid "Keep the description file after Tartube shuts down"
+#~ msgstr "설명 파일을 Tartube가 꺼져도 유지하기"
+
+#~ msgid "Keep the metadata file after Tartube shuts down"
+#~ msgstr "메타데이터 파일을 Tartube가 꺼져도 유지하기"
+
+#~ msgid "Keep the annotations file after Tartube shuts down"
+#~ msgstr "어노테이션 파일을 Tartube가 꺼져도 유지하기"
+
+#~ msgid "Keep the thumbnail file after Tartube shuts down"
+#~ msgstr "섬네일 파일을 Tartube가 꺼져도 유지하기"
+
+#~ msgid "Use youtube-dlc"
+#~ msgstr "youtube-dlc 사용"
+
 #~ msgid "Video Catalogue options"
 #~ msgstr "Video Catalog options"
diff --git a/locale/nl_NL/LC_MESSAGES/base.mo b/locale/nl_NL/LC_MESSAGES/base.mo
index b53bc9efc02a4afa48d4a182b88d8d758d6ee377..a80d93f95f5a89e21f251e566b4d3ef8eec3282f 100644
GIT binary patch
delta 34077
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
T@@-wU$7^G~t-bxdlL!AF+)y;2

delta 34458
zcmaLg1#}hHqwn#PK(OEe0t85cLxL0Bg9UeY2%Z25K?{RRaSmSG-6>Ki?!}?FON+Hw
zkwVM+{?6Xq*LBxhZ`PXsXWMMwb50U^@1p04M*f+|xsy8nOcz)C1TI%5%wELh8kxxD
z3hk^^m#f4$my0A<NvwoX*a<gd2&NtHauvji7>Y4i9v5L@yo-81_4m|;RWU0%SO#26
z31m}2OpNg+&<RY2d9g6&#MYPxM`0n{XuXF)#8XdnxyoS?R0m?P6mG=;e2Ho&@g$ck
z73RalwC^fUAQ1@>m;@VOLTruAFcK-|`Wf?Mxyde9V~j$@52G4*gN-ox6ql<$c0_e_
z2WlpMLnhgkaVmqvU`(Wna}Y>@`7t?`!<1Ot#@nEJ9EDmU2UFsFOpP1R7Y|@X`~^#6
z@@Zy3HLQ&>De3Jn2S%Zjl7O3lT#mVM2ddy548iB9rSP9_*0>U8Cf*Cx;YpYt=c7OF
zu=!^&1M%mm`hDD{L+P+7@nAO-tDX)dp%(7I;^;lYR8$Imh&RAMY=&B*0jRYciJ`a(
z)8J)nj!!W)hO@P`giWw0Zo)$N2vt7aEaqRED`b}0l?|{k@i;7ktFZyz!bVtNwi(eV
ztV4VuszWbPBm9VZF7X`G@v@kVcsOci>ti|`gxYh{90Cyp=Aox&s9m0JuIW$(tU$aY
zhT(E7fj6)U`pq+&usLd}#-WyKJ8EX`BFD^?^anH02vj}2Q5|wt63|qhL-q76YIAta
zH}PDUi+C97f!3&9JO(wANvOTD95oYLFct1a9pkf@AKzkW%(}pIpbeJS!J0up4_?L~
zyo*{p*Fv*KewdkPZq#P0YU7Pj9gjtIXf}G|Le%q1P^V%$>b-IRHS$wf3|)&{uC_YZ
z#R+sEJ{#NN->5fS%f+VR1E?7}jz0Jj<KtUY$3LPPh_}SN36mkS?kb1c3)e9pCR=KD
zeQDH;xG@dwyABaZk5|zjUttDJw9HI#R#bXPR73T#AhxveiKrQvg_@xSsHI$w8F3G4
zPh3H@<63Uw8PHLMl?iAq>tHZOqTYaGQ6rp!n#y^oUA_`kekW?J&!YCgJ=D~{MD1?Z
z3S(kyK{Pd1#3=N^O)Hpxbzlbx+Wq@cBY%zA(RZb(upnv#;aD7_F&nPLAUuVE_#88#
z?<!MIZd6Aqp*mU<RjxH^W`?X{{xz~WB&Z|HF#tEBj?*brN8Y0z3|MU%D2*C%Gt_gD
zsF~@7nz3Q17t93Ag^N)mK7s1sS=16ecL=CwpHREfca7QYl~4_~Lp3lAb$q_ZvUm(N
zQ}NfDy^+OQ3{_tp)KauVbu<<m;xN=^yo_3E$9tXm@X3y9s3>a0<uC_!MD5n`s1K=K
zsF9sOHFO)*kv~zJH1T@#f(k~>WDC^H^uvTW7DI3fCeZo+iGT_o!XUhZ+Qnb7C??-v
z8VW~spfReVNKA@Rm<$Km_&D?>J`>f!CFqUYPy_rCRnGxTuJeDMfO>crli@2*hRgLY
zCLx||Bd=LZkBWz)8Yqs1FdTDZ9A?3VsHNP8Y4IIu#*%C@$1e~y^(D}A{#y`8PC_q?
zk3&&wHxjjJX4&-l*qHbdY=9q74b<3dmY^MK#Dh>Borvn_Y}AY`L#Eud4mIOj(edm?
z0(vn#N5$iBF`F<LQxY$aL0Avf^FFBK<3?4q5w-TGPy=~@s^>MT-sD^PGK0A=2;)#Q
zJ!>oTuU)>JgcNuLE8u0+l&0Ng8Y+iD#G9kmd=M7Kv6vJ0U_QK$n(7qW%~E8?)WpM4
z9c_Zz)G?^?bGEbop#+YRkRRV-CCs{mw<1QOI=B{#;wdbNU#%s7H0iOZDPN6ca2p2U
zE9{S{b~0)lj|1^5_Q8S9F4mpEbBx87yG_r}VLRe~px$(K_m~mKqB^<~E8-OlM*pA8
zXF^HTfVyK=oQ;Wa52nGxs3p2)b$%m|iiG#5sZF%kOifzU)P|$p2i;LKFa`ba2<pvt
z4YgFReP%P}!E{8+V=Zig+C$4wYrY-T-XScl^M9E@00}97HoG_!b&RT_9*jig_roBZ
zj+t;9YUJlpBYlG!dD{JEGgd-%xCN@iQ&1gPhB_5nFpJLrJ^~uyEzFBv2h1i3MXhNA
z)Pt>2BkO@0!3b0bW}u$`5!2#LEQ7C64dp**ro0qth9gifq9zzf`>u8bf^isTz@-=;
z_hJ@2h(UM{^*-=AWY#nxs-l!wA2Z^2*b}SbQ>=sq51UWTSo9{o4&&iQbkxvR0_yor
z)C`<Kjrb#~#|e&@4;??$=BbYbupR1rPsL)m2DMc8usD9f5?J)8S(+%+W}JtfJ#m!z
z*HmsNK~sAS)sfrik8jZjeUF)M$*Hgg@s?N(SE8Q(0|U`@+`Q?6Q16r6SQ$%T0vv)m
z1*5EUk2C-ANZ3e%dcGC4o6ll6en3rG=@aI`a@c}+Lkz}^s2MqrTB^IK2L8oF=y%dA
zT_()q#Vlee(z~28dt|9YK*!`RYN|p{o2iRL6<mP1@fx;4uV2iuYlk_BkHd_(2{nVK
zZ2EoFCQNk3SOv8tBT)72!E)$4v<X?ynu=>;d@^Efd;n_d7Na)XD%9F-u^z$^#4q6}
zY;w*#e-nL)-@_n$fm*6$=go`-B5}u+pMa*U0;++=sCRZ-)Y`{j0~~-U@iZpKTc~o+
z(KF?klDOXm)8XuxjCcsD-jb;IKsah?nqr{Ne>(yi;V?{rV^N!MHmbr6m<oT!gm~V1
z4XYBrhcz+RMYAbmF)Q((Q1#xyB={Ih;ww}~@?K)k>HL=?po&|dM%)4QhU<z+aWrZw
zr=v!+5F6ln)TaH4ei(4s%t!%L2P&aXQ6y@{hM)#C5jD^S=qRv(fGXIB>c9o-RaC>b
zQ4K%EJoo`sKKP1R>oC+NEQLA+jWG=SVi2xH?Wxlkf#*?6knvaMUkzsa)l5wu)GqFb
zd2tZt!xgBhyM#I=$*!8yQ5AJOhokBlg<6X5u@?S{Dxd9|c@MP0O2n679ei|+`PYbw
zTsIB1MvY_wYKm84HT;CbvEmJLj1FT6@z0nObKNw@sSXw)J_+mLLClY-Z<)`OiWo?|
z3u=I49RisNY{iCn9t&ai+vWw-1RD{bhw1T8)TT;w$5fmG3lcAfX|NY+sYaoucsgp$
ze?WC;J=Vv6unIbL@0t<L#Ofs6MitC?k0Xcuu_?Yn%|!M4995i(h4BKm$M_G-40c8}
zI0OB01*XD%sE(bp>9>)Ya9n>8$VNumhi0>s#9-nrFdcq}Y0-_^bZam*?!&ow9(BIE
zKQayXMQ!TQsM9kOHFHZ*<$l6!coehh{68g-orI*1%~}@19K@SpE*xspSE5FI21}sp
ziHVoQ0z`XaL7b1?cn0I+dDK!|K`qf8^uf27g!WyZ2&iEE-^_>;qoythnIcyS%z@3Y
zJPySQ_%oKnuhw$EoAN_YGq?aV;C{@4*HJU@(dzw_`PZ8%DFIEXKbFM27>b=xBb$cm
z$U#&^_fbpZdS;(PZQ8u3rD}y*^BC0oV-zOBshAk&+W4|(%zr!*){~$q+l(6dHdMo>
zF#<oMI#}hoskj+xFLXzx4@GUdX{a?{idyqc))T0X-AC2`0X2XWFPQ&K1aiJGYZH#D
zs2OSm-7o+LV-U{9gt!Y6-~rUGK91T{S5Qm!3Dr>GOH)sAEJHj3^WhkqzTF|9ijJWg
zK7&Dc2Se~Hs=<&y%!rDh;<Zpq(FiMGEUMw{sD^J~K74~JAM~gB49Ja{i5Exh4W}^y
ztxYe~lny{m=|oh=7NIuhN*s>sa3tn?W!82JYEAcH4Lpu{F!gKmhAV?PiFZMrvdO5u
zv<-uF{x1<w58q({{DK-m=o|AQs%)K!g-Cyb+AHbb8UrvT@hqs07C?=#D5{|bm>Od+
z1&&7TxtW+m=YK8%O~rCg0>{dF614=EQ5Cx0nGs|`bvPV@uqLX*JyD+>qcAHj!X$VI
zQ{fp@NAF@Xe1$1!-}Ntn<e2;~V`fZ4JQR~+Mbr}2L2bsSSQukbOSBSoN;aTI`T^CE
zB=3zmP#vg%>R1CCk3&aOG?sv-W)*5`ccMnP2kYV?)Eh7L2eZp-qTUm|Fc+>tt?dQW
zCVY><nCYWgl5$v{csQzKBT)lc_>uWnkN1$EsX2qS@DA$D7V^pL;_lWt)?=vh@6ZQ*
z{x&n_i>f#XD_|K6!XcOr7osojz*2bdZ{}Z9{DlN<p2VNcR3}FrFMrh97qd39#$ayJ
zr&@QT8hC)3$xo=IN&Lm^t(2ITcwW@$Xp9=T;}FP5U^;5EY(PD@3$^C^Q9V9^>gZ+E
zTHZ&0e2c2c_aC#VvY=)r6#cL)>Uh?-wnQy?B<h9bj3%H>vBoC+Vts{0NKf;xd2>}q
z&+$QZcqXa?n^Bwh1ZKdisF`_<Y9QlRvjpX^1o5_*9_L^+o&PNa^x!AdX7Y1+c}89u
zbxbOw8f<`iFbXr{7}N-tqc-a<>jBivoj}dx1=P}Bv+1`{Gx`Km>ioYUppnG$G8qA=
zDa?f$aS7CvSGV~sP)pGnHMOy*jt)U}XaZ)zMW`3e&#3Z;Py;z<eTM02-{s?ND#(J`
z&7r6c6-JG;1{TMzs1Yr;`KwS3??=z+L3Q{J=EFZwn=(^8FV7McL6xtBDpwDkngrSr
zP{Zp{Yqu3u@FwQOr>ISqGQKI74YgVGpk|;bD!&}6<MmN9&<!=>ai}R@hAO`a)8g*<
zUXJHYc8-MnBzXIHdCqSkR0nFKDr$*pa1aLJXjFwOQ4MTGZMHKu{u=dM(gbEeA*j98
z2(?+iLoLmO1diD}Q%F#SvoRAcLrv)ctb-S@HU=g1^1KnFQJe8+)Y@J}b@&mgp*N^E
zV8%qI!(~vXtTn3MVW?O9G>3q8=StKXufqU*h}ukFQG38Iv6-?$ScrHvtc3$nBRz&;
z_!zYW0ZGg$D1sVT87za<QKxM*7DQ(e0X1|UHKIoti2tA(&g|>uc@LCEEkQ3-xj|R}
z-Ke!cjH>5X)J!}>EzL)p@0ZlfY);h3!;#Ml$JNXx3`JGoM)hzNs)B=95^teKnl72y
zL}AwQsN)%drLiUI{Le<s=wj3<xQ3ePKW+RS`sn=oCin7u&Zn}LMV*Fj=ovBU!9l2z
zI;dkf9W}LcQ7@nss3qBeyp>&lqw4vP!W_4MPy<Vr(rm(9m{8}x7y+ijRSwl)C)6J3
zg=KMq^(0m!o-mb{=cm}Zn3wo;EQ<Ru55B<?m?^cF=WBdp)KZN=)xQ-rfPLus{ofG+
zTGNy0`4qzt;-65*GKZhp1C3BqIu5l74`54tgIe=CY0NHfg<3iXH8b;2$8#xalO99O
z#FsRje+AN|^>TH=f~YB;gPPiPsNK91wZ`XABe;*6u@|V3q)um!T?W)KtBBeQolx~H
zMjh*IsQS*MX6W~HoPSjm?C<6IhEfgN6CaBs@F^C<p6Sg}EW_`J-$ysL$>8NWhHp^s
ziQO4Z!-)dCJU>lWMjg9Jm<vy#Hu)RWj3sa~nHNMFY)nEJ>Re91Rk#-yVW-UIO%^|k
zS>t@zo%E)tcljZ#f)`OQnDl{W#CcFNRu#3U>Z3Mu6l$iN7y>$0Gch}EN1e~>SP}oQ
z77Q{o6odIl--=q(d#F7UKiH%fL2bhJ7>*NApDE|C0)E7DSTd_;Mjh7x0;=doR0nQg
z5Pn6yfP%7_O;Zll<G!d4%*IN16f0n&>|UN<TtuKY**t8D=TXn)&f(?xw;(k!FY)D=
zN9X^XC%|sUoMdFnX+}^3)$_in2Ns}?*$LEI{(~B6j$CH9*F|->J8G)Oq4Jm8{IjU%
zp4#+OxxHLbI{&2!=-916HFyBEDW76bOp(W=e}`#_uRzVzPd0wf#^0kx8j#n^H3Z9H
z5!{Qd@fAj6oe*;h_MxL5ULl~7e?@JgoS|mzd!nXrBNoO4`OIl3iPeesMjgN1m<SJG
zVmyg@pIkx>>;)#rc=^o?rbZpZYWX?;3bZ9bBkPYk=aW#odJ*cFY(iDA54F30LG9|>
zsNMWK2H{K8dn0)P(@;j#X0D6cGo4VUYdY$=!v!4kjy^#`WfIP!5Be1}pX(V=9mt7V
zyP~Mg+6wjJ8is*54|R(6penwOnz1{my^yMqc|IQ|B;FV`fYuHHeSzqT8gU$IN=Ku5
zJ`vT>64XrnWaF1?{3T{5-KVhGGkGzXcs*2l3~EozM$OzF)ZRLcnrY`X0j+(!B4#9c
zQEOHMHI?mAJ&wW}7>63^0o2Ug#d`P>wfoBzwKIhEi4Q|Hd=WK(hp46ejJ%>9SCTL@
zMO9I+#tx{d?uYsiS%~WCZfu69Q60=)%v4w!)o?@99_oX7*N;Ul)pAsaPuTcxs1EoR
z*Nk)iG7?Y)d9gTFN1gLw=#4v2yLuPq$3v(+^4i8fpmu-G66U-YK$UNf`ta$98bCkP
zQjW9fOEHtq{|*8=E*DX2_8c`;DNCBYksDP(7-}l3p(<)-^J7ru9aMv}QF~`CYDV{?
zp1*`zvd1?579ADvDP<nafT}nY)uF1Wscegy+V4<PKOI%k8q^Z)M9&&qAEKUrhuYN1
zN}Iiu8P#4M8!ua$^RL|=L4vG@dY~zm!Y-&0Ek(~#pf=+!?1u+XQ(e4_Nw0`n+Xz&L
znxSU28)`--qn=-eHE~@T&cD91eIOwME0;BEIT=;KY}5!>qo(jMszX<7{_i&a2{p2$
z<xIICYhi0;RDDfQ1MPz9NVG#ho2eh_i^6xPk?+Q`_zuIcaC!3?&=vKuIt`V71?!?;
z1@j%RBbF!bMxCNd*cv}$C2U^Nv@;)-?_4JkLcpt%IWGB771YN(I1P0wenNc;zD2z+
zvV@zCSFzSa9k=?{IMhtdMa|%P)C?U*)prwvbpHJ+n;sRl_Q8A<*oZoAx3D1kRxvYC
z1{IG%m0O0PcmegH^e@K4YE?}KYNGZ?8&pTSVi1l*&)@%+6VNO32<FBoSOim4Ghea7
zu`%(D7>n_%d%61J0Mr`3L_Pl(2BCk1u>`8V=BN&iKy_pj>V2^rQ|kO5BA{J=$rgBs
zI$kePJ^pOd)73ELf>0F{M7^R*qV`Y~)QhYp>cgcQ>NNC49qW;(dKaMDTZfK5e15VS
zC#=7s9(;sav$v?@ldz^~I1_5*IZ)?3A8J=uMKxR-by}LCc71nLJA+ZrjYD;GYE90+
zHpxa3G&KiNJv@zS_&Tbhm#B)qqROYNWzw^u;$f%}RY#R;hMpNf%}ihGAk+(N7-~jl
z*K$mQTS(BGZa=Drw@?*7LRI*|#uL>x4F{lS<fx8TMGc?@s(dF@hvHBj8I78usi+Rk
zMlIa}$7Zat37b(5?6v8~QEPn`)xoQ%2Hv46@~LA!J$+GAoC{UHD5^tcQLpZ5r~$P`
z)!!Snq|RUhnu@8Yk*r1a>}OO3r)>N(YBSzLHT2o$C#q}WsZk9CqMk2o)61boUK7=^
z2G*9yQai3r1oU7GYDA-Lfe9F&_zYA}=b|d!h}xWcP!*m;E!jnze*@LQC#aFWMa|g1
zHa$f>lb#9v_4%KRfJRy#RdEEW;%2B0wYT|QP#x)mDmMnT2WHy%M$|y|p*HP#)Qmo`
z`R}bh_02%iU|OC3AOh+@F;s&UP@m^jQ6p}H8c}x}?~fYUNYvC$w&^ob&n-dKw;Qzy
z52FTj3AGn)p-#aY^ql|14NQgUP$LLNO<7S?hpM1PUel(xLsi@dHPYdzC2*rQ=?^x(
z3)R5`s16-Rb>sr-xf=~Q|4Mj4LVx@VRZ&z!v-WYQPrE^=ihf3Q=qRd!)2QcfV?KO>
zdOl4flb#7H6VHL#OWiRq_Oki&8gc%sk+6&eJ@_2;b@{C|U1ReuFNx|v3skxGsD`_t
zIuv6afLfZNHa;E$iBCZ-;U?6Q?nS-mPB;Ygz^}+_-gO@f6Ax)>egtcS&4@2XeUtfw
zxiL#KGm>gpi+GHU@3%g~Vx*^SZl0@!I=+2S$9*EIU1ueM5CU7U2;Rn0n5u>OxUGdH
ziH|^ijoyoTci+Tv_zA0EiI(PbeJHA-A2APJKrPj0)Qlx-Wo9fLa*7;RCIXt$5NwA<
za174Cq8QNH{7R-CRwcd_Ju`tFiDzl!<@x9PBQS#aW7IdM0&UHbMWQxePt>OEhuX|z
zFqO{#4+PZX4XERB0=4_^pbGwpTC4c&%&|$0%Fl!PN>$1_1Xb<;YQ$$z?}>Y;J@qGQ
z>QlEj?}bnd(fO}HK<BY1YIlyrT(}Vn;;*PFPuRh9C<kgON?Ds@PT~Vl4J|^w2M(d<
zm|;WWFHqkxD|9qVHw2wRB<v-ip8bK^&51gh9}<(Jc5P8q0~JxntSjoA&%!9&hMJM!
zNV7zRQF~}07RT+Vsegg`Y50pZeP_<UHc8RWW~6PfJMk&l8vjOpwQAPI{C;o{YKkAA
zUR1BJ0><lV*0?fi3F}}E?1Xwne~%i-GHi*Pu`DL-=9uqhHM*H^ul=za89$&#@DR&m
zmhNU`ZLk3G6{!3xsAHD0hbdPLvk@PQp|}p!&^6Rjrt4`oZ#C46^>hemN`}~kxu^=(
zqDF8Q6W}}4$UdV!R8mD5b688Fj&E&L!^2SxZ$!=T3si^GMVmcTAGMTDX9B8t24=*y
zsI@+7(_h%QcQ5lm9@LAYDSBfEREHu_n{6O!swbe{4|A+nu?6vTy}dmD^0^Q8(D{Ez
zU<es?`<Tsl1~u|aHvY-_6?L3^V(iB!YV!u+Tx@{+Lc#R{H50jGy*&RJPb<_WJcyd<
zPpHkCwy!ol=dUmU9h+LH0=+OZPC&gl)}UTQ+fbYCcbop%>Jw)+WeU`0&5UZWJZeV!
zqh9ILQK#T2s+}uR=l?YUt#Pt`rol9*Db9l0?RiiyqT)7Q%jUO0ZK6oj8?>KwD0Uz|
z25aL})Q3*-{$`27QG1~=I_mLM0@@5)Q7?{rs2TZ)TEl<=<};!N>IF3hwaK>F^gF02
zO)}8zg<PoTOQUvu8&vrzsN=X7^}e|>kn^ukvp-4Dnx!9PJ}zsaHepXx1#Z;T9YJlb
z%cutL+xWkz3VjEgk>x<mXgkyrbU{5o0`;byj$ycFFy~)uahHTZ{EYgP3i!^fd3IF6
z=BNgyp!UWZ>v7bcc#P`MN7Ry~9pdHrXM5RDn{)u`mA)30e-S;O4Gsa%44{@E{ZP|z
zRa8$0qed_twKN-09X*O#y2luf2^ol{wkE3LPN+Q*i`tADs5bL9)bsmL?-}Pd0i9c~
zVdf3yhib4PYRaNfn`|hm;wd(LA!;NWt$R^3c?!Mp397-TsQ1HLR6PlYo0&|H%p8CJ
zC7|711y!I0YNS0-r(h&%_fAF~!+EGZaSpYqTqDd3=0kP7396nxs2AG^RDE+$?QBLZ
z<x%wf{qHUT&l;jO%|}lLKWt)8;yxqIhffTufg7kP{0p^2X-Ano6N(yX7;5AZsE#*8
zZRWP9Jun8f<Qo-t2wb%ZUr`O@9&PqQIOZqb2enp<QQv%yU=Th<bv(%!)1l0$^s*R%
zZBXS`qn7dv>iFJ9?Uh7hIsb(T1QSq?8lleZ5Y$vHMvY(xYU&T7HtBoRbJ@q4DQ=4D
zU=-@PX{dp$M2+|$>J&W10vIsf{Q0fsc+P)q5=N0w9WSEREZ}?dE-!>7h(}phVj1Fh
zQF|lP1k*q+)aI*;gRlqo!zZX2ZavZbd~q9Ni8r2P{)~5Wl06PpCwqDRd3|TpOdQ3^
z_=mN~6!ZB%0Cnv4V;;P3^_^;FAPm*9=BT~V3AHB%qh@9bYAKeZHtBYUfTr>&YHB{B
zKK*h}Gb68q+Pz~@yL}OA4SzvZ`~fv`-|6N%UM^HagHgwGDykz3u_Eq3&vQ22@pYTE
z%8EMQWl?Kc3)N6>oBspq*!_swl)s_gjOk{WH)1U;NxVC1WXn;n>K&*NA42V|i>Mj?
z3ybLdXPIf<{S8o4HwN{<G}OqKpnAL;)v+_kgRa-8S8k43<_%a0bsEN?o|}u>OIuLK
z@i^-F3+Oq%==u9!+S%q+Sspc&)lj>(BkI8k7$0Y%56(mFjl~#?k5QYq`5g1}z*5vE
zeT;e&W}R!^4>_#)QOB=1=F{%1M?lAHs4eh4>bSU3ujZquDZ7f=e6D%sOKMisChU&k
zIKz4kHA9(xFdeRknvo```l3-YGYlPVmRSV!skRO^(vw&Z&tg*yoNxZR-5>SfG1PnD
z7V1ML$pVv}8nuaYqn5H6YRx;MIxq%R|3cIZEL*_&*Jj#FLL+>Rnz9ND%}+StSf6+Y
zRD;`5yZQlY<gZXa31wVlmZ~Ib>B7;^i}wIlBkn9VzwbYeb%^^dF~2qMu*5MV-AY0e
zGU6>YQ`Z8!6Q7Jao}W;=KXjStNNWrsJ^@SNPE^HjumM(FZjR#&EJplyRDR$J6OYEC
z#8)^3G$l7s72ZWnsqad&Y5Y)YmdTnQ2N17-193O1e34b=_?AY^NDb5}>W13w15u}A
zE@~;(+kEE;0iD;&m<S(ZZTthZH_EIwr=mV;?W0f?jzlfRGSqWhQ1$FVo%_?MhOXKC
zSEwcYgz+%f8qXeaTp<KB!eS=DRUK7vL)6T)M|~`J#;O>FHE=s>vwg+vSYWLw*9bMz
zmRKC4QSXVBs7-zt)#3Z-`TT!IAc%xlsD@IlGd)a?8c8Osg?Ui#hkmG;n2vfetwz0A
z_S*P8)J(iXmGfC|UcmvV87YiPuYsO_|I?0uUMyWvYZh%CirOTTQOD>o>V@<KgYXq<
z<f%584i-aoa3pHx7NNerFGr2|p-q2*)rr4G&)@$_Z8W>Q4(26eII7|GHvK-9CZ1-K
zIiB@UGt&?wu$^@+>dp5KJ7b~E=CfiBmL+~1L(yl8S-QeoIR84Y9Z2Yf-=n7bZ=8kI
zwtBfL;2q43f!oZvuZ|Uo$DlUVcC3pJP^YNycC+SfP*Xk_HG^){rv4FiOiyp;{Hx+D
zJIqv7!`8&dpuWL8LcPhpqRxMkAI(gaM!mtJQJZZnYSYfc<hU9;;7-(lGVU}p)de;6
zTWtJqhd^Z#D(^DCN*Rw;h<`x6`O5A#Z>}k*slADssq}lym&$Rd^S=qTBs)<ZID*=Q
zmoOL~p$3%TCle1woeC$MfTpIMO&E!qqQ$7)y#qCcCvgJaM{UBWy(Yas>iAAU&A<}W
zY1oA7$R*VK;sL5b?|tSAP9T!*xT+9PMx@Ocfm*}WsLgm83*c89FYvS311&Ho>7&pa
z*P(X(M(Z}z4D3Rku9K(^o<kk;+n8D34j*{}^lZOrI0y?-pcd*I%}^|lyHKa#qs=dR
zz#PNQs3{(cI(}<Vui&HTi;pl7zCv~AlQqdf>Zg5I00A9~#;DKj5vYoOL@mul)K4sb
zp{6>;A#*%~QA^bXRdEkggWsX{#5h#LQ>}ARGqe;nW2?~7E?!F@KOV-~_y)CEDjYVp
zwDv=FWE$$Zb*MdZ1odjYX7k@8YwJpR#4K$=)PQPRyP?XDKEnA|MaxLgD{(KX;ftt|
zzeJ5F<x#VCnNa2OVh~n9?UnYZO*#qnZFdFg6z#?0=zYwjmqN`<eN;Wok2z*D^&&xQ
zJ{L8j)2NQ!MLqBl^`3AYx1R;5hWnu!UW#gH59)NhLDlmG^<2sm#*(N3bwJf0?GRAG
zv8aZAK&{a-?1!tdKL(yOFPhobwWv4VJ}iOBPMOVG6|)l`W?g|fh@V28mRG13mj7w<
zN_O%R(3Ew>#^_*6yn@;jg?=%cr5);XyCZ6|bwPD>0P6W6s5PH~+9TUh$L%cY_}xOi
z4<4Z253fzW<4SwRWMso)WE4hCX*bkJhNGr*CF;S=HvclJ;TNcK@y?o&<wkX|w2jxY
zwnd$m7)*g<(er=*V>SUT!AhI42en40Q0Mwr)Y^VTy*LV<GhbGVqbiz++RgK=dr<XV
z!ytTtDwpiMDVG^N9mM!L|FsC{oYqGjzZTZjSdjR8)Vn{|1@mdw3AHrSQJeOlO@E8(
zVDLq=sdJ;2qyg%^5rbO$Q8qpso%$rKAy5rJV?GSOWIpBkSeK)A>s3?(uTaP51LnbG
zm(6A>j*7>jmTD1d%@3nC;YHM*_=u_}!4=NG0?DqJo~A*4+!jSuP~O@R!-$VX9jAS$
z&x|Lik;VJfJeL-=#zCmhjxf}lwVh3$gt>?>MRn}dubh8%;5rHV_`HW&tCy%X`Uka^
z$*-ChQ&v>GEGoY~YDznxHe(!WgcDH>%tL(^tU<llPN1HDh#KGr#|8qfnYAvD70Bp~
zD!2vp;87dDhno6#sF5bQZl*jCgNR39PVA1Qa2l#(zhG5-h+4|LH_TEy;RH10eNYX4
zhbk}?J)dT%O>`91;A7N_>TlGs^uB3KiaIsvY&<J!Q-`8vGz``8Dya8EOJwF8R~!MY
z;W+e68S4D6K`qHa>seGsZ=x!Ef*RR-)G<wV%e;^Zpz@2NmZmc5cs50KAP)811oV9W
zUrIndT8*mc5Ej8ls1c>VZ63^ynxRrQUI(=YI$;RLp=N9es@y)Ce*snh1MGlbY<k-}
ze4o(y?@d5GU60zG`%yFU8)}L_p=KuDU1Mrg1Hq_M5Qh4+Y=9a-9BKw;TUVhvx)USt
z1nTF4)b}|5K?Ld(Py;cj5e!E?umFqUMjL;O+Klf}n=I9RGnFM!Q(PCd>7uNwQ5}7V
z8psFK>F|1B2AJXj=Rb&qU=p-8m9RNB!^XH3+hC%HW~5zEGcyXcM`oeU_eKoDo2VK2
zf_mX(cw{<U9#y^t>cc1oOX7e>jv4V*612O|qAGZ3bv-s~n;9FD9)Ur)0ITEAsMC`0
zi5X!KYU=Z1eJq8Vv58m-SE2U8Gi!Y3H#3D<P#p-vLRbT}`MyInFb?&KUV<9QQ>)kS
zrojxTiu0iMQaGyNCe}WvH{wLp?%#=;apx=njrb92?Y*9wo@PcBY==5_{jDQVOE3x5
z(M71Wy?_PrCaU42&&+!w7iv=$K+lI97AM{U*;|flIsvW8Nz~>zhbnj*b^f2AzG%Ef
z&B#Yo`S{PxuWXXwJ>u<A&sBP1I#?6+;%bc=*bvn7b5XC}73lfze^1(k%UGL?kJuEe
zzBHR}A=V`R59%~T{9!(fhG9P9KVo5ggr(8{PxI@zhNuC|Mt#OCM|E%=YN@uPzs~<z
z0!8r&YF7rlGB2RUs5Kvt%D;d*6$xIOW7P_^%X_1a-z?NpZAW!vKi0y}sHLp_#_XN8
z*oSz3bhHVc642)RY73-!YtDZtYDvms9;}Jl-EpW6jYc)R2P@+>RDGG>nKdthYPd0$
zz@DfMufXzn`W@%LJptdp%zthZg_`15SQc}=H@~NkL^tsVcnte}FuzVK`_YVaBI-SG
z0=0yHp_U~4lbNZ0sHONG^@g2|ZE^o6&VLmGfq#3sHee(!Lch;ugxgR({vEYc$-kJH
znv9KzFGC%-kEl1I?>}Y<3Zph%S=8D$M>X6IbvnkOW^|cDKoy+9s(24IwYmN^BWQ(+
zPr=-H#KvEuW-9Afa}1lKIy3=Q?jGtmCgvx-{8$Qg?7E@8kSxI<bPm{r`!>Pl<?T7w
z!Ke{6L`~%&)aKlPs^~Xtf`Q)No;O=RY)O1Kssm}`d3!c%In+$dK&5X+?f&b?*LKJC
zmVjOm>EoN8l|oHbbJXz~j#}GIsETf(URWP(JgtvOFN8%%uZ`N2!%=U%MW`h_h4t|j
z>IGIQfy%L{jR>d%F<2L8U>H6^?e>fbO#^vRySpj|Vk;Z}4#yIoj+)wxiM(Cyup~Ca
zd8k+TThtFKNfVoyD1;H(R4oYT1+yHx;49RcHA~{{`QASkTM$2j+Dw7I-kujpPSoBh
zfNHpswLR+Ndl;6%X{ZsOwcf)t#NVK!^O-QI8EF<&h51p(r6Ov?b*!CGui`-%gbu2q
z#i&iX1+_#^un>AD^Y(nvD2n=wh(#Y9f{k%xGH=K8W%4=+YUn<yLmyB}l03PYx`L>s
zh(LXzXpY*PQK$~hz-l-bH52zyYwt?o?Rg`Hpq?*=>Tp$5drea~re{$kXw&pZ&A?35
zl&!V}_gK%P*6<1H{Q9Oen=1^}U`y2I9fNv)BWfTAQ1w1QeO3DlwTIF>sk}X(=Os|@
z?s}LITcXZ$N7P7np(?nG+AD8RpJL@wo72$&8xWs@n!yLC0ewQPwZEU4p-@!AeNmgz
znL$7!+JJiCB5G=0VJA$G#@q85&;vDv15xL9JZi0%p+>YH^=5m3YTzH#jATx0I#3-|
zZ)?<d%~<5k>$pY`&{v}q=#9SV%<fK(dg1t^HcfrhrfP~RHy-tVn26e3dr+V6M^H0$
z9@U|TsD}SVEkzoCvj>V{cAfuf1oU7})UF?33yelpGz&GQYf$A5pho@+Y9@Y1jnq56
z*%SFto3ttF`5vgL9%}PvquzuEF^KkE&j@JBd^4EM6N2h#LsSKEm<Y$AHr+JTF8&EM
zmA{}r-n8+zs2TIlXz~-G2Ih}?e`H7Pu@H3hU=afKuqJA=%tuY}7St}@j(zbMs-n^X
zCcQdpq%BZW9gUia@u*kyc2xNbSRe18-iQS=nK$kDOq_p>;5rGa=y%ll{etR9KxVUc
z1yT7`ZM+3)NqVEojkV6VZb6klhT0o9P$PbXnwb}<C3usW^B+PWAdA^t)llbmAZn_Y
zU_(5Ol`$~T+f@NOVF6r$rSJ-tz?4DW`d4kP2-K(K4pjXwQ4MAYHuY9Qow}Y50qyE(
zr~-#k=lunSqF+|?Sx^Dv5$}as!&uCUgRBcsQ+)t+jL)EE<~iyVxw4s#l)_>}J6oLv
z1PYUI8FiczW;gHbFl%2_1>3MJzC?{IB!~I1>WJDar%`+5ENZjfL+!1nsNL_C({v~!
zs)GfPf%5M^2&e;nu^q0$ZkQ;Sx99)RP>l6GY7GbFHXRs&+H`v`2VOyaYJNsdZQeYl
zBXv>FHA8i%9cpF<U{am`NuB_o)2Lm$3X|ax)aJa1+C=wJZ@}lMCHRawrrvqYG0l$J
zbj2|UYod;6Pt<#22<kY`Ms;AV@^$|A6VR?dk9t%6iF(2KgqRToqdpt*qNXwoHKIDG
z4mLqeeI)8s^hXU~GOFYAQ8Tg<H3O$nFS3W|=)pg2hF7TRVFpyip{NQ=qek8U)qxJE
z=LVxjJPFmoCD!$*hIgVyeh@XYH*NYy^t>_i+0Xxc`AkD$)>^2U=!lxKfv6doXkCq(
zfg`An{$jm}YWNvy6TY+lWAhW_HyurjTAHBzj(MOE396_xs)8D*1{<NKtT*b#F%Grn
zlTqb2qo#U4>bWzh5nn~k+-ua#Br0IyeyCS{Uev&9I0Q6>tx*m1L9I=HR0l?)&h;YH
zh}NST+<|J~FluRTpqAtrYIA-;H5{*?c`iAs9)HvTvZLB_s@ejzP!BdnRon{oKrE_(
zVW=seit5N5o4y3q;Vm}457ogl)|;rAd5YRQZ&4jfTFBF3{`+qNsxS{KqcG}$vZ#(!
zL#<UC)Sl>tIzFROOEb^Lx1wGw$5Au-7&RlGQ1$v2HcOKZ)xm<8K<B@l&8UJJaa&Xc
zJy8XR+4RY%j{RWMSD=<?o6SFG({EXy+5C^Fj;1MMW-1ibp%R!{=Rcf)M%V;3#a&Pj
z^s?z=Q5~6snvs>L3ie?To<PmuQ=9$<)zN>f35%NVim6cL!mtyTLq}`AjDR-7TC9Vc
zQ6Dy6t?|OlZcm8X3+b>l=0tV418NU+$41x>Rqtsmh8IyYo4A<ybWDfp$cSQ`|C|IS
zkdPa<qDFobRq<O}@UxA_FK#-T)S4PK()1V~vtka+h3Zgk)J!!;9k)(4y+3*pUmcJ6
zpU%hEA4E!U-=>zWOvPaCUHVw#YRgdekzR`Xn5K#ADtAM|ttj&=cU$f?#A|SmW9lMp
zx&GLddlGkio`1@7B`N!uctvi{M=p4-u{`(_q4E@TBOiGGb6q2x-N!wxvtI?$G*`c9
zg}DAEXEb5{QsHtF)_m6G?oKVkvAhOqFTTaNUb*jg_Hzo6JCq!L*X6mUQ-d$Ldu*-g
zt!L<DAzP*`&lLGjZR;r0kjddM0j|s3y(pWUGTO_!99ze74V3F5aeiOw+U4VN$975O
z6y@1(*B$b*+W1$>mm!><vM;DFg1p~I>p;9JR-~V`?So5g-E4Kw)~iJMwd76WnE>uK
zgojWj3(xMh&vc{AW*>Iw3=$K#6L$>^ZcKA-V&ASpJkprR8H$!8{K6g4HPHD$BS*M(
z&9kPV5l<XB=$?06Kg>(wpSE)ctOH5^g&ONpb_Evx&jb`Cyx-Q@jr_Je{|?=hyM$@=
z3#b@d;0_fwpul{(tp5u>H!0B0Hlof<CT$?Mt|PdPa^-2Dr%7^+B&{K7b$I5IEq91`
zO6o5~+H$=3pZb=P_lw?@4G8FZZ8PWNZVE3ay)NM;ghz5mnPRRHq(#!XocM+ND`8#B
zX|xgXKa|HEM0_Mh@$4(Yan$z_caYW+^Qm2Zh0yhuyE2J;xl2&sE}1*sUfunY)gfgW
zcRf;jyMw#?Ipb*L0x7zhVHL_gAopj|1N0o>;@o=)cR*cyX1fYd_8n!)F>7au-{IEP
ziug;?e=t!OU)5ZtN$Zcl+qA00b=A<4{YJ)JD(g-{SHf9sXIfK91`7Ue<Na;pDM(vM
zS~O*K)x>#})qA-wo!myAt>3lDK9ietAJP+&k;`UgChd}bMrlt*2P){tt<OhYB}i*e
z#o$_l1u49T{2A`{J^aIp5GqB=B0NSBy{ePhroJN{%^gHDjYwO@(~XG_c5mq6?<^tI
zkkm`0>N-vQqYbYjeGh3Hsa4l(o9;_X87Rm10?#iL_mfwj_*%;C#>_l-nY4bC>rNWK
z{`Xw1$eTj^2lDNe&ef3wZz_63<^r3V#NE7SU_^XdY!SIlDK(#Xm@RRNxEJXM{%=*T
zkK~2X)H?Ex+a^^!m-}GPfE?RNZNU?_xSNps1OED-r=v-$?e>cDD_M<+szj`gt>Y|D
zE~TCy=;7~#&#6*uL;TwnNNv;HwW9*O(z&}u1vs0DcOWx`ts@UD)wb)LhO{>1xBk!b
zswXe`=SlmUvf1${W%xaVs}*hO+l{V8JbRclUB@Yxn!6hLgYesxTi=oD+s2f5oC2ru
zGL_Ec;dsQa^1w^d`r>8cO-Nsl`l%)*&%VdgH0DD%17#9mebRKbBs~#zEkyk&J&R{|
z;6L~;cJ%JSpDxJE!M&V>;}l*`=C|uK4e3gWlPGf(`AdoC+Dl_KD4UA3GlX@$=Xrje
z?^;XxUp6g*w3dWVxL-#5JJSgHa~Gy`JMJEYb>-!$W^}y{@iDdsMR+nJ@$KBtxK~kb
z59RjR{I!Iukp9%hlT!ZM<+eSqL!G)}Ox$tZCg96MiMS7QPbBk49(>{{#`~V|P8%Ld
zeo@MwCB6w8kvGNWeJ1Y;@!wEaPQsljQ;2v9;;)I1#L=W}Pyw!o@%RSjN5(%C>dsx0
zOkHo>8F~jgV{I%gmat*vCgF+xjFrDjxZ?3t2xB^l->$vi0+@-s`;?o>{g!#T#<N#&
z*?;QurHuc7;-Q4+#OM3(Gb+eIW<4IzmrGqG+-G_RIEN@wo751hi{kbpJQj65Bkwug
z`H_1r>AD8m>WffYX3CYq{M@>dQ|6fM{(D<a>1!zGPq%fw;cjQ^C+N8DD3$9V4-Dbq
z6!@1d@RaZd(tgE$l<7hx#mIYy*=(bFHn|P|KzdQ)Tj@x3%5}1x8D%@~MgBnY|F-oP
z^=ir|5rw*vaRgJ^2UKZE3Js#+89aPVamxHbydsU2A?+ded+r<LH6pJWcPj3I)N#>W
zHYS_1kJ7sGU^YrNu<`ALb=^fiY+O%xLf_mE*z|>zTSi(L?t7&Fgg)f8AblU<{-o*R
zw@R+R>@&S>-TUdmXzq79iH%7tY3HUii4};q<W6P_52vy(3^N{;lqK!CJ5{W|GltY4
zs_#KgZSGCv&L^Ienm&^E?HWUk->$i&$JxBgSb?$*HJ&0omU3lnH&wnrbq*tMKQ}*9
zxYCjDPudvbOSC0)WhK&_hm+Vwylv$zY&<{t!M4&`G?tqRbk(5TAj%vj+=ld(lnKYL
z#M4oxuzfz1_!Qz5RIjZ&2X*F2K>J|?bT#K*N~V4eYfj;fgjeALn_rM{UmFgjOoR;+
zboHa`O`L#5x${u=F!vcc^oDZT{!=zD>AEg(Pj%?wW&(5ZUkZOB97+K{D(T5Rk8l_s
z!mCtr%Rc-)<=b*sXS5ekR}|$|5?)7{I9pEX`Z;escMI}$HN`pHw`s5JZYs@8CAzX1
zJpUW60#ufWJpStLI!*lB)s|;!ai@2;k1LQiHBIFv_a4>tqGUmeb#$+Y3(S0<l#G;{
zY@cmR?l4L(;x6gFALr+^C8s6jXV~ukMCm59n3gAX^&`DJzM@<&!as43=Ptv&pSuQS
z&!MiQ)UInYWvlZ1S{z0EC(=VH$8We?1E^nDN$#5Zd-7)j+qt)pxqynkVr>e2AWc_d
z(vtFUSHc5q1D*{2=P%0DAV0r*cfSzlJ7On@ow22|5gtx$f6|SGgmtap?nPWzaa*o1
z&s8P=d+z##b%kR=$_0~_k2{pIvq-;8edh@;BySq=bClan{H*@iA4b8lbX8Y3?k%<<
z#rbCop6f6VcvFUdg5tSK^S@iUf9Ba%l+Q-`7Q!*^E&T($PPotX4{+|1{+Wi8Q7(dK
z>)AHS65mDnU6fBqnaPBIrd%6aw-0H<X>S|xsif;_PWT1sx>n*HTXq29LDX}e^18ZF
zo_|c@IvCIM6~iQ6B;g7L!^ylzVg3b@>k4-!?!~qNmF(=EJ0P%il$z!qWOL>c4zf+R
zrqnAnMJ*-BZ@~SDyb;tig<IDeTXwOHD{Tg8btya3opxZLlbDHEK`m2AImWGvU!{3|
zlf0aglc-&nek$V|gX^e`7spQ2dYv--BPG{&_F3=$w6w&weun4Xk)M!uj*?&ArjzWr
zHu1k<b~Om{|EiD~<SwY8aqXd@`NTKlIN}Ly1Fxy%PfrQXIAK5PI7GRV+{Jlz4jv)@
zAfDsSz^$tQc|qJ8h^LAl!Y_uXSl1kbD>;>oq>*W)KjU6xd%MfsdXT?UiDo+5F8pDi
zJYwT%DOrX56qwxBCc02A0nI)BPg<}Yav8c(lJXC19l43?TFkxIcKIRC$0$+r^@zd~
zZK0I*p-6J>k=~k0&!MibHZOy9wXLkI%@3r~o21nuzdd)Xtur6;?`~Wh$?Im*BB*a8
zX_fVrFO55HaG+N^_sqfBl6_D7kgafv`{>{h=N6At;?eAOeA{fZ-FRHrVq5yFojaw?
zB5fAWy(O(C@l1sEHy{1ZFCEV>!%aM2m~yvlJxeH4o%=bru5qM~;}@N-92APBqO`Vw
zCsfdd0$;Ecd7DVDkMl^YV>|Z}AJ~diSrhy0L@J$2I05CS+We-JO-6bV(sc3R>v}?&
zD%^eehfb~>o@BmZF#~TY^d}Eg<$*0!@Rs|Ntvo&X<4G?^ehbnnk@u1K3!cA3cpzb2
zJILQld>`?L#1l}q6Y-k1o~z_H;@0J>Z!mSKxCaSwBxIul2Pl|=cy;3KsH712t#K%2
z{~)~_WqR8R))Q_{zOL0gx0SfAS%k-Mry?(eXLFH0ig++}=-NiS5bD2@_gq`B7Ks&!
z-FJHp^)I`}Hlgeoa+2V8*o1o~cVA_2<>L0^>Di<`;+e$UvF^r0bJf2=V+BafM8mq$
z5KnDuZ9@1rn|>Y3axb%enTOSR?%S1|vSB=T-+g9ifHR8Nc1nbQ%f|cMl}Z1bdko?8
zJpBh{CUB1@P1jq(5w>;3@6qCKxQ6tHw#-eOPFh#;l9T>D@m@TW8dDRmru|cs%JVU=
z!)#>%WOgO31rM&}!F|}C_+LEGhxiWif5pFvpW|*$ygSC{`83>VscRh$<~dzG$nQkF
zFSo9t-1SJS?1}Nksuuw-8ffNz?fB<eOjcfEr##tgY~o(rzw`JiY-g*<?k+UU&$&WM
zGCH%BTi02u!d<AP7@g78n{Yy#H<lW<+i)Awbxp<gwrrqH8%f=f4D8!=pZN1{5j^R`
zuO2>7(R4DRxnEOpRvtKobBOPB-yas}{6Z)Tx2_Z94CRSiG{HYpaOJ0TtjTf}AYPGp
z4)Q<YFx!o7<kupt5_+Moq?BD@^A-PO>sR;$&t9cmWrov?Z&ylleV{-R61=#xkm<G$
z=O=F>@ws@N2g}=vrjl0E&WD~4q5LQJ$>D*8-V@@7K+iSG))Gs1YH_C{btzBk>SOZ~
zyEBXkaGu&!<t(LSG1>_yttoe7TT*#R$U8~eQPS2CKR}-{(vR7Ma}mx$`gp?aNE<-8
zWO$rsR@;8h#(%j}kXMcJMUhK~ogW6sxbEIZcS_shO3g?yU1=z~fa<dnZf5iQl6H*z
zdbor8Aa_OXjod3pFGl&ggsWm&Pc5t|;n}2prj8z@b*Fo2@D27Py|ezS&`tz)Q?N81
zrlNEdChGDf{yTv`F&}=$$2|Ck@Xy>nl&e6RuHtrmQjvbcy=G*fbDi7}N}nY~*9ROz
z?YT%Viy5#XPp3B7u8fq8Pc89D-%r`W_PHCjg=pdlc+N$c`J~k)Jc6`pJokiW0!Xh!
z`~vab`aSeND$KQ>!q>?7kwUtzSxt=Z&*Yz^Y;JV`8&FX`WfK00v{TrJXAam0Mv(UH
z`iJz6Jb#0<aj5GZX4S8h+S`T>Qo#fp-s!$Q%HO$5tN^LH78+cuh(D&AUx;_0iUm~p
zl6WR;Ntbq!{=k-PMcE7F1#?#=?MLEY2+!oXXO#bTEhfI|KXIkENWecDZAM}MncuDl
z#BWl`L@Mb+xG4<=(#iC;+ulCzm7}vd3&{$lND`8daQ|bg2;|X<q(2~@lQLO&T-Oiw
zafLGz{+V+3xbqUugSz7JOnt&X^4u(p$Fmb`y$z^SS4QF+;<KiAiEO1%0SYZ5{I4xA
zf&wqO!)>MGsmz};ZT{1N=cK(Lp3XiKWXr~p)|#|Po-ae4zfkTHd8zFnlG-{#eB8&z
z<a9<;%#Wmo6s^W%ld%D5<$3I1+(2G5X~PMxBzy}0dqq(7BhrgezBd`=$nQ)&)vzad
z7s#8;-Gy7%2GZ`3*NX5*&wsu{U^a<`NnAlCx=!OH?jEEkrn0BpnYeYWCQVmL%742a
z*+5dtoFM#|yn8el$e4!^PGlP&PyPs7HdyA~_H69@*6G?uNB8R6zHhf)(Xm0DyY-9=
zYTvnUWQ@D_j5O{ck4pyDjEw9Z)VFJ7P^ZY)jxpVOtKk1Cm+61XL`C*(->H4y_W!Fu
z=Km?sw`*Kfhv@d*dj78x+kSjpuU^uifxY7T#&w9y*Qsa6o!-T~){V(sv3+#k$R3f=
z-J-ihMt6ve?b|-OQ&5M<uD#+qMMeijx2LzUJ>$CdoxOIiSCPDRqhdRDjp^3CAH`$;
yKcyq1XBRr^m8SIntER|kSM6@m-P-q!i;MaHRI&5MUauWZeE-|yQGVV5S^p0T+s3T`

diff --git a/locale/nl_NL/LC_MESSAGES/base.po b/locale/nl_NL/LC_MESSAGES/base.po
index d7fdb67..48f36bc 100644
--- a/locale/nl_NL/LC_MESSAGES/base.po
+++ b/locale/nl_NL/LC_MESSAGES/base.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-16 16:51+0000\n"
+"POT-Creation-Date: 2021-02-28 10:41+0000\n"
 "PO-Revision-Date: 2021-01-08 20:41+0100\n"
 "Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
 "Language-Team: \n"
@@ -37,7 +37,7 @@ msgstr "Groot"
 msgid "Enormous"
 msgstr "Enorm"
 
-#: .././mainapp.py:945
+#: .././mainapp.py:944
 msgid ""
 "Failed to convert a thumbnail from .webp to .jpg. No more conversions will "
 "be attempted until you install FFmpeg on your system, or (if FFmpeg is "
@@ -50,177 +50,177 @@ msgstr ""
 "Herstart Tartube om het converteren opnieuw te proberen. Schakel "
 "miniatuurconversie uit om dit bericht niet meer te tonen."
 
-#: .././mainapp.py:2665
+#: .././mainapp.py:2664
 msgid ""
 "Tartube can't create the folder in which its configuration file is saved"
 msgstr "Tartube kan de configuratiemap niet aanmaken"
 
 #. Load/save has been disabled. Show the error message in a dialogue
 #. window, then shut down
-#: .././mainapp.py:2712
+#: .././mainapp.py:2711
 msgid "Tartube failed to start because:"
 msgstr "Tartube kan niet worden gestart. Reden:"
 
-#: .././mainapp.py:2720
+#: .././mainapp.py:2719
 msgid "If you don't know how to resolve this error, please contact the authors"
 msgstr ""
 "Als je niet weet hoe je dit moet oplossen, neem dan contact op met de makers"
 
-#: .././mainapp.py:2948
+#: .././mainapp.py:2947
 msgid "Because of an error, file load/save has been disabled"
 msgstr "Laden/Opslaan is uitgeschakeld omdat er een fout is opgetreden"
 
-#: .././mainapp.py:2957
+#: .././mainapp.py:2956
 msgid "Because of the error, file load/save has been disabled"
 msgstr "Laden/Opslaan is uitgeschakeld omdat er een fout is opgetreden"
 
-#: .././mainapp.py:3041
+#: .././mainapp.py:3040
 msgid "There is a download operation in progress."
 msgstr "Er worden items gedownload."
 
-#: .././mainapp.py:3043
+#: .././mainapp.py:3042
 msgid "There is an update operation in progress."
 msgstr "Er worden items bijgewerkt."
 
-#: .././mainapp.py:3045
+#: .././mainapp.py:3044
 msgid "There is a refresh operation in progress."
 msgstr "Er worden items ververst."
 
-#: .././mainapp.py:3047
+#: .././mainapp.py:3046
 msgid "There is an info operation in progress."
 msgstr "Er wordt een informatiehandeling uitgevoerd."
 
-#: .././mainapp.py:3049
+#: .././mainapp.py:3048
 msgid "There is a tidy operation in progress."
 msgstr "Er wordt een opruimactie uitgevoerd."
 
-#: .././mainapp.py:3051
+#: .././mainapp.py:3050
 msgid "There is a process operation in progress."
 msgstr "Er wordt een voortgangsactie uitgevoerd."
 
-#: .././mainapp.py:3056
+#: .././mainapp.py:3055
 msgid "Are you sure you want to quit Tartube?"
 msgstr "Weet je zeker dat je Tartube wilt afsluiten?"
 
-#: .././mainapp.py:3261
+#: .././mainapp.py:3260
 msgid "Failed to load the Tartube config file (failed sanity check)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (mislukte controle)"
 
-#: .././mainapp.py:3284
+#: .././mainapp.py:3283
 msgid "Failed to load the Tartube config file (file is locked)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (bestand is "
 "vergrendeld)"
 
-#: .././mainapp.py:3314
+#: .././mainapp.py:3313
 msgid "Failed to load the Tartube config file (JSON load failure)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (json-laadfout)"
 
-#: .././mainapp.py:3332
+#: .././mainapp.py:3331
 msgid "Failed to load the Tartube config file (file is invalid)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (bestand is "
 "beschadigd)"
 
-#: .././mainapp.py:3350
+#: .././mainapp.py:3349
 msgid ""
 "Failed to load the Tartube config file (file cannot be read by this version)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (bestand is "
 "verouderd)"
 
-#: .././mainapp.py:3365
+#: .././mainapp.py:3364
 msgid "Failed to load the Tartube config file (missing file type)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden geladen (ontbrekende "
 "bestandsextensie)"
 
-#: .././mainapp.py:4222
+#: .././mainapp.py:4221
 msgid "Failed to save the Tartube config file (failed sanity check)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden opgeslagen (mislukte "
 "controle)"
 
-#: .././mainapp.py:4542
+#: .././mainapp.py:4541
 msgid "Failed to save the Tartube config file (file is locked)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden opgeslagen (bestand is "
 "vergrendeld)"
 
-#: .././mainapp.py:4544 .././mainapp.py:4584 .././mainapp.py:5920
-#: .././mainapp.py:5976 .././mainapp.py:5982
+#: .././mainapp.py:4543 .././mainapp.py:4583 .././mainapp.py:5941
+#: .././mainapp.py:5997 .././mainapp.py:6003
 msgid "File load/save has been disabled"
 msgstr "Laden/Opslaan is uitgeschakeld"
 
-#: .././mainapp.py:4563
+#: .././mainapp.py:4562
 msgid "Failed to save the Tartube config file (file already in use)"
 msgstr ""
 "Het Tartube-configuratiebestand kan niet worden opgeslagen (bestand is in "
 "gebruik)"
 
-#: .././mainapp.py:4583
+#: .././mainapp.py:4582
 msgid "Failed to save the Tartube config file"
 msgstr "Het Tartube-configuratiebestand kan niet worden opgeslagen"
 
-#: .././mainapp.py:4695 .././mainapp.py:4711 .././mainapp.py:4741
+#: .././mainapp.py:4694 .././mainapp.py:4710 .././mainapp.py:4740
 msgid "Failed to load the Tartube database file"
 msgstr "Het Tartube-databankbestand kan niet worden geladen"
 
-#: .././mainapp.py:4756
+#: .././mainapp.py:4755
 msgid "The Tartube database file is invalid"
 msgstr "Het Tartube-databankbestand is beschadigd"
 
-#: .././mainapp.py:4772
+#: .././mainapp.py:4771
 msgid "Database file can't be read by this version of Tartube"
 msgstr "Het Tartube-databankbestand is verouderd"
 
-#: .././mainapp.py:5117
+#: .././mainapp.py:5116
 msgid "Tartube is applying an essential database update"
 msgstr "Tartube is bezig met het uitvoeren van een essentiële databankupdate"
 
-#: .././mainapp.py:5119
+#: .././mainapp.py:5118
 msgid "This might take a few minutes, so please be patient"
 msgstr "Dit kan een paar minuten duren"
 
-#: .././mainapp.py:5914 .././mainapp.py:5972 .././mainapp.py:5981
+#: .././mainapp.py:5935 .././mainapp.py:5993 .././mainapp.py:6002
 msgid "Failed to save the Tartube database file"
 msgstr "Het Tartube-databankbestand kan niet worden opgeslagen"
 
-#: .././mainapp.py:5917
+#: .././mainapp.py:5938
 msgid "(Could not make a backup copy of the existing file)"
 msgstr "(het bestaande bestand kan niet worden geback-upt)"
 
-#: .././mainapp.py:5953
+#: .././mainapp.py:5974
 msgid "Failed to save the Tartube database file (file already in use)"
 msgstr ""
 "Het Tartube-databankbestand kan niet worden opgeslagen (bestand is in "
 "gebruik)"
 
-#: .././mainapp.py:5974
+#: .././mainapp.py:5995
 msgid "A backup of the previous file can be found at:"
 msgstr "Er is een back-up gemaakt van het vorige bestand in:"
 
-#: .././mainapp.py:6155 .././mainapp.py:6165
+#: .././mainapp.py:6176 .././mainapp.py:6186
 msgid "Database file created"
 msgstr "Databankbestand aangemaakt"
 
-#: .././mainapp.py:6559
+#: .././mainapp.py:6580
 msgid "Tartube's database can't be checked while an operation is in progress"
 msgstr ""
 "Tartube's databank kan niet worden gecontroleerd tijdens uitvoeren van een "
 "handeling"
 
-#: .././mainapp.py:6795
+#: .././mainapp.py:6816
 msgid "Database check complete, no inconsistencies found"
 msgstr "Databankcontrole voltooid - geen fouten aangetroffen"
 
-#: .././mainapp.py:6827
+#: .././mainapp.py:6848
 msgid "Database check complete, problems found:"
 msgstr "Databankcontrole voltooid - fouten aangetroffen:"
 
-#: .././mainapp.py:6830
+#: .././mainapp.py:6851
 msgid ""
 "Do you want to repair these problems? (The database will be fixed, but no "
 "files will be deleted)"
@@ -228,15 +228,15 @@ msgstr ""
 "Wil je deze fouten herstellen? (de databank wordt gerepareerd zonder "
 "bestanden te verwijderen)"
 
-#: .././mainapp.py:7003
+#: .././mainapp.py:7024
 msgid "Database inconsistencies repaired"
 msgstr "Databankfouten hersteld"
 
-#: .././mainapp.py:7895 .././config.py:16026
+#: .././mainapp.py:7918 .././config.py:16057
 msgid "Please select Tartube's data folder"
 msgstr "Kies Tartube's gegevensmap"
 
-#: .././mainapp.py:8258
+#: .././mainapp.py:8281
 msgid ""
 "A download operation cannot start if one or more configuration windows are "
 "still open"
@@ -244,46 +244,46 @@ msgstr ""
 "Er kan geen download worden gestart zolang er één of meerdere "
 "instellingenvensters geopend zijn"
 
-#: .././mainapp.py:8282 .././mainapp.py:8307
+#: .././mainapp.py:8305 .././mainapp.py:8330
 #, python-brace-format
 msgid "You only have {0} / {1} Mb remaining on your device"
 msgstr "Je hebt slechts {0}/{1} MB resterende schijfruimte"
 
-#: .././mainapp.py:8310 .././mainapp.py:13970 .././mainapp.py:14086
-#: .././mainapp.py:14268 .././mainwin.py:17484
+#: .././mainapp.py:8333 .././mainapp.py:14006 .././mainapp.py:14122
+#: .././mainapp.py:14304 .././mainwin.py:17484
 msgid "Are you sure you want to continue?"
 msgstr "Weet je zeker dat je wilt doorgaan?"
 
-#: .././mainapp.py:8397
+#: .././mainapp.py:8420
 msgid "There is nothing to check!"
 msgstr "Er valt niks te controleren!"
 
-#: .././mainapp.py:8399
+#: .././mainapp.py:8422
 msgid "There is nothing to download!"
 msgstr "Er valt niks te downloaden!"
 
-#: .././mainapp.py:8642
+#: .././mainapp.py:8665
 msgid "Download operation complete"
 msgstr "Downloaden voltooid"
 
-#: .././mainapp.py:8644
+#: .././mainapp.py:8667
 msgid "Download operation halted"
 msgstr "Downloaden onderbroken"
 
-#: .././mainapp.py:8648
+#: .././mainapp.py:8671
 msgid "Videos downloaded:"
 msgstr "Gedownloade video's:"
 
-#: .././mainapp.py:8649
+#: .././mainapp.py:8672
 msgid "Videos checked:"
 msgstr "Gecontroleerde video's:"
 
-#: .././mainapp.py:8652 .././mainapp.py:9253 .././mainapp.py:9747
-#: .././mainapp.py:10147
+#: .././mainapp.py:8675 .././mainapp.py:9276 .././mainapp.py:9770
+#: .././mainapp.py:10170
 msgid "Time taken:"
 msgstr "Verstreken tijd:"
 
-#: .././mainapp.py:8757
+#: .././mainapp.py:8780
 msgid ""
 "An update operation cannot start if one or more configuration windows are "
 "still open"
@@ -291,35 +291,35 @@ msgstr ""
 "Er kan geen update plaatsvinden zolang er één of meerdere "
 "instellingenvensters geopend zijn"
 
-#: .././mainapp.py:8943
+#: .././mainapp.py:8966
 msgid "Installation failed"
 msgstr "Installatie mislukt"
 
-#: .././mainapp.py:8945
+#: .././mainapp.py:8968
 msgid "Installation complete"
 msgstr "Installatie voltooid"
 
-#: .././mainapp.py:8949
+#: .././mainapp.py:8972
 msgid "Update operation failed"
 msgstr "Bijwerken mislukt"
 
-#: .././mainapp.py:8951
+#: .././mainapp.py:8974
 msgid "Update operation halted"
 msgstr "Bijwerken onderbroken"
 
-#: .././mainapp.py:8953
+#: .././mainapp.py:8976
 msgid "Update operation complete"
 msgstr "Bijwerken voltooid"
 
-#: .././mainapp.py:8955
+#: .././mainapp.py:8978
 msgid "version:"
 msgstr "versie:"
 
-#: .././mainapp.py:8959
+#: .././mainapp.py:8982
 msgid "(unknown)"
 msgstr "(onbekend)"
 
-#: .././mainapp.py:9046
+#: .././mainapp.py:9069
 msgid ""
 "A refresh operation cannot start if one or more configuration windows are "
 "still open"
@@ -327,7 +327,7 @@ msgstr ""
 "Er kan geen verversactie plaatsvinden zolang er één of meerdere "
 "instellingenvensters geopend zijn"
 
-#: .././mainapp.py:9059
+#: .././mainapp.py:9082
 msgid ""
 "During a refresh operation, Tartube analyses its data folder, looking for "
 "videos that haven't yet been added to its database"
@@ -335,7 +335,7 @@ msgstr ""
 "Tijdens het verversen wordt Tartube's gegevensmap doorzocht op video's die "
 "nog niet zijn toegevoegd aan de databank"
 
-#: .././mainapp.py:9063
+#: .././mainapp.py:9086
 msgid ""
 "You only need to perform a refresh operation if you have manually copied "
 "videos into Tartube's data folder"
@@ -343,7 +343,7 @@ msgstr ""
 "Je hoeft alleen te verversen als je video's handmatig hebt gekopieerd naar "
 "Tartube's gegevensmap"
 
-#: .././mainapp.py:9070
+#: .././mainapp.py:9093
 msgid ""
 "Before starting a refresh operation, you should click the 'Check all' button "
 "in the main window"
@@ -351,7 +351,7 @@ msgstr ""
 "Voordat je het verversen start, moet je op 'Alles controleren' in het "
 "hoofdvenster klikken"
 
-#: .././mainapp.py:9077
+#: .././mainapp.py:9100
 msgid ""
 "Before starting a refresh operation, you should right-click the channel and "
 "select 'Check channel'"
@@ -359,7 +359,7 @@ msgstr ""
 "Voordat je het verversen start, moet je op 'Kanaal controleren' in het "
 "rechtermuisknopmenu van een kanaal klikken"
 
-#: .././mainapp.py:9084
+#: .././mainapp.py:9107
 msgid ""
 "Before starting a refresh operation, you should right-click the playlist and "
 "select 'Check playlist'"
@@ -367,7 +367,7 @@ msgstr ""
 "Voordat je het verversen start, moet je op 'Afspeellijst controleren' in het "
 "rechtermuisknopmenu van een afspeellijst klikken"
 
-#: .././mainapp.py:9091
+#: .././mainapp.py:9114
 msgid ""
 "Before starting a refresh operation, you should right-click the folder and "
 "select 'Check folder'"
@@ -375,19 +375,19 @@ msgstr ""
 "Voordat je het verversen start, moet je op 'Map controleren' in het "
 "rechtermuisknopmenu van een map klikken"
 
-#: .././mainapp.py:9096
+#: .././mainapp.py:9119
 msgid "Are you sure you want to proceed with the refresh operation?"
 msgstr "Weet je zeker dat je wilt doorgaan?"
 
-#: .././mainapp.py:9248
+#: .././mainapp.py:9271
 msgid "Refresh operation complete"
 msgstr "Verversen voltooid"
 
-#: .././mainapp.py:9250
+#: .././mainapp.py:9273
 msgid "Refresh operation halted"
 msgstr "Verversen onderbroken"
 
-#: .././mainapp.py:9355
+#: .././mainapp.py:9378
 msgid ""
 "An info operation cannot start if one or more configuration windows are "
 "still open"
@@ -395,47 +395,47 @@ msgstr ""
 "Er kan geen informatiehandeling plaatsvinden zolang er één of meerdere "
 "instellingenvensters geopend zijn"
 
-#: .././mainapp.py:9471
+#: .././mainapp.py:9494
 msgid "Operation failed"
 msgstr "Handeling mislukt"
 
-#: .././mainapp.py:9473 .././downloads.py:400
+#: .././mainapp.py:9496 .././downloads.py:400
 msgid "Operation complete"
 msgstr "Handeling voltooid"
 
-#: .././mainapp.py:9475
+#: .././mainapp.py:9498
 msgid "Click the Output Tab to see the results"
 msgstr "Klik op het tabblad 'Uitvoer' om de resultaten te bekijken"
 
-#: .././mainapp.py:9488
+#: .././mainapp.py:9511
 msgid "A new release is available!"
 msgstr "Er is een nieuwe versie beschikbaar!"
 
-#: .././mainapp.py:9490
+#: .././mainapp.py:9513
 msgid "Your installation is up to date!"
 msgstr "Je installatie is actueel!"
 
-#: .././mainapp.py:9492
+#: .././mainapp.py:9515
 msgid "Installed version:"
 msgstr "Geïnstalleerde versie:"
 
-#: .././mainapp.py:9497
+#: .././mainapp.py:9520
 msgid "Stable release:"
 msgstr "Stabiele uitgave:"
 
-#: .././mainapp.py:9502
+#: .././mainapp.py:9525
 msgid "Stable release: not found"
 msgstr "Stabiele uitgave: niet gevonden"
 
-#: .././mainapp.py:9505
+#: .././mainapp.py:9528
 msgid "Development release:"
 msgstr "Ontwikkelingsuitgave:"
 
-#: .././mainapp.py:9507
+#: .././mainapp.py:9530
 msgid "Development release: not found"
 msgstr "Ontwikkelingsuitgave: niet gevonden"
 
-#: .././mainapp.py:9614
+#: .././mainapp.py:9637
 msgid ""
 "A tidy operation cannot start if one or more configuration windows are still "
 "open"
@@ -443,39 +443,39 @@ msgstr ""
 "Er kan geen opruimactie plaatsvinden zolang er één of meerdere "
 "instellingenvensters geopend zijn"
 
-#: .././mainapp.py:9742
+#: .././mainapp.py:9765
 msgid "Tidy operation complete"
 msgstr "Opruimen voltooid"
 
-#: .././mainapp.py:9744
+#: .././mainapp.py:9767
 msgid "Tidy operation halted"
 msgstr "Opruimen onderbroken"
 
-#: .././mainapp.py:9911 .././mainwin.py:18169
+#: .././mainapp.py:9934 .././mainwin.py:18169
 msgid "Livestream has started"
 msgstr "De livestream is begonnen"
 
-#: .././mainapp.py:10136
+#: .././mainapp.py:10159
 msgid "Process operation complete"
 msgstr "Voortgangsactie voltooid"
 
-#: .././mainapp.py:10138
+#: .././mainapp.py:10161
 msgid "Process operation halted"
 msgstr "Voortgangsactie onderbroken"
 
-#: .././mainapp.py:10142
+#: .././mainapp.py:10165
 msgid "Files processed:"
 msgstr "Verwerkte bestanden:"
 
-#: .././mainapp.py:10143
+#: .././mainapp.py:10166
 msgid "Errors:"
 msgstr "Fouten:"
 
-#: .././mainapp.py:11403 .././mainapp.py:11578
+#: .././mainapp.py:11435 .././mainapp.py:11610
 msgid "Cannot move anything to:"
 msgstr "Kan niks verplaatsen naar:"
 
-#: .././mainapp.py:11405 .././mainapp.py:11580
+#: .././mainapp.py:11437 .././mainapp.py:11612
 msgid ""
 "because a file or folder with the same name already exists (although "
 "Tartube's database doesn't know anything about it)"
@@ -483,7 +483,7 @@ msgstr ""
 "omdat er al een bestand of map met dezelfde naam is (hoewel Tartube's "
 "databank daar niks van afweet)"
 
-#: .././mainapp.py:11409
+#: .././mainapp.py:11441
 msgid ""
 "You probably created that file/folder accidentally, in which case you should "
 "delete it manually before trying again"
@@ -491,19 +491,19 @@ msgstr ""
 "Waarschijnlijk heb je het bestand/de map per ongeluk aangemaakt. Als dat zo "
 "is, verwijder deze dan voordat je het opnieuw probeert."
 
-#: .././mainapp.py:11423 .././mainapp.py:11598
+#: .././mainapp.py:11455 .././mainapp.py:11630
 msgid "Are you sure you want to move this channel:"
 msgstr "Weet je zeker dat je het volgende kanaal wilt verplaatsen:"
 
-#: .././mainapp.py:11425 .././mainapp.py:11600
+#: .././mainapp.py:11457 .././mainapp.py:11632
 msgid "Are you sure you want to move this playlist:"
 msgstr "Weet je zeker dat je de volgende afspeellijst wilt verplaatsen:"
 
-#: .././mainapp.py:11427 .././mainapp.py:11602
+#: .././mainapp.py:11459 .././mainapp.py:11634
 msgid "Are you sure you want to move this folder:"
 msgstr "Weet je zeker dat je de volgende map wilt verplaatsen:"
 
-#: .././mainapp.py:11432
+#: .././mainapp.py:11464
 msgid ""
 "This procedure will move all downloaded files to the top level of Tartube's "
 "data folder"
@@ -511,24 +511,24 @@ msgstr ""
 "Deze handeling verplaatst alle gedownloade bestanden naar het bovenste "
 "niveau van Tartube's gegevensmap"
 
-#: .././mainapp.py:11532
+#: .././mainapp.py:11564
 msgid "Channels, playlists and folders can only be dragged into a folder"
 msgstr ""
 "Kanalen, afspeellijsten en mappen kunnen alleen worden versleept naar een map"
 
-#: .././mainapp.py:11545
+#: .././mainapp.py:11577
 #, python-brace-format
 msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)"
 msgstr ""
 "De vastgezette map '{0}' kan niet worden verplaatst (maar kan wél worden "
 "verborgen)"
 
-#: .././mainapp.py:11558
+#: .././mainapp.py:11590
 #, python-brace-format
 msgid "The folder '{0}' can only contain videos"
 msgstr "De map '{0}' mag alleen video's bevatten"
 
-#: .././mainapp.py:11585
+#: .././mainapp.py:11617
 msgid ""
 "You probably created that file/folder accidentally, in which case, you "
 "should delete it manually before trying again"
@@ -536,16 +536,16 @@ msgstr ""
 "Waarschijnlijk heb je het bestand/de map per ongeluk aangemaakt. Als dat zo "
 "is, verwijder deze dan voordat je het opnieuw probeert."
 
-#: .././mainapp.py:11604
+#: .././mainapp.py:11636
 msgid "into this folder:"
 msgstr "naar deze map:"
 
-#: .././mainapp.py:11608
+#: .././mainapp.py:11640
 msgid "This procedure will move all downloaded files to the new location"
 msgstr ""
 "Deze handeling verplaatst alle gedownloade bestanden naar de nieuwe locatie"
 
-#: .././mainapp.py:11614
+#: .././mainapp.py:11646
 msgid ""
 "WARNING: The destination folder is marked as temporary, so everything inside "
 "it will be DELETED when Tartube restarts!"
@@ -553,103 +553,103 @@ msgstr ""
 "WAARSCHUWING: de bestemming is aangemerkt als 'tijdelijk', dus alle inhoud "
 "wordt VERWIJDERD als je Tartube herstart!"
 
-#: .././mainapp.py:12078
+#: .././mainapp.py:12114
 msgid ""
 "Are you SURE you want to delete files? This procedure cannot be reversed!"
 msgstr ""
 "Weet je ZEKER dat je deze bestanden wilt verwijderen? Dit kan niet ongedaan "
 "worden gemaakt!"
 
-#: .././mainapp.py:13954 .././mainapp.py:14070 .././mainapp.py:14252
+#: .././mainapp.py:13990 .././mainapp.py:14106 .././mainapp.py:14288
 #, python-brace-format
 msgid "The channel contains {0} item(s), so this action may take a while"
 msgstr "Het kanaal bevat {0} item(s), dus het kan even duren"
 
-#: .././mainapp.py:13960 .././mainapp.py:14076 .././mainapp.py:14258
+#: .././mainapp.py:13996 .././mainapp.py:14112 .././mainapp.py:14294
 #, python-brace-format
 msgid "The playlist contains {0} item(s), so this action may take a while"
 msgstr "De afspeellijst bevat {0} item(s), dus het kan even duren"
 
-#: .././mainapp.py:13966 .././mainapp.py:14082 .././mainapp.py:14264
+#: .././mainapp.py:14002 .././mainapp.py:14118 .././mainapp.py:14300
 #, python-brace-format
 msgid "The folder contains {0} item(s), so this action may take a while"
 msgstr "De map bevat {0} item(s), dus het kan even duren"
 
-#: .././mainapp.py:14332 .././mainapp.py:18504 .././mainapp.py:18636
-#: .././mainapp.py:18767
+#: .././mainapp.py:14368 .././mainapp.py:18540 .././mainapp.py:18672
+#: .././mainapp.py:18803
 #, python-brace-format
 msgid "The name '{0}' is not allowed"
 msgstr "De naam '{0}' is niet toegestaan"
 
-#: .././mainapp.py:14341
+#: .././mainapp.py:14377
 #, python-brace-format
 msgid "The name '{0}' is already in use"
 msgstr "De naam '{0}' is al in gebruik"
 
-#: .././mainapp.py:14354
+#: .././mainapp.py:14390
 #, python-brace-format
 msgid "Failed to rename '{0}'"
 msgstr "De naam van '{0}' kan niet worden gewijzigd"
 
-#: .././mainapp.py:14701
+#: .././mainapp.py:14737
 msgid "Select where to save the database export"
 msgstr "Kies de map waarnaar de databank moet worden geëxporteerd"
 
-#: .././mainapp.py:14822
+#: .././mainapp.py:14858
 msgid "There is nothing to export!"
 msgstr "Er valt niks te exporteren!"
 
-#: .././mainapp.py:14862 .././mainapp.py:14928
+#: .././mainapp.py:14898 .././mainapp.py:14964
 msgid "Failed to save the database export file:"
 msgstr "Het databank-exportbestand kan niet worden opgeslagen:"
 
-#: .././mainapp.py:14936
+#: .././mainapp.py:14972
 msgid "Database export file saved to:"
 msgstr "Het databank-exportbestand is opgeslagen in:"
 
-#: .././mainapp.py:14973
+#: .././mainapp.py:15009
 msgid "Select the database export"
 msgstr "Kies de databankexport"
 
-#: .././mainapp.py:14994 .././mainapp.py:15008
+#: .././mainapp.py:15030 .././mainapp.py:15044
 msgid "Failed to load the database export file"
 msgstr "Het databank-exportbestand kan niet worden geladen"
 
-#: .././mainapp.py:15025
+#: .././mainapp.py:15061
 msgid "The database export file is invalid"
 msgstr "Het databank-exportbestand is beschadigd"
 
-#: .././mainapp.py:15036
+#: .././mainapp.py:15072
 msgid "The database export file is invalid (or empty)"
 msgstr "Het databank-exportbestand is beschadigd (of blanco)"
 
-#: .././mainapp.py:15080
+#: .././mainapp.py:15116
 msgid "Nothing was imported from the database export file"
 msgstr "Er is niks geïmporteerd uit het databank-exportbestand"
 
 #. Show a confirmation
-#: .././mainapp.py:15094
+#: .././mainapp.py:15130
 msgid "Imported"
 msgstr "Geïmporteerd"
 
-#: .././mainapp.py:15095 .././mainwin.py:1287 .././config.py:888
-#: .././config.py:9274 .././config.py:11492
+#: .././mainapp.py:15131 .././mainwin.py:1287 .././config.py:888
+#: .././config.py:9305 .././config.py:11523
 msgid "Videos"
 msgstr "Video's"
 
-#: .././mainapp.py:15096 .././config.py:9307 .././config.py:11525
+#: .././mainapp.py:15132 .././config.py:9338 .././config.py:11556
 msgid "Channels"
 msgstr "Kanalen"
 
-#: .././mainapp.py:15097 .././config.py:9318 .././config.py:11536
+#: .././mainapp.py:15133 .././config.py:9349 .././config.py:11567
 msgid "Playlists"
 msgstr "Afspeellijsten"
 
-#: .././mainapp.py:15098
+#: .././mainapp.py:15134
 msgid "Folders"
 msgstr "Mappen"
 
-#: .././mainapp.py:15482
+#: .././mainapp.py:15518
 msgid ""
 "The video file is missing from Tartube's data folder (try downloading the "
 "video again!)"
@@ -657,107 +657,107 @@ msgstr ""
 "De video is niet aanwezig in Tartube's gegevensmap. Probeer de video opnieuw "
 "te downloaden."
 
-#: .././mainapp.py:16007 .././mainapp.py:16389
+#: .././mainapp.py:16043 .././mainapp.py:16425
 msgid "Select where to save the options export"
 msgstr "Kies de map waarnaar de opties moeten worden geëxporteerd"
 
-#: .././mainapp.py:16055 .././mainapp.py:16437
+#: .././mainapp.py:16091 .././mainapp.py:16473
 msgid "Failed to save the options export file:"
 msgstr "Het opties-exportbestand kan niet worden opgeslagen:"
 
-#: .././mainapp.py:16063
+#: .././mainapp.py:16099
 msgid "Download options exported to to:"
 msgstr "De downloadopties zijn geëxporteerd naar:"
 
-#: .././mainapp.py:16094 .././mainapp.py:16476
+#: .././mainapp.py:16130 .././mainapp.py:16512
 msgid "Select the options export file"
 msgstr "Kies het opties-exportbestand"
 
-#: .././mainapp.py:16113 .././mainapp.py:16495
+#: .././mainapp.py:16149 .././mainapp.py:16531
 msgid "Failed to load the options export file"
 msgstr "Het opties-exportbestand kan niet worden geladen"
 
-#: .././mainapp.py:16130 .././mainapp.py:16512
+#: .././mainapp.py:16166 .././mainapp.py:16548
 msgid "The options export file is invalid"
 msgstr "Het opties-exportbestand is beschadigd"
 
-#: .././mainapp.py:16141 .././mainapp.py:16523
+#: .././mainapp.py:16177 .././mainapp.py:16559
 msgid "The options export file is invalid (or empty)"
 msgstr "Het opties-exportbestand is beschadigd (of blanco)"
 
-#: .././mainapp.py:16445
+#: .././mainapp.py:16481
 msgid "FFmpeg options exported to to:"
 msgstr "De FFmpeg-opties zijn geëxporteerd naar:"
 
-#: .././mainapp.py:17419
+#: .././mainapp.py:17455
 msgid "Please select a destination folder"
 msgstr "Kies een bestemming"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17491
+#: .././mainapp.py:17527
 msgid "Are you sure you want to clear this list?"
 msgstr "Weet je zeker dat je deze lijst wilt wissen?"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17538
+#: .././mainapp.py:17574
 msgid "Are you sure you want to clear downloaded videos?"
 msgstr "Weet je zeker dat je de gedownloade video's wilt verwijderen?"
 
-#: .././mainapp.py:17631 .././mainwin.py:14535
+#: .././mainapp.py:17667 .././mainwin.py:14535
 msgid "Only checked/downloaded videos can be processed by FFmpeg"
 msgstr "FFmpeg kan alleen aangekruiste/gedownloade video's verwerken"
 
-#: .././mainapp.py:17748
+#: .././mainapp.py:17784
 msgid "No video(s) have been downloaded"
 msgstr "Je hebt nog geen video's gedownload"
 
 #. Prompt for confirmation
-#: .././mainapp.py:17846
+#: .././mainapp.py:17882
 msgid "Are you sure you want to remove the selected item(s)?"
 msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
 
-#: .././mainapp.py:18495
+#: .././mainapp.py:18531
 msgid "You must give the channel a name"
 msgstr "Geef het kanaal een naam"
 
-#: .././mainapp.py:18513 .././mainapp.py:18776
+#: .././mainapp.py:18549 .././mainapp.py:18812
 msgid "You must enter a valid URL"
 msgstr "Voer een geldige url in"
 
-#: .././mainapp.py:18628
+#: .././mainapp.py:18664
 msgid "You must give the folder a name"
 msgstr "Geef de map een naam"
 
-#: .././mainapp.py:18758
+#: .././mainapp.py:18794
 msgid "You must give the playlist a name"
 msgstr "Geef de afspeellijst een naam"
 
-#: .././mainapp.py:18913
+#: .././mainapp.py:18949
 msgid "The following videos are duplicates:"
 msgstr "De volgende video's zijn dubbel:"
 
-#: .././mainapp.py:18977
+#: .././mainapp.py:19013
 msgid "There were no livestream alerts to cancel"
 msgstr "Er zijn nog geen livestream-meldingen op dit kanaal"
 
-#: .././mainapp.py:18979
+#: .././mainapp.py:19015
 msgid "Livestream alerts for 1 video were cancelled"
 msgstr "De livestream-melding van 1 video is gedempt"
 
-#: .././mainapp.py:18982
+#: .././mainapp.py:19018
 #, python-brace-format
 msgid "Livestream alerts for {0} videos were cancelled"
 msgstr "De livestream-melding van {0} video's is afgebroken"
 
-#: .././mainapp.py:19352
+#: .././mainapp.py:19388
 msgid "All Tartube data has been saved"
 msgstr "Alle Tartube-gegevens zijn opgeslagen"
 
-#: .././mainapp.py:19382
+#: .././mainapp.py:19418
 msgid "Database saved"
 msgstr "De databank is opgeslagen"
 
-#: .././mainapp.py:19637 .././mainwin.py:13487
+#: .././mainapp.py:19673 .././mainwin.py:13487
 msgid ""
 "Files cannot be recovered, after being deleted. Are you sure you want to "
 "continue?"
@@ -767,39 +767,39 @@ msgstr ""
 #. Because livestream operations run silently in the background, when
 #. the user goes to the trouble of clicking a menu item in the
 #. main window's menu, tell them why nothing is happening
-#: .././mainapp.py:19677
+#: .././mainapp.py:19713
 msgid "Cannot update existing livestreams because"
 msgstr "De livestreams kunnen niet worden bijgewerkt omdat"
 
-#: .././mainapp.py:19679
+#: .././mainapp.py:19715
 msgid "there is another operation running"
 msgstr "er een andere handeling wordt uitgevoerd"
 
-#: .././mainapp.py:19681
+#: .././mainapp.py:19717
 msgid "they are currently being updated"
 msgstr "ze al worden bijgewerkt"
 
-#: .././mainapp.py:19683
+#: .././mainapp.py:19719
 msgid "one or more configuration windows are open"
 msgstr "er één of meerdere instellingenvensters geopend zijn"
 
-#: .././mainapp.py:19685
+#: .././mainapp.py:19721
 msgid "there are no livestreams to update"
 msgstr "er geen bij te werken livestreams zijn"
 
-#: .././mainapp.py:19759
+#: .././mainapp.py:19795
 msgid "There is already a channel with that name"
 msgstr "Er is al een kanaal met deze naam"
 
-#: .././mainapp.py:19761
+#: .././mainapp.py:19797
 msgid "There is already a playlist with that name"
 msgstr "Er is al een afspeellijst met deze naam"
 
-#: .././mainapp.py:19763
+#: .././mainapp.py:19799
 msgid "There is already a folder with that name"
 msgstr "Er is al een map met deze naam"
 
-#: .././mainapp.py:19766
+#: .././mainapp.py:19802
 msgid "(so please choose a different name)"
 msgstr "(geef een andere naam op)"
 
@@ -809,7 +809,7 @@ msgstr ""
 "Tartube kan niet worden gestart omdat de pictogrammenmap niet is aangetroffen"
 
 #. File column
-#: .././mainwin.py:943 .././config.py:6357
+#: .././mainwin.py:943 .././config.py:6359
 msgid "_File"
 msgstr "_Bestand"
 
@@ -852,7 +852,7 @@ msgid "_General download options..."
 msgstr "Al_gemene downloadopties..."
 
 #. Media column
-#: .././mainwin.py:1009 .././config.py:9834
+#: .././mainwin.py:1009 .././config.py:9865
 msgid "_Media"
 msgstr "_Media"
 
@@ -910,7 +910,7 @@ msgstr "Testcode uitvoe_ren"
 
 #. Operations column
 #. Add this tab...
-#: .././mainwin.py:1115 .././config.py:12776
+#: .././mainwin.py:1115 .././config.py:12807
 msgid "_Operations"
 msgstr "_Handelingen"
 
@@ -953,7 +953,7 @@ msgid "_Stop current operation"
 msgstr "Huidige handeling af_breken"
 
 #. Livestreams column
-#: .././mainwin.py:1195 .././config.py:13480
+#: .././mainwin.py:1195 .././config.py:13511
 msgid "_Livestreams"
 msgstr "_Livestreams"
 
@@ -1036,7 +1036,7 @@ msgstr "Controleer alle video's, kanalen, afspeellijsten en mappen"
 #: .././mainwin.py:1393 .././mainwin.py:19371 .././mainwin.py:19376
 #: .././mainwin.py:19384 .././mainwin.py:19633 .././mainwin.py:19645
 #: .././mainwin.py:20380 .././mainwin.py:21727 .././mainwin.py:21753
-#: .././config.py:12481
+#: .././config.py:12512
 msgid "Download"
 msgstr "Downloaden"
 
@@ -1053,7 +1053,7 @@ msgstr "Afbreken"
 msgid "Stop the current operation"
 msgstr "Breek de huidige handeling af"
 
-#: .././mainwin.py:1443 .././config.py:11068
+#: .././mainwin.py:1443 .././config.py:11099
 msgid "Switch"
 msgstr "Andere weergave"
 
@@ -1085,8 +1085,8 @@ msgstr "Afsluiten"
 msgid "Close Tartube"
 msgstr "Tartube sluiten"
 
-#: .././mainwin.py:1532 .././config.py:7115 .././config.py:11292
-#: .././config.py:11890
+#: .././mainwin.py:1532 .././config.py:7146 .././config.py:11323
+#: .././config.py:11921
 msgid "_Videos"
 msgstr "_Video's"
 
@@ -1102,7 +1102,7 @@ msgstr "_Klassieke modus"
 msgid "_Output"
 msgstr "Uitv_oer"
 
-#: .././mainwin.py:1566 .././config.py:8450 .././config.py:8956
+#: .././mainwin.py:1566 .././config.py:8481 .././config.py:8987
 msgid "_Errors / Warnings"
 msgstr "Fout_en/Waarschuwingen"
 
@@ -1163,12 +1163,12 @@ msgstr "Meer instellingen tonen"
 msgid "Sort"
 msgstr "Sorteren"
 
-#: .././mainwin.py:1875 .././config.py:8235
+#: .././mainwin.py:1875 .././config.py:8266
 msgid "Upload time"
 msgstr "Uploadtijd"
 
-#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7138
-#: .././config.py:12481 .././config.py:14402 .././config.py:14669
+#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7169
+#: .././config.py:12512 .././config.py:14433 .././config.py:14700
 msgid "Name"
 msgstr "Naam"
 
@@ -1260,11 +1260,11 @@ msgstr "Snelheid"
 msgid "ETA"
 msgstr "Verwacht"
 
-#: .././mainwin.py:2219 .././config.py:8821
+#: .././mainwin.py:2219 .././config.py:8852
 msgid "New videos"
 msgstr "Nieuwe video's"
 
-#: .././mainwin.py:2219 .././config.py:404 .././config.py:8191
+#: .././mainwin.py:2219 .././config.py:404 .././config.py:8222
 msgid "Duration"
 msgstr "Duur"
 
@@ -1272,7 +1272,7 @@ msgstr "Duur"
 msgid "Date"
 msgstr "Datum"
 
-#: .././mainwin.py:2220 .././config.py:8147
+#: .././mainwin.py:2220 .././config.py:8178
 msgid "File"
 msgstr "Bestand"
 
@@ -1344,7 +1344,7 @@ msgstr "Bestemming openen"
 msgid "Format:"
 msgstr "Formaat:"
 
-#: .././mainwin.py:2591 .././config.py:14402
+#: .././mainwin.py:2591 .././config.py:14433
 msgid "Default"
 msgstr "Standaard"
 
@@ -1373,14 +1373,14 @@ msgid "Play video"
 msgstr "Video afspelen"
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11105
-#: .././config.py:12546
+#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11136
+#: .././config.py:12577
 msgid "Move up"
 msgstr "Omhoog verplaatsen"
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11113
-#: .././config.py:12555
+#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11144
+#: .././config.py:12586
 msgid "Move down"
 msgstr "Omlaag verplaatsen"
 
@@ -1416,7 +1416,7 @@ msgstr "Gedownloade bestanden wissen"
 msgid "Maximum page size"
 msgstr "Maximale paginagrootte"
 
-#: .././mainwin.py:3017 .././config.py:12481
+#: .././mainwin.py:3017 .././config.py:12512
 msgid "Time"
 msgstr "Tijd"
 
@@ -1444,7 +1444,7 @@ msgstr "Serverfouten tonen"
 msgid "Show server warnings"
 msgstr "Serverwaarschuwingen tonen"
 
-#: .././mainwin.py:3113 .././config.py:9936
+#: .././mainwin.py:3113 .././config.py:9967
 msgid "Clear list"
 msgstr "Lijst wissen"
 
@@ -1797,7 +1797,7 @@ msgstr "Downloaden na _stoppen"
 msgid "Not a _livestream"
 msgstr "Geen _livestream"
 
-#: .././mainwin.py:5295 .././config.py:8310
+#: .././mainwin.py:5295 .././config.py:8341
 msgid "_Livestream"
 msgstr "_Livestream"
 
@@ -2472,8 +2472,8 @@ msgstr "Invidious"
 #. this function returns. Workaround is to make the label unclickable,
 #. then use a Glib timer to restore it (after some small fraction of a
 #. second)
-#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9296
-#: .././config.py:11514
+#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9327
+#: .././config.py:11545
 msgid "Other"
 msgstr "Overig"
 
@@ -2814,7 +2814,7 @@ msgstr "Dit kanaal bevat:"
 msgid "This playlist contains:"
 msgstr "Deze afspeellijst bevat:"
 
-#: .././mainwin.py:24726 .././config.py:9269
+#: .././mainwin.py:24726 .././config.py:9300
 msgid "This folder contains:"
 msgstr "Deze map bevat:"
 
@@ -2986,7 +2986,7 @@ msgstr "Importeren naar databank"
 msgid "Choose which items to import"
 msgstr "Geef aan welke items moeten worden geïmporteerd"
 
-#: .././mainwin.py:25104 .././config.py:14454 .././config.py:14719
+#: .././mainwin.py:25104 .././config.py:14485 .././config.py:14750
 msgid "Import"
 msgstr "Importeren"
 
@@ -3050,7 +3050,7 @@ msgstr "Annuleren"
 
 #. 'OK' button
 #: .././mainwin.py:25521 .././config.py:1035 .././config.py:2242
-#: .././config.py:7694 .././config.py:7828
+#: .././config.py:7725 .././config.py:7859
 msgid "OK"
 msgstr "Oké"
 
@@ -3254,7 +3254,7 @@ msgstr "Bijwerken"
 msgid "Copy to clipboard"
 msgstr "Kopiëren naar klembord"
 
-#: .././mainwin.py:26846 .././config.py:13749
+#: .././mainwin.py:26846 .././config.py:13780
 msgid "Test"
 msgstr "Testen"
 
@@ -3349,7 +3349,7 @@ msgstr "Downloads"
 msgid "Uploads"
 msgstr "Uploads"
 
-#: .././config.py:403 .././config.py:8214
+#: .././config.py:403 .././config.py:8245
 msgid "File size"
 msgstr "Bestandsgrootte"
 
@@ -3427,8 +3427,8 @@ msgstr "Wit"
 
 #. 'Reset' button
 #. (Signal connect appears below)
-#: .././config.py:1017 .././config.py:3306 .././config.py:14214
-#: .././config.py:14255 .././config.py:14325
+#: .././config.py:1017 .././config.py:3306 .././config.py:14245
+#: .././config.py:14286 .././config.py:14356
 msgid "Reset"
 msgstr "Standaardwaarden"
 
@@ -3445,7 +3445,7 @@ msgstr "Toepassen"
 msgid "Apply changes without closing the window"
 msgstr "Pas toe zonder het venster te sluiten"
 
-#: .././config.py:1038 .././config.py:7697 .././config.py:7831
+#: .././config.py:1038 .././config.py:7728 .././config.py:7862
 msgid "Apply changes"
 msgstr "Wijzigingen toepassen"
 
@@ -3502,7 +3502,7 @@ msgstr "Downloadopties wissen"
 msgid "Close this window"
 msgstr "Huidig venster sluiten"
 
-#: .././config.py:2869 .././config.py:6260
+#: .././config.py:2869 .././config.py:6262
 msgid "_Name"
 msgstr "_Naam"
 
@@ -3549,7 +3549,7 @@ msgid "Completely reset all download options to their default values"
 msgstr "Zet alle downloadopties terug op hun standaardwaarden"
 
 #. Add this tab...
-#: .././config.py:3000 .././config.py:10878
+#: .././config.py:3000 .././config.py:10909
 msgid "_Files"
 msgstr "_Bestanden"
 
@@ -3573,7 +3573,7 @@ msgstr "Bestandsuitvoersjabloon"
 msgid "Add to template:"
 msgstr "Toevoegen aan sjabloon:"
 
-#: .././config.py:3083 .././config.py:8018
+#: .././config.py:3083 .././config.py:8049
 msgid "Video properties"
 msgstr "Video-informatie"
 
@@ -3617,10 +3617,14 @@ msgstr "Video's automatisch nummeren, beginnend bij 0"
 msgid "Creator/uploader"
 msgstr "Maker/Uploader"
 
-#: .././config.py:3098 .././config.py:3099
+#: .././config.py:3098
 msgid "Full name of video uploader"
 msgstr "Volledige naam van uploader"
 
+#: .././config.py:3099
+msgid "Uploader ID"
+msgstr ""
+
 #: .././config.py:3100
 msgid "Nickname/ID of video uploader"
 msgstr "Bijnaam/ID van uploader"
@@ -3729,8 +3733,8 @@ msgstr "Aantal keer gedeeld"
 msgid "Number of comments"
 msgstr "Aantal reacties"
 
-#: .././config.py:3170 .././config.py:9916 .././config.py:12528
-#: .././config.py:14445 .././config.py:14710
+#: .././config.py:3170 .././config.py:9947 .././config.py:12559
+#: .././config.py:14476 .././config.py:14741
 msgid "Add"
 msgstr "Toevoegen"
 
@@ -3771,8 +3775,8 @@ msgid "Path to the downloader's cookie jar file"
 msgstr "Pad naar downloader's cookie-jarbestand:"
 
 #: .././config.py:3302 .././config.py:4927 .././config.py:4947
-#: .././config.py:4967 .././config.py:14111 .././config.py:14210
-#: .././config.py:14251 .././config.py:14321
+#: .././config.py:4967 .././config.py:14142 .././config.py:14241
+#: .././config.py:14282 .././config.py:14352
 msgid "Set"
 msgstr "Instellen"
 
@@ -3837,20 +3841,20 @@ msgid "Options during real (not simulated) downloads"
 msgstr "Opties tijdens echte (niet-gesimuleerde) downloads"
 
 #: .././config.py:3450 .././config.py:3481
-msgid "Keep the description file after Tartube shuts down"
-msgstr "Omschrijvingsbestand behouden na afsluiten"
+msgid "Keep the description file after the download has finished"
+msgstr ""
 
 #: .././config.py:3456 .././config.py:3487
-msgid "Keep the metadata file after Tartube shuts down"
-msgstr "Metagegevensbestand behouden na afsluiten"
+msgid "Keep the metadata file after the download has finished"
+msgstr ""
 
 #: .././config.py:3462 .././config.py:3493
-msgid "Keep the annotations file after Tartube shuts down"
-msgstr "Aantekeningenbestand behouden na afsluiten"
+msgid "Keep the annotations file after the download has finished"
+msgstr ""
 
 #: .././config.py:3468 .././config.py:3499
-msgid "Keep the thumbnail file after Tartube shuts down"
-msgstr "Miniatuurbestand behouden na afsluiten"
+msgid "Keep the thumbnail file after the download has finished"
+msgstr ""
 
 #: .././config.py:3475
 msgid "Options during simulated (not real) downloads"
@@ -3946,7 +3950,7 @@ msgid "Do not download DASH-related data for YouTube videos"
 msgstr "Download geen DASH-gerelateerde gegevens bij YouTube-video's"
 
 #. Add this tab...
-#: .././config.py:3790 .././config.py:3809 .././config.py:13113
+#: .././config.py:3790 .././config.py:3809 .././config.py:13144
 msgid "_Downloads"
 msgstr "_Downloads"
 
@@ -4387,8 +4391,8 @@ msgstr "Extern downloadprogramma gebruiken"
 msgid "Arguments to pass to external downloader"
 msgstr "Aanvullende opties voor extern downloadprogramma"
 
-#: .././config.py:5168 .././config.py:5658 .././config.py:7355
-#: .././config.py:7603
+#: .././config.py:5168 .././config.py:5658 .././config.py:7386
+#: .././config.py:7634
 msgid "This procedure cannot be reversed. Are you sure you want to continue?"
 msgstr ""
 "Dit kan niet ongedaan worden gemaakt. Weet je zeker dat je wilt doorgaan?"
@@ -4436,55 +4440,55 @@ msgid "FFmpeg options"
 msgstr "FFmpeg-opties"
 
 #. Replace the 'OK' button with a 'Process files' button
-#: .././config.py:6246 .././config.py:7776
+#: .././config.py:6248 .././config.py:7807
 msgid "Process files"
 msgstr "Bestanden verwerken"
 
-#: .././config.py:6248 .././config.py:7778
+#: .././config.py:6250 .././config.py:7809
 msgid "Process the files with FFmpeg"
 msgstr "Verwerk de bestanden met FFmpeg"
 
-#: .././config.py:6265
+#: .././config.py:6267
 msgid "Name for these FFmpeg options"
 msgstr "Naam van FFmpeg-opties"
 
-#: .././config.py:6275
+#: .././config.py:6277
 msgid "Extra command line options (e.g. --help)"
 msgstr "Aanvullende opdrachtregelopties (bijv. --help)"
 
-#: .././config.py:6286
+#: .././config.py:6288
 msgid "System command, based on all FFmpeg options in this window:"
 msgstr "Systeemopdracht, op basis van alle FFmpeg-opties binnen dit venster:"
 
-#: .././config.py:6317
+#: .././config.py:6319
 msgid "Show fewer FFmpeg options"
 msgstr "Minder FFmpeg-opties tonen"
 
-#: .././config.py:6319
+#: .././config.py:6321
 msgid "Show more FFmpeg options"
 msgstr "Meer FFmpeg-opties tonen"
 
-#: .././config.py:6329
+#: .././config.py:6331
 msgid "Import current FFmpeg options into this window"
 msgstr "Importeer huidige FFmpeg-opties naar dit venster"
 
-#: .././config.py:6344
+#: .././config.py:6346
 msgid "Completely reset all FFmpeg options to their default values"
 msgstr "Zet alle FFmpeg-opties terug op hun standaardwaarden"
 
-#: .././config.py:6360
+#: .././config.py:6362
 msgid "Add to end of filename:"
 msgstr "Toevoegen achter bestandsnaam:"
 
-#: .././config.py:6370
+#: .././config.py:6372
 msgid "If regex matches filename:"
 msgstr "Als regex overeenkomt met bestandsnaam:"
 
-#: .././config.py:6384
+#: .././config.py:6386
 msgid "...then apply substitution:"
 msgstr "...pas dan vervanging toe:"
 
-#: .././config.py:6397
+#: .././config.py:6399
 msgid ""
 "If the video/audio file is renamed, also rename the thumbnail (but not vice-"
 "versa)"
@@ -4492,47 +4496,47 @@ msgstr ""
 "Als het audio- of videobestand van naam wijzigt, wijzig dan ook de naam van "
 "de miniatuur (maar niet vice-versa)"
 
-#: .././config.py:6408
+#: .././config.py:6410
 msgid "Change file extension:"
 msgstr "Bestandsextensie aanpassen:"
 
-#: .././config.py:6422
+#: .././config.py:6424
 msgid "After changing the file extension, delete the original file"
 msgstr "Oorspronkelijk bestand verwijderen na aanpassen van extensie"
 
-#: .././config.py:6448
+#: .././config.py:6450
 msgid "_Settings"
 msgstr "In_stellingen"
 
-#: .././config.py:6455
+#: .././config.py:6457
 msgid "Source file"
 msgstr "Bronbestand"
 
-#: .././config.py:6462
+#: .././config.py:6464
 msgid "Downloaded video/audio"
 msgstr "Gedownloade audio/video"
 
-#: .././config.py:6471
+#: .././config.py:6473
 msgid "with audio"
 msgstr "met audio"
 
-#: .././config.py:6484
+#: .././config.py:6486
 msgid "Video thumbnail"
 msgstr "Videominiatuur"
 
-#: .././config.py:6503
+#: .././config.py:6505
 msgid "Output file"
 msgstr "Uitvoerbestand"
 
-#: .././config.py:6630
+#: .././config.py:6632
 msgid "Audio bitrate"
 msgstr "Audiobitsnelheid"
 
-#: .././config.py:6644
+#: .././config.py:6646
 msgid "How to set the quality"
 msgstr "Kwaliteit instellen"
 
-#: .././config.py:6649
+#: .././config.py:6651
 msgid ""
 "FFmpeg always encodes according to a Rate Factor that specifies the quality "
 "of the result."
@@ -4540,7 +4544,7 @@ msgstr ""
 "FFmpeg gebruikt altijd op basis van de snelheidsfactor die de kwaliteit "
 "aangeeft."
 
-#: .././config.py:6652
+#: .././config.py:6654
 msgid ""
 "Instead of directly specifying the Rate Factor, an average bit rate can be "
 "specified. FFmpeg will then determine the optimal Rate Factor in a first "
@@ -4549,7 +4553,7 @@ msgstr ""
 "In plaats daarvan kan een gemiddelde bitsnelheid worden ingesteld. FFmpeg "
 "bepaalt dan de optimale snelheidsfactor bij de eerste overdracht."
 
-#: .././config.py:6656
+#: .././config.py:6658
 msgid ""
 "In fact the first pass is only used for determining the Rate Factor, no "
 "other data is carried over into the second pass."
@@ -4557,7 +4561,7 @@ msgstr ""
 "De eerste overdracht wordt alleen gebruikt om de factor te bepalen en niet "
 "om andere gegevens over te dragen."
 
-#: .././config.py:6659
+#: .././config.py:6661
 msgid ""
 "Specifying an average bitrate but running only one pass is possible, but not "
 "recommended. FFmpeg would then encode the beginning of the video with a "
@@ -4568,126 +4572,134 @@ msgstr ""
 "aanbevolen. FFmpeg werkt dan alleen het begin van de video af met een "
 "willekeurige snelheidsfactor en past het einde aan om het doel te bereiken."
 
-#: .././config.py:6672
+#: .././config.py:6674
 msgid "Manual rate factor"
 msgstr "Aangepaste snelheidsfactor"
 
-#: .././config.py:6681
+#: .././config.py:6683
 msgid "Determine from target bitrate (2-Pass)"
 msgstr "Bepalen op basis van doelbitsnelheid (2-pass)"
 
-#: .././config.py:6691
+#: .././config.py:6693
 msgid "Rate factor"
 msgstr "Snelheidsfactor"
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Lossless"
 msgstr "Lossless"
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Large file"
 msgstr "Groot bestand"
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Bad quality"
 msgstr "Slechte kwaliteit"
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Small file"
 msgstr "Klein bestand"
 
-#: .././config.py:6732
+#: .././config.py:6734
 msgid "Name of dummy file"
 msgstr "Naam van rekwisietbestand"
 
-#: .././config.py:6736
+#: .././config.py:6738
 msgid "A dummy file is created during the first pass."
 msgstr "Er wordt tijdens de eerste overdracht een rekwisietbestand aangemaakt."
 
-#: .././config.py:6740
+#: .././config.py:6742
 msgid "Use the output file"
 msgstr "Uitvoerbestand gebruiken"
 
-#: .././config.py:6741
+#: .././config.py:6743
 msgid "Dummy"
 msgstr "Rekwisiet"
 
-#: .././config.py:6742
+#: .././config.py:6744
 msgid "/dev/null (Linux)"
 msgstr "/dev/null (Linux)"
 
-#: .././config.py:6743
+#: .././config.py:6745
 msgid "NUL (MS Windows)"
 msgstr "NUL (MS Windows)"
 
-#: .././config.py:6755
+#: .././config.py:6757
 msgid "Patience preset"
 msgstr "Geduldsinstelling"
 
-#: .././config.py:6760
+#: .././config.py:6762
 msgid "Ultra fast"
 msgstr "Ontzettend snel"
 
-#: .././config.py:6761
+#: .././config.py:6763
 msgid "Super fast"
 msgstr "Heel erg snel"
 
-#: .././config.py:6762
+#: .././config.py:6764
 msgid "Very fast"
 msgstr "Erg snel"
 
-#: .././config.py:6763 .././config.py:6832
+#: .././config.py:6765 .././config.py:6863
 msgid "Faster"
 msgstr "Sneller"
 
-#: .././config.py:6764
+#: .././config.py:6766
 msgid "Fast"
 msgstr "Snel"
 
-#: .././config.py:6765
+#: .././config.py:6767
 msgid "Medium (default)"
 msgstr "Gemiddeld (standaard)"
 
-#: .././config.py:6766
+#: .././config.py:6768
 #, python-format
 msgid "Slow (file about 5-10% smaller than medium)"
 msgstr "Langzaam (ongeveer 5-10% kleiner bestand dan gemiddeld)"
 
-#: .././config.py:6767
+#: .././config.py:6769
 #, python-format
 msgid "Slower (file about 15% smaller than medium)"
 msgstr "Langzamer (ongeveer 15% kleiner bestand dan gemiddeld)"
 
-#: .././config.py:6768
+#: .././config.py:6770
 #, python-format
 msgid "Very slow (file about 17% smaller than medium)"
 msgstr "Erg langzaam (ongeveer 17% kleiner bestand dan gemiddeld)"
 
-#: .././config.py:6826
+#: .././config.py:6781
+msgid "GPU encoding"
+msgstr ""
+
+#: .././config.py:6797
+msgid "Hardware acceleration"
+msgstr ""
+
+#: .././config.py:6857
 msgid "Palette:"
 msgstr "Palet:"
 
-#: .././config.py:6833
+#: .././config.py:6864
 msgid "Uses dithering to a standard palette provided by FFmpeg"
 msgstr "Gebruikt ruisonderdrukking op basis van een standaardpalet van FFmpeg"
 
-#: .././config.py:6834
+#: .././config.py:6865
 msgid "Can cause dithering artefacts and slight banding"
 msgstr "Kan vervormingen en lichte verkleuringen veroorzaken"
 
-#: .././config.py:6843
+#: .././config.py:6874
 msgid "Better"
 msgstr "Beter"
 
-#: .././config.py:6844
+#: .././config.py:6875
 msgid "Determines an optimized palette for the video"
 msgstr "Stelt een geoptimaliseerd palet vast voor de video"
 
-#: .././config.py:6845
+#: .././config.py:6876
 msgid "Uses two passes and a temporary file for the palette"
 msgstr "Gebruikt twee overdrachten en een tijdelijk bestand voor het palet"
 
-#: .././config.py:6898
+#: .././config.py:6929
 msgid ""
 "This merges a video and audio file with the same name into a single video "
 "file,\n"
@@ -4696,82 +4708,82 @@ msgstr ""
 "Hiermee voeg je een audio- en videobestand samen onder dezelfde naam,\n"
 "met toevoeging van de op het tabblad 'Bestand' opgegeven extensie"
 
-#: .././config.py:6939
+#: .././config.py:6970
 msgid "The thumbnail's format can be changed in the File tab"
 msgstr "Het miniatuurformaat kan worden aangepast op het tabblad 'Bestand'"
 
-#: .././config.py:6954
+#: .././config.py:6985
 msgid "_Optimisations"
 msgstr "_Optimalisaties"
 
-#: .././config.py:6960
+#: .././config.py:6991
 msgid ""
 "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)"
 msgstr ""
 "Optimaliseren voor snel doorspoelen (kortere frames, ongeveer 10% groter "
 "bestand)"
 
-#: .././config.py:6968
+#: .././config.py:6999
 msgid "Input video is a high-quality movie"
 msgstr "Invoervideo is van hoge kwaliteit"
 
-#: .././config.py:6974
+#: .././config.py:7005
 msgid "Input video is an animated movie"
 msgstr "Invoervideo is een tekenfilm"
 
-#: .././config.py:6980
+#: .././config.py:7011
 msgid "Input video contains film grain"
 msgstr "Invoervideo bevat spikkels"
 
-#: .././config.py:6986
+#: .././config.py:7017
 msgid "Input video is an image slideshow"
 msgstr "Invoervideo is een diavoorstelling"
 
-#: .././config.py:6992
+#: .././config.py:7023
 msgid "Optimise for really weak CPU playback devices"
 msgstr "Optimaliseren voor zwakke processoren (cpu's)"
 
-#: .././config.py:6999
+#: .././config.py:7030
 msgid "Optimise for really old devices (requires rate factor above 0)"
 msgstr ""
 "Optimaliseren voor zeer oude apparaten (vereist een factor hoger dan 0)"
 
-#: .././config.py:7010
+#: .././config.py:7041
 msgid ""
 "Move headers to beginning of file (so it can play while still downloading)"
 msgstr ""
 "Koppen verplaatsen naar begin van bestand (om te kijken tijdens het "
 "downloaden)"
 
-#: .././config.py:7018
+#: .././config.py:7049
 msgid "Fast encoding and low latency streaming"
 msgstr "Snel encoderen en streamen op lage snelheid"
 
-#: .././config.py:7024
+#: .././config.py:7055
 msgid "Limit bitrate (Mbit/s)"
 msgstr "Bitsnelheid beperken (Mbit/s)"
 
-#: .././config.py:7041
+#: .././config.py:7072
 msgid "Assuming a receiving buffer (seconds)"
 msgstr "Ontvangbuffer (in seconden)"
 
-#: .././config.py:7119
+#: .././config.py:7150
 msgid "List of videos to be processed"
 msgstr "Lijst met te verwerken video's"
 
-#: .././config.py:7138 .././media.py:88
+#: .././config.py:7169 .././media.py:88
 msgid "Video"
 msgstr "Video"
 
-#: .././config.py:7138
+#: .././config.py:7169
 msgid "Thumbnail"
 msgstr "Miniatuurvoorbeeld"
 
-#: .././config.py:7181
+#: .././config.py:7212
 msgid "Remove video from list"
 msgstr "Video verwijderen van lijst"
 
-#: .././config.py:7647
+#: .././config.py:7678
 msgid ""
 "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
@@ -4779,12 +4791,12 @@ msgstr ""
 "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw "
 "opent), worden er minder FFmpeg-opties getoond"
 
-#: .././config.py:7657
+#: .././config.py:7688
 msgid "Show more FFmpeg options (when window re-opens)"
 msgstr ""
 "Uitgebreide FFmpeg-opties tonen (als het venster opnieuw wordt geopend)"
 
-#: .././config.py:7674
+#: .././config.py:7705
 msgid ""
 "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
@@ -4792,141 +4804,141 @@ msgstr ""
 "Als je op 'Toepassen' of 'Standaardwaarden' klikt (of het venster opnieuw "
 "opent), worden er meer FFmpeg-opties getoond"
 
-#: .././config.py:7684
+#: .././config.py:7715
 msgid "Show fewer FFmpeg options (when window re-opens)"
 msgstr "Minder FFmpeg-opties tonen (als het venster opnieuw wordt geopend)"
 
 #. Add this tab...
-#: .././config.py:8135 .././config.py:8752 .././config.py:9176
-#: .././config.py:9663 .././config.py:10464
+#: .././config.py:8166 .././config.py:8783 .././config.py:9207
+#: .././config.py:9694 .././config.py:10495
 msgid "_General"
 msgstr "Al_gemeen"
 
-#: .././config.py:8138 .././config.py:8755 .././config.py:9179
-#: .././config.py:9668
+#: .././config.py:8169 .././config.py:8786 .././config.py:9210
+#: .././config.py:9699
 msgid "General properties"
 msgstr "Algemene informatie"
 
-#: .././config.py:8164
+#: .././config.py:8195
 msgid "Set the file (if this is the wrong one)"
 msgstr "Bestand instellen (als dit het verkeerde is)"
 
-#: .././config.py:8184
+#: .././config.py:8215
 msgid "Always simulate download of this video"
 msgstr "Downloaden altijd simuleren"
 
-#: .././config.py:8207
+#: .././config.py:8238
 msgid "Video has been downloaded"
 msgstr "De video is gedownload"
 
-#: .././config.py:8228
+#: .././config.py:8259
 msgid "Video is marked as unwatched"
 msgstr "De video is gemarkeerd als niet-bekeken"
 
-#: .././config.py:8249
+#: .././config.py:8280
 msgid "Video is archived"
 msgstr "De video is gearchiveerd"
 
-#: .././config.py:8256
+#: .././config.py:8287
 msgid "Video is bookmarked"
 msgstr "De video is toegevoegd aan de bladwijzers"
 
-#: .././config.py:8263
+#: .././config.py:8294
 msgid "Receive time"
 msgstr "Ontvangen om"
 
-#: .././config.py:8277
+#: .././config.py:8308
 msgid "Video is favourite"
 msgstr "De video is toegevoegd aan de favorieten"
 
-#: .././config.py:8284
+#: .././config.py:8315
 msgid "Video is in waiting list"
 msgstr "De video staat op de wachtlijst"
 
-#: .././config.py:8316
+#: .././config.py:8347
 msgid "Livestream properties"
 msgstr "Livestreaminformatie"
 
-#: .././config.py:8321
+#: .././config.py:8352
 msgid "Livestream status"
 msgstr "Livestreamstatus"
 
-#: .././config.py:8332
+#: .././config.py:8363
 msgid "Waiting to start"
 msgstr "Bezig met wachten op begin"
 
-#: .././config.py:8334
+#: .././config.py:8365
 msgid "Stream has started"
 msgstr "De stream is begonnen"
 
-#: .././config.py:8336
+#: .././config.py:8367
 msgid "Not a livestream"
 msgstr "Is geen livestream"
 
-#: .././config.py:8339
+#: .././config.py:8370
 msgid "Livestream message"
 msgstr "Livestreambericht"
 
-#: .././config.py:8354
+#: .././config.py:8385
 msgid "Video is pre-recorded"
 msgstr "De video is van tevoren opgenomen"
 
-#: .././config.py:8361
+#: .././config.py:8392
 msgid "Livestream actions"
 msgstr "Livestreamacties"
 
-#: .././config.py:8370
+#: .././config.py:8401
 msgid "When the livestream starts, show a desktop notification"
 msgstr "Melding tonen als de livestream begint"
 
-#: .././config.py:8379
+#: .././config.py:8410
 msgid "When the livestream starts, play an alarm"
 msgstr "Geluid afspelen als de livestream begint"
 
-#: .././config.py:8389
+#: .././config.py:8420
 msgid "When the livestream starts, open it in the system's web browser"
 msgstr "Livestream openen in webbrowser zodra deze begint"
 
-#: .././config.py:8401
+#: .././config.py:8432
 msgid "When the livestream starts, begin downloading it immediately"
 msgstr "Downloaden starten als de livestream begint"
 
-#: .././config.py:8412 .././config.py:13782
+#: .././config.py:8443 .././config.py:13813
 msgid "When a livestream stops, download it (overwriting any earlier file)"
 msgstr ""
 "Downloaden stoppen als de livestream begint (eerdere bestanden worden "
 "overschreven)"
 
-#: .././config.py:8428
+#: .././config.py:8459
 msgid "_Description"
 msgstr "_Omschrijving"
 
-#: .././config.py:8432
+#: .././config.py:8463
 msgid "Video description"
 msgstr "Video-omschrijving"
 
-#: .././config.py:8453 .././config.py:8959
+#: .././config.py:8484 .././config.py:8990
 msgid "Errors / Warnings"
 msgstr "Fouten/Waarschuwingen"
 
-#: .././config.py:8459
+#: .././config.py:8490
 msgid "Error messages produced the last time this video was checked/downloaded"
 msgstr ""
 "Foutmeldingen tijdens de laatste keer dat de video is gecontroleerd/"
 "gedownload"
 
-#: .././config.py:8474
+#: .././config.py:8505
 msgid ""
 "Warning messages produced the last time this video was checked/downloaded"
 msgstr ""
 "Waarschuwingen tijdens de laatste keer dat de video is gecontroleerd/"
 "gedownload"
 
-#: .././config.py:8517
+#: .././config.py:8548
 msgid "Select the correct video/audio file"
 msgstr "Kies het juiste audio- of videobestand"
 
-#: .././config.py:8543
+#: .././config.py:8574
 msgid ""
 "The replacement video/audio file must be in the same channel, playlist or "
 "folder"
@@ -4934,244 +4946,244 @@ msgstr ""
 "Het vervangende bestand moet op hetzelfde kanaal of dezelfde afspeellijst of "
 "map staan"
 
-#: .././config.py:8561
+#: .././config.py:8592
 msgid "You must select a valid video/audio file"
 msgstr "Kies het juiste audio- of videobestand"
 
-#: .././config.py:8629
+#: .././config.py:8660
 msgid "Channel properties"
 msgstr "Kanaalinformatie"
 
-#: .././config.py:8632
+#: .././config.py:8663
 msgid "Playlist properties"
 msgstr "Afspeellijstinformatie"
 
-#: .././config.py:8773
+#: .././config.py:8804
 msgid "Always simulate download of videos in this channel"
 msgstr "Downloaden op dit kanaal altijd simuleren"
 
-#: .././config.py:8775
+#: .././config.py:8806
 msgid "Always simulate download of videos in this playlist"
 msgstr "Downloaden op deze afspeellijst altijd simuleren"
 
-#: .././config.py:8785
+#: .././config.py:8816
 msgid "Disable checking/downloading for this channel"
 msgstr "Controleren/Downloaden op dit kanaal uitschakelen"
 
-#: .././config.py:8787
+#: .././config.py:8818
 msgid "Disable checking/downloading for this playlist"
 msgstr "Controleren/Downloaden op deze afspeellijst uitschakelen"
 
-#: .././config.py:8797
+#: .././config.py:8828
 msgid "This channel is marked as a favourite"
 msgstr "Dit kanaal staat in je favorieten"
 
-#: .././config.py:8799
+#: .././config.py:8830
 msgid "This playlist is marked as a favourite"
 msgstr "Deze afspeellijst staat in je favorieten"
 
-#: .././config.py:8809
+#: .././config.py:8840
 msgid "Total videos"
 msgstr "Totaal aantal video's"
 
-#: .././config.py:8833
+#: .././config.py:8864
 msgid "Favourite videos"
 msgstr "Favoriete video's"
 
-#: .././config.py:8845
+#: .././config.py:8876
 msgid "Downloaded videos"
 msgstr "Gedownloade video's"
 
-#: .././config.py:8867 .././config.py:9408 .././config.py:11646
+#: .././config.py:8898 .././config.py:9439 .././config.py:11677
 msgid "_History"
 msgstr "Gesc_hiedenis"
 
-#: .././config.py:8872 .././config.py:9413 .././config.py:11653
+#: .././config.py:8903 .././config.py:9444 .././config.py:11684
 msgid "Download history"
 msgstr "Downloadgeschiedenis"
 
-#: .././config.py:8886 .././config.py:9427 .././config.py:11667
+#: .././config.py:8917 .././config.py:9458 .././config.py:11698
 msgid "Draw"
 msgstr "Tekenen"
 
-#: .././config.py:8914
+#: .././config.py:8945
 msgid "_RSS feed"
 msgstr "_RSS-feed"
 
-#: .././config.py:8917
+#: .././config.py:8948
 msgid "RSS feed"
 msgstr "RSS-feed"
 
-#: .././config.py:8923
+#: .././config.py:8954
 msgid ""
 "If Tartube cannot detect the channel's RSS feed, you can enter the URL here"
 msgstr ""
 "Als Tartube geen rss-feed kan achterhalen, kun je hier de feedurl opgeven"
 
-#: .././config.py:8928
+#: .././config.py:8959
 msgid ""
 "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here"
 msgstr ""
 "Als Tartube geen rss-feed kan achterhalen, kun je hier de feedurl opgeven"
 
-#: .././config.py:8933
+#: .././config.py:8964
 msgid "(The feed is used to detect livestreams on compatible websites)"
 msgstr ""
 "(de feed wordt gebruikt om livestreams van compatibele sites te achterhalen)"
 
-#: .././config.py:8965
+#: .././config.py:8996
 msgid ""
 "Error messages produced the last time this channel was checked/downloaded"
 msgstr ""
 "Foutmeldingen tijdens de laatste keer dat dit kanaal is gecontroleerd/"
 "gedownload"
 
-#: .././config.py:8970
+#: .././config.py:9001
 msgid ""
 "Error messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 "Foutmeldingen tijdens de laatste keer dat deze afspeellijst is gecontroleerd/"
 "gedownload"
 
-#: .././config.py:8988
+#: .././config.py:9019
 msgid ""
 "Warning messages produced the last time this channel was checked/downloaded"
 msgstr ""
 "Waarschuwingen tijdens de laatste keer dat dit kanaal is gecontroleerd/"
 "gedownload"
 
-#: .././config.py:8993
+#: .././config.py:9024
 msgid ""
 "Warning messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 "Waarschuwingen tijdens de laatste keer dat deze afspeellijst is "
 "gecontroleerd/gedownload"
 
-#: .././config.py:9059
+#: .././config.py:9090
 msgid "Folder properties"
 msgstr "Mapinformatie"
 
-#: .././config.py:9196
+#: .././config.py:9227
 msgid "Always simulate download of videos"
 msgstr "Downloaden altijd simuleren"
 
-#: .././config.py:9203
+#: .././config.py:9234
 msgid "Disable checking/downloading for this folder"
 msgstr "Controleren/Downloaden in deze map uitschakelen"
 
-#: .././config.py:9210
+#: .././config.py:9241
 msgid "This folder is marked as a favourite"
 msgstr "Deze map staat in je favorieten"
 
-#: .././config.py:9217
+#: .././config.py:9248
 msgid "This folder is hidden"
 msgstr "Deze map is verborgen"
 
-#: .././config.py:9224
+#: .././config.py:9255
 msgid "This folder can't be deleted by the user"
 msgstr "Deze map kan niet worden verwijderd door de gebruiker"
 
-#: .././config.py:9231
+#: .././config.py:9262
 msgid "This is a system-controlled folder"
 msgstr "Dit is een systeemmap"
 
-#: .././config.py:9238
+#: .././config.py:9269
 msgid "Only videos can be added to this folder"
 msgstr "Je kunt alleen video's toevoegen aan deze map"
 
-#: .././config.py:9245
+#: .././config.py:9276
 msgid "All contents deleted when Tartube shuts down"
 msgstr "Na het afsluiten wordt alle inhoud verwijderd"
 
-#: .././config.py:9259 .././config.py:11475
+#: .././config.py:9290 .././config.py:11506
 msgid "_Statistics"
 msgstr "_Statistieken"
 
-#: .././config.py:9264 .././config.py:11482
+#: .././config.py:9295 .././config.py:11513
 msgid "Statistics"
 msgstr "Statistieken"
 
-#: .././config.py:9285 .././config.py:11503
+#: .././config.py:9316 .././config.py:11534
 msgid "Downloaded"
 msgstr "Gedownload"
 
-#: .././config.py:9329
+#: .././config.py:9360
 msgid "Sub-folders"
 msgstr "Onderliggende mappen"
 
-#: .././config.py:9351
+#: .././config.py:9382
 msgid "Recalculate"
 msgstr "Herberekenen"
 
-#: .././config.py:9522
+#: .././config.py:9553
 msgid "Scheduled download"
 msgstr "Ingeplande download"
 
-#: .././config.py:9673 .././config.py:12515
+#: .././config.py:9704 .././config.py:12546
 msgid "Scheduled download name"
 msgstr "Naam van ingeplande download"
 
-#: .././config.py:9685
+#: .././config.py:9716
 msgid "Download mode"
 msgstr "Downloadmodus"
 
-#: .././config.py:9690
+#: .././config.py:9721
 msgid "Check channels, playlist and folders"
 msgstr "Kanalen, afspeellijsten en mappen controleren"
 
-#: .././config.py:9691
+#: .././config.py:9722
 msgid "Download channels, playlists and folders"
 msgstr "Kanalen, afspeellijsten, mappen downloaden"
 
-#: .././config.py:9692
+#: .././config.py:9723
 msgid "Perform a custom download"
 msgstr "Aangepast downloaden"
 
-#: .././config.py:9703 .././config.py:12481
+#: .././config.py:9734 .././config.py:12512
 msgid "Start mode"
 msgstr "Beginmodus"
 
-#: .././config.py:9708
+#: .././config.py:9739
 msgid "Perform this download at regular intervals"
 msgstr "Download uitvoeren op bepaalde tijdstippen"
 
-#: .././config.py:9709
+#: .././config.py:9740
 msgid "Perform this download when Tartube starts"
 msgstr "Download uitvoeren na het openen van Tartube"
 
-#: .././config.py:9710
+#: .././config.py:9741
 msgid "Disable this scheduled download"
 msgstr "Planning uitschakelen"
 
-#: .././config.py:9722
+#: .././config.py:9753
 msgid "Time between scheduled downloads"
 msgstr "Tijd tussen ingeplande downloads"
 
-#: .././config.py:9766
+#: .././config.py:9797
 msgid "If another scheduled download is running:"
 msgstr "Als er al een ingeplande download actief is:"
 
-#: .././config.py:9773
+#: .././config.py:9804
 msgid "Add channels, playlists and folders to the end of the queue"
 msgstr "Kanalen, afspeellijsten en mappen toevoegen aan einde van wachtrij"
 
-#: .././config.py:9779
+#: .././config.py:9810
 msgid "Add channels, playlists and folders to the beginning of the queue"
 msgstr "Kanalen, afspeellijsten en mappen toevoegen aan begin van wachtrij"
 
-#: .././config.py:9786
+#: .././config.py:9817
 msgid "Do nothing, just wait until the next scheduled download time"
 msgstr "Niks doen tot aan het volgende tijdstip"
 
-#: .././config.py:9801
+#: .././config.py:9832
 msgid "This scheduled download takes priority over others"
 msgstr "Deze ingeplande download heeft hoge prioriteit"
 
-#: .././config.py:9804
+#: .././config.py:9835
 msgid "Other scheduled downloads won't start until this one is finished"
 msgstr "Andere ingeplande downloads beginnen pas als deze is afgerond"
 
-#: .././config.py:9813
+#: .././config.py:9844
 msgid ""
 "Ignore time-saving preferences, and check/download the whole channel/"
 "playlist/folder"
@@ -5179,64 +5191,64 @@ msgstr ""
 "Tijdbesparende maatregelen negeren en kanaal/afspeellijst/map volledig "
 "controleren/downloaden"
 
-#: .././config.py:9821
+#: .././config.py:9852
 msgid "Shut down Tartube when this scheduled download has finished"
 msgstr "Tartube afsluiten nadat deze download is afgerond"
 
-#: .././config.py:9839
+#: .././config.py:9870
 msgid "Media to download"
 msgstr "De te downloaden media"
 
-#: .././config.py:9845
+#: .././config.py:9876
 msgid "Check/download everything"
 msgstr "Alles controleren/downloaden"
 
-#: .././config.py:9853
+#: .././config.py:9884
 msgid "Only check/download the media below"
 msgstr "Alleen onderstaande media controleren/downloaden"
 
-#: .././config.py:9867
+#: .././config.py:9898
 msgid ""
 "Hint: you can drag and drop channels, playlists and your own folders here"
 msgstr "Tip: je kunt kanalen, afspeellijsten en mappen hierheen slepen"
 
-#: .././config.py:9926
+#: .././config.py:9957
 msgid "Remove"
 msgstr "Verwijderen"
 
-#: .././config.py:10230
+#: .././config.py:10261
 msgid "System preferences"
 msgstr "Algemene instellingen"
 
-#: .././config.py:10483
+#: .././config.py:10514
 msgid "_Language"
 msgstr "Taa_l"
 
-#: .././config.py:10488
+#: .././config.py:10519
 msgid "Language preferences"
 msgstr "Taalinstellingen"
 
-#: .././config.py:10493
+#: .././config.py:10524
 msgid "Language"
 msgstr "Taal"
 
-#: .././config.py:10529
+#: .././config.py:10560
 msgid "_Stability"
 msgstr "_Stabiliteit"
 
-#: .././config.py:10539
+#: .././config.py:10570
 msgid "Gtk library"
 msgstr "GTK-bibliotheek"
 
-#: .././config.py:10544
+#: .././config.py:10575
 msgid "Current version of the system's Gtk library"
 msgstr "De huidige versie van de GTK-bibliotheek op dit systeem"
 
-#: .././config.py:10559
+#: .././config.py:10590
 msgid "Gtk stability"
 msgstr "GTK-stabiliteit"
 
-#: .././config.py:10598
+#: .././config.py:10629
 msgid ""
 "Tartube uses the Gtk graphics library. This library is notoriously "
 "unreliable and may even causes crashes."
@@ -5244,7 +5256,7 @@ msgstr ""
 "Tartube maakt gebruik van de grafische bibliotheek van GTK. Deze staat "
 "bekend om zijn onbetrouwbaarheid en sporadische crashes."
 
-#: .././config.py:10605
+#: .././config.py:10636
 msgid ""
 "By default, some cosmetic features are disabled (for example, in the Videos "
 "tab, the list of videos is not updated until the end of a download "
@@ -5254,7 +5266,7 @@ msgstr ""
 "bijwerken van de videolijst totdat het downloaden is afgerond (zie tabblad "
 "'Video's')"
 
-#: .././config.py:10613
+#: .././config.py:10644
 msgid ""
 "If you think that your system Gtk has been fixed (or if you want to test Gtk "
 "stability), you can re-enable the cosmetic features."
@@ -5262,79 +5274,79 @@ msgstr ""
 "Als je zeker weet dat je systeem een betrouwbare versie van GTK heeft (of "
 "als je de stabiliteit wilt testen), kun je enkele functies weer inschakelen."
 
-#: .././config.py:10623
+#: .././config.py:10654
 msgid "Disable some cosmetic features to prevent crashes and other issues"
 msgstr ""
 "Enkele cosmetische functies uitschakelen om crashes en problemen te voorkomen"
 
-#: .././config.py:10641
+#: .././config.py:10672
 msgid "_Modules"
 msgstr "_Modules"
 
-#: .././config.py:10646
+#: .././config.py:10677
 msgid "Module availability"
 msgstr "Aanwezigheid van modules"
 
-#: .././config.py:10652
+#: .././config.py:10683
 msgid "feedparser module is available (required for detecting livestreams)"
 msgstr ""
 "De feedparser-module is aanwezig (vereist voor het detecteren van "
 "livestreams)"
 
-#: .././config.py:10661
+#: .././config.py:10692
 msgid "matplotlib module is available (draws graphs)"
 msgstr "De matplotlib-module is beschikbaar (om grafieken te tonen)"
 
-#: .././config.py:10669
+#: .././config.py:10700
 msgid "moviepy module is available (finds the length of videos, if unknown)"
 msgstr ""
 "De moviepy-module is aanwezig (vereist voor het achterhalen van de duur van "
 "video's)"
 
-#: .././config.py:10679
+#: .././config.py:10710
 msgid "playsound module is available (sound an alarm when a livestream starts)"
 msgstr ""
 "De playsound-module is aanwezig (vereist voor het afspelen van een geluid "
 "aan het begin van een livestream)"
 
-#: .././config.py:10689
+#: .././config.py:10720
 msgid ""
 "XDG module is available (saves the config file in the standard location)"
 msgstr ""
 "De xdg-module is aanwezig (vereist voor het opslaan van het "
 "configuratiebestand op de standaardlocatie)"
 
-#: .././config.py:10699
+#: .././config.py:10730
 msgid ""
 "Notify module is available (shows desktop notifications; Linux/*BSD only)"
 msgstr ""
 "De notify-module is aanwezig (vereist voor het tonen van meldingen op Linux "
 "en *BSD)"
 
-#: .././config.py:10709
+#: .././config.py:10740
 msgid "Module preferences"
 msgstr "Module-instellingen"
 
-#: .././config.py:10715
+#: .././config.py:10746
 msgid ""
 "Use 'moviepy' module to get a video's duration, if not known (may be slow)"
 msgstr ""
 "'moviepy'-module gebruiken om de duur van video's te achterhalen (kan "
 "langzaam zijn)"
 
-#: .././config.py:10727
+#: .././config.py:10758
 msgid "Timeout applied when moviepy checks a video file"
 msgstr "De time-out die wordt gebruikt bij het achterhalen met moviepy"
 
-#: .././config.py:10752
+#: .././config.py:10783
 msgid "_Debugging"
 msgstr "_Foutopsporing"
 
-#: .././config.py:10760
+#: .././config.py:10791
 msgid "Debugging preferences"
 msgstr "Foutopsporingsinstellingen"
 
-#: .././config.py:10766
+#: .././config.py:10797
 msgid ""
 "Debug messages are only visible in the terminal window (these settings are "
 "not saved)"
@@ -5342,24 +5354,24 @@ msgstr ""
 "Foutopsporingsberichten worden alleen getoond in het terminalvenster (deze "
 "instellingen worden niet bewaard)"
 
-#: .././config.py:10773
+#: .././config.py:10804
 msgid "Enable application debug messages (code in mainapp.py)"
 msgstr ""
 "Foutopsporingsberichten van gehele programma tonen (code in mainapp.py)"
 
-#: .././config.py:10782 .././config.py:10802
+#: .././config.py:10813 .././config.py:10833
 msgid "...but don't show timer debug messages"
 msgstr "...maar geen foutopsporingsberichten van de tijdklok tonen"
 
-#: .././config.py:10793
+#: .././config.py:10824
 msgid "Enable main winddow debug messages (code in mainwin.py)"
 msgstr "Foutopsporingsberichten van hoofdvenster tonen (code in mainwin.py)"
 
-#: .././config.py:10813
+#: .././config.py:10844
 msgid "Enabled downloader debug messages (code in downloads.py)"
 msgstr "Foutopsporingsberichten van downloader tonen (code in downloads.py)"
 
-#: .././config.py:10856
+#: .././config.py:10887
 msgid ""
 "Debugging messages are also visible if an empty file called debug.txt exists "
 "here:"
@@ -5367,122 +5379,122 @@ msgstr ""
 "Foutopsporingsberichten zijn tevens zichtbaar als er een leeg bestand "
 "genaamd debug.txt aanwezig is in:"
 
-#: .././config.py:10901
+#: .././config.py:10932
 msgid "_Device"
 msgstr "_Apparaat"
 
-#: .././config.py:10906
+#: .././config.py:10937
 msgid "Device preferences"
 msgstr "Apparaatinstellingen"
 
-#: .././config.py:10911
+#: .././config.py:10942
 msgid "Size of device (in Mb)"
 msgstr "Totale ruimte op apparaat (in mb)"
 
-#: .././config.py:10923
+#: .././config.py:10954
 msgid "Free space on device (in Mb)"
 msgstr "Vrije ruimte op apparaat (in mb)"
 
-#: .././config.py:10935
+#: .././config.py:10966
 msgid "Warn user if disk space is less than"
 msgstr "Waarschuwen als schijfruimte minder is dan"
 
-#: .././config.py:10953
+#: .././config.py:10984
 msgid "Halt downloads if disk space is less than"
 msgstr "Downloads onderbreken als schijfruimte minder is dan"
 
-#: .././config.py:10992
+#: .././config.py:11023
 msgid "Configuration preferences"
 msgstr "Configuratie-instellingen"
 
-#: .././config.py:10997
+#: .././config.py:11028
 msgid "Tartube configuration file loaded from:"
 msgstr "Het Tartube-configuratiebestand wordt geladen uit:"
 
-#: .././config.py:11016
+#: .././config.py:11047
 msgid "D_atabase"
 msgstr "D_atabank"
 
-#: .././config.py:11022
+#: .././config.py:11053
 msgid "Database preferences"
 msgstr "Databankinstellingen"
 
-#: .././config.py:11027
+#: .././config.py:11058
 msgid "Tartube data folder"
 msgstr "Tartube-gegevensmap"
 
-#: .././config.py:11039
+#: .././config.py:11070
 msgid "Add new database"
 msgstr "Nieuwe databank toevoegen"
 
-#: .././config.py:11041
+#: .././config.py:11072
 msgid "Change to a different data folder"
 msgstr "Kies een andere gegevensmap"
 
-#: .././config.py:11048
+#: .././config.py:11079
 msgid "Check and repair database"
 msgstr "Databank controleren en repareren"
 
-#: .././config.py:11051
+#: .././config.py:11082
 msgid "Check for inconsistencies, and repair them"
 msgstr "Controleer op fouten en herstel ze"
 
-#: .././config.py:11056
+#: .././config.py:11087
 msgid "Recent data folders"
 msgstr "Recente gegevensmappen"
 
-#: .././config.py:11070
+#: .././config.py:11101
 msgid "Switch to the selected data folder"
 msgstr "Gekozen gegevensmap gebruiken"
 
-#: .././config.py:11080
+#: .././config.py:11111
 msgid "Forget"
 msgstr "Wissen"
 
-#: .././config.py:11083
+#: .././config.py:11114
 msgid "Remove the selected data folder from the list"
 msgstr "Verwijder de geselecteerde map van de lijst"
 
-#: .././config.py:11092
+#: .././config.py:11123
 msgid "Forget all"
 msgstr "Alle mappen wissen"
 
-#: .././config.py:11095
+#: .././config.py:11126
 msgid "Forget every folder in this list (except the current one)"
 msgstr "Verwijder alle mappen van de lijst (behalve de huidige)"
 
-#: .././config.py:11108
+#: .././config.py:11139
 msgid "Move the selected folder up the list"
 msgstr "Geselecteerde map omhoog verplaatsen"
 
-#: .././config.py:11116
+#: .././config.py:11147
 msgid "Move the selected folder down the list"
 msgstr "Geselecteerde map omlaag verplaatsen"
 
-#: .././config.py:11144
+#: .././config.py:11175
 msgid ""
 "On startup, load the first database on the list (not the most recently-use "
 "one)"
 msgstr ""
 "Laad bij het opstarten de eerste databank op de lijst (niet de meest recente)"
 
-#: .././config.py:11154
+#: .././config.py:11185
 msgid "If one database is in use, try to load others"
 msgstr "Andere databank laden als huidige in gebruik is"
 
-#: .././config.py:11162
+#: .././config.py:11193
 msgid "Add new data directories to this list"
 msgstr "Gegevensmappen toevoegen aan lijst"
 
-#: .././config.py:11201
+#: .././config.py:11232
 msgid "_Backups"
 msgstr "_Back-ups"
 
-#: .././config.py:11205
+#: .././config.py:11236
 msgid "Backup preferences"
 msgstr "Back-upinstellingen"
 
-#: .././config.py:11210
+#: .././config.py:11241
 msgid ""
 "When saving a database file, Tartube makes a backup copy of it (in case "
 "something goes wrong)"
@@ -5490,173 +5502,173 @@ msgstr ""
 "Tijdens het opslaan van een databankbestand, maakt Tartube er een "
 "reservekopie van voor als er iets misgaat"
 
-#: .././config.py:11219
+#: .././config.py:11250
 msgid "Delete the backup file as soon as the save procedure is finished"
 msgstr "Back-upbestand verwijderen als opslaan voltooid is"
 
-#: .././config.py:11229
+#: .././config.py:11260
 msgid "Keep the backup file, replacing any previous backup file"
 msgstr "Back-upbestand behouden en vorige overschrijven"
 
-#: .././config.py:11240
+#: .././config.py:11271
 msgid ""
 "Make a new backup file once per day, after the day's first save procedure"
 msgstr ""
 "Eenmaal per dag een back-upbestand maken, één dag na de eerste keer opslaan"
 
-#: .././config.py:11251
+#: .././config.py:11282
 msgid "Make a new backup file for every save procedure"
 msgstr "Back-upbestand maken, elke keer na het opslaan"
 
-#: .././config.py:11300
+#: .././config.py:11331
 msgid "Automatic video deletion preferences"
 msgstr "Instellingen omtrent automatische videoverwijdering"
 
-#: .././config.py:11305
+#: .././config.py:11336
 msgid "Automatically delete downloaded videos after this many days"
 msgstr "Gedownloade video's automatisch verwijderen na x aantal dagen"
 
-#: .././config.py:11319
+#: .././config.py:11350
 msgid "...but only delete videos which have been watched"
 msgstr "...maar alleen bekeken video's"
 
-#: .././config.py:11343
+#: .././config.py:11374
 msgid "Video matching preferences"
 msgstr "Instellingen omtrent video-overeenkomsten"
 
-#: .././config.py:11348
+#: .././config.py:11379
 msgid "When matching videos on the filesystem:"
 msgstr "Bij het overeenkomen van video's op het bestandssysteem:"
 
-#: .././config.py:11354
+#: .././config.py:11385
 msgid "The video names must match exactly"
 msgstr "Alleen de videonamen overeen laten komen"
 
-#: .././config.py:11361
+#: .././config.py:11392
 msgid "The first # characters must match exactly"
 msgstr "Alleen eerste x aantal tekens overeen laten komen"
 
-#: .././config.py:11375
+#: .././config.py:11406
 msgid "Ignore the last # characters; the remaining name must match exactly"
 msgstr "Laatste x aantal tekens negeren en de rest overeen laten komen"
 
-#: .././config.py:11421
+#: .././config.py:11452
 msgid "_Temporary folders"
 msgstr "_Tijdelijke mappen"
 
-#: .././config.py:11427
+#: .././config.py:11458
 msgid "Temporary folder preferences"
 msgstr "Instellingen omtrent tijdelijke mappen"
 
-#: .././config.py:11432
+#: .././config.py:11463
 msgid "Empty temporary folders when Tartube shuts down"
 msgstr "Tijdelijke mappen legen na het afsluiten"
 
-#: .././config.py:11441
+#: .././config.py:11472
 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)"
 msgstr "(let op: tijdelijke mappen worden sowieso geleegd bij het openen)"
 
-#: .././config.py:11449
+#: .././config.py:11480
 msgid "Open temporary folders (on the desktop) when Tartube shuts down"
 msgstr "Tijdelijke mappen openen na het afsluiten"
 
-#: .././config.py:11487
+#: .././config.py:11518
 msgid "The Tartube database contains:"
 msgstr "De Tartube-databank bevat:"
 
-#: .././config.py:11547
+#: .././config.py:11578
 msgid "Custom folders"
 msgstr "Aangepaste mappen"
 
-#: .././config.py:11570
+#: .././config.py:11601
 msgid "Calculate"
 msgstr "Berekenen"
 
 #. Add this tab...
-#: .././config.py:11696
+#: .././config.py:11727
 msgid "_Windows"
 msgstr "_Vensters"
 
-#: .././config.py:11719
+#: .././config.py:11750
 msgid "_Main window"
 msgstr "_Hoofdvenster"
 
-#: .././config.py:11725
+#: .././config.py:11756
 msgid "Main window preferences"
 msgstr "Hoofdvensterinstellingen"
 
-#: .././config.py:11730
+#: .././config.py:11761
 msgid "Remember the size of the main window when shutting down"
 msgstr "Afmetingen van hoofdvenster onthouden bij afsluiten"
 
-#: .././config.py:11738
+#: .././config.py:11769
 msgid "Also remember the position of main window sliders"
 msgstr "Ook positie van schuifknoppen op hoofdvenster onthouden"
 
-#: .././config.py:11755
+#: .././config.py:11786
 msgid "Don't show the main window toolbar"
 msgstr "Geen werkbalk tonen op hoofdvenster"
 
-#: .././config.py:11763
+#: .././config.py:11794
 msgid "Don't show labels in the main window toolbar"
 msgstr "Geen werkbalklabels tonen op hoofdvenster"
 
-#: .././config.py:11781
+#: .././config.py:11812
 msgid ""
 "Replace stock icons with custom icons (in case stock icons are not visible)"
 msgstr ""
 "Standaardpictogrammen vervangen door aangepaste (als de "
 "standaardpictogrammen niet worden getoond)"
 
-#: .././config.py:11791
+#: .././config.py:11822
 msgid "Show tooltips for videos, channels, playlists and folders"
 msgstr "Hulpballonnen tonen bij video's, kanalen, afspeellijsten en mappen"
 
-#: .././config.py:11799
+#: .././config.py:11830
 msgid "Show errors/warnings in tooltips (but not in the Videos tab)"
 msgstr ""
 "Fouten/Waarschuwingen tonen in hulpballonnen (maar niet op het tabblad "
 "'Video's')"
 
-#: .././config.py:11817
+#: .././config.py:11848
 msgid "Disable the 'Download all' buttons in the toolbar and the Videos Tab"
 msgstr ""
 "'Alles downloaden'-knoppen op werkbalk en tabblad 'Video's' uitschakelen"
 
-#: .././config.py:11828
+#: .././config.py:11859
 msgid "In the Progress Tab, hide finished videos / channels / playlists"
 msgstr ""
 "Afgeronde video's, kanalen en afspeellijsten verbergen op voortgangstabblad"
 
-#: .././config.py:11837
+#: .././config.py:11868
 msgid "In the Progress Tab, show results in reverse order"
 msgstr "Resultaten in omgekeerde volgorde tonen op voortgangstabblad"
 
-#: .././config.py:11845
+#: .././config.py:11876
 msgid "When Tartube starts, automatically open the Classic Mode tab"
 msgstr "Automatisch opstarten in klassieke modus"
 
-#: .././config.py:11859
+#: .././config.py:11890
 msgid ""
 "In the Classic Mode Tab, when adding URLs, remove duplicates rather than "
 "retaining them"
 msgstr "Duplicaten verwijderen tijdens toevoegen van url's in klassieke modus"
 
-#: .././config.py:11873
+#: .././config.py:11904
 msgid "In the Errors/Warnings Tab, don't reset the tab text when it is clicked"
 msgstr ""
 "Herstel de tabbladtekst niet na aanklikken op het tabblad 'Fouten/"
 "Waarschuwingen'"
 
-#: .././config.py:11896
+#: .././config.py:11927
 msgid "Video Index (left side of the Videos Tab)"
 msgstr "Video-index (links van het tabblad 'Video's')"
 
-#: .././config.py:11902
+#: .././config.py:11933
 msgid "Show smaller icons in the Video Index"
 msgstr "Kleinere pictogrammen tonen in video-index"
 
-#: .././config.py:11912
+#: .././config.py:11943
 msgid ""
 "In the Video Index, show detailed statistics about the videos in each "
 "channel / playlist / folder"
@@ -5664,141 +5676,141 @@ msgstr ""
 "Uitgebreide statistieken tonen in de video-index, met informatie over elk "
 "kanaal, elke afspeellijst en elke map"
 
-#: .././config.py:11923
+#: .././config.py:11954
 msgid ""
 "After clicking on a folder, automatically expand/collapse the tree around it"
 msgstr "Boomstructuur van map automatisch in-/uitklappen na aanklikken"
 
-#: .././config.py:11934
+#: .././config.py:11965
 msgid "Expand the whole tree, not just the level beneath the clicked folder"
 msgstr "Boomstructuur volledig uitklappen na aanklikken"
 
-#: .././config.py:11955
+#: .././config.py:11986
 msgid "Video Catalogue (right side of the Videos Tab)"
 msgstr "Videocatalogus (rechts van het tabblad 'Video's')"
 
-#: .././config.py:11962
+#: .././config.py:11993
 msgid "Show 'today' and 'yesterday' as the date, when possible"
 msgstr "'Vandaag' en 'Gisteren' tonen als datum (indien mogelijk)"
 
-#: .././config.py:11972
+#: .././config.py:12003
 msgid "Draw a frame around each video"
 msgstr "Frame tekenen om elke video"
 
-#: .././config.py:11982
+#: .././config.py:12013
 msgid "Draw status icons for each video"
 msgstr "Statuspictogrammen tonen bij elke video"
 
-#: .././config.py:11991
+#: .././config.py:12022
 msgid "Thumbnail size (when videos are displayed on a grid)"
 msgstr "Miniatuurgrootte (als video's op een rooster worden getoond)"
 
-#: .././config.py:12019
+#: .././config.py:12050
 msgid "Show livestreams with a different background colour"
 msgstr "Andere achtergrondkleur gebruiken bij livestreams"
 
-#: .././config.py:12027
+#: .././config.py:12058
 msgid "Use same background colours for livestream and debut videos"
 msgstr ""
 "Dezelfde achtergrondkleur gebruiken voor livestream- en aanvangsvideo's"
 
-#: .././config.py:12055
+#: .././config.py:12086
 msgid "_Drag"
 msgstr "Ver_slepen"
 
-#: .././config.py:12059
+#: .././config.py:12090
 msgid "Drag and drop preferences"
 msgstr "Instellingen omtrent slepen-en-neerzetten"
 
-#: .././config.py:12065
+#: .././config.py:12096
 msgid "When dragging and dropping videos to an external application..."
 msgstr "Bij het verslepen van video's naar een extern programma..."
 
-#: .././config.py:12071
+#: .././config.py:12102
 msgid "Transfer the video's full file path"
 msgstr "Volledige videopad delen"
 
-#: .././config.py:12079
+#: .././config.py:12110
 msgid "Transfer the video's source URL"
 msgstr "Video-bronurl delen"
 
-#: .././config.py:12087
+#: .././config.py:12118
 msgid "Transfer the video's name"
 msgstr "Videonaam delen"
 
-#: .././config.py:12095
+#: .././config.py:12126
 msgid "Transfer the thumbnail's full file path"
 msgstr "Volledige videominiatuurpad delen"
 
-#: .././config.py:12111
+#: .././config.py:12142
 msgid "_System tray"
 msgstr "_Systeemvak"
 
-#: .././config.py:12117
+#: .././config.py:12148
 msgid "System tray preferences"
 msgstr "Systeemvakinstellingen"
 
-#: .././config.py:12122
+#: .././config.py:12153
 msgid "Show icon in system tray"
 msgstr "Systeemvakpictogram tonen"
 
-#: .././config.py:12131
+#: .././config.py:12162
 msgid "Close to the tray, rather than closing the application"
 msgstr "Minimaliseren naar systeemvak in plaats van afsluiten"
 
-#: .././config.py:12157
+#: .././config.py:12188
 msgid "D_ialogues"
 msgstr "D_ialoogvensters"
 
-#: .././config.py:12163
+#: .././config.py:12194
 msgid "Dialogue window preferences"
 msgstr "Dialoogvensterinstellingen"
 
-#: .././config.py:12168
+#: .././config.py:12199
 msgid "When adding channels/playlists, keep the dialogue window open"
 msgstr "Dialoogvenster openhouden na toevoegen van kanalen en afspeellijsten"
 
-#: .././config.py:12178
+#: .././config.py:12209
 msgid "When the dialogue window opens, add URLs from the system clipboard"
 msgstr "URL's van klembord toevoegen aan geopend dialoogvenster"
 
-#: .././config.py:12206
+#: .././config.py:12237
 msgid "_Errors/Warnings"
 msgstr "Fout_en/Waarschuwingen"
 
-#: .././config.py:12214
+#: .././config.py:12245
 msgid "Errors/Warnings tab preferences"
 msgstr "Instellingen omtrent fouten en waarschuwingen"
 
-#: .././config.py:12219
+#: .././config.py:12250
 msgid "Show Tartube error messages"
 msgstr "Tartube-foutmeldingen tonen"
 
-#: .././config.py:12227
+#: .././config.py:12258
 msgid "Show Tartube warning messages"
 msgstr "Tartube-waarschuwingen tonen"
 
-#: .././config.py:12235
+#: .././config.py:12266
 msgid "Show server error messages"
 msgstr "Serverfoutmeldingen tonen"
 
-#: .././config.py:12246
+#: .././config.py:12277
 msgid "Show server warning messages"
 msgstr "Serverwaarschuwingen tonen"
 
-#: .././config.py:12258
+#: .././config.py:12289
 msgid "Downloader error/warning preferences"
 msgstr "Instellingen omtrent downloadfouten/-waarschuwingen"
 
-#: .././config.py:12263
+#: .././config.py:12294
 msgid "TRANSLATOR'S NOTE: These error messages are always in English"
 msgstr "TRANSLATOR'S NOTE: These error messages are always in English"
 
-#: .././config.py:12267
+#: .././config.py:12298
 msgid "Ignore 'Child process exited with non-zero code' errors"
 msgstr "'Onderliggend proces is gestopt met niet-nulcode'-fouten negeren"
 
-#: .././config.py:12276
+#: .././config.py:12307
 msgid ""
 "Ignore 'Unable to download video data' and 'Unable to extract video data' "
 "errors"
@@ -5806,55 +5818,55 @@ msgstr ""
 "'Kan videogegevens niet ophalen' en 'Kan videogegevens niet extraheren' "
 "negeren"
 
-#: .././config.py:12286
+#: .././config.py:12317
 msgid "Ignore 'Did not get any data blocks' errors"
 msgstr "'Geen gegevensblokken verkregen' negeren"
 
-#: .././config.py:12295
+#: .././config.py:12326
 msgid "Ignore 'Requested formats are incompatible for merge' warnings"
 msgstr "'De opgevraagde formaten kunnen niet worden samengevoegd' negeren"
 
-#: .././config.py:12304
+#: .././config.py:12335
 msgid "Ignore 'No video formats found' errors"
 msgstr "'Geen videoformaten aangetroffen' negeren"
 
-#: .././config.py:12312
+#: .././config.py:12343
 msgid "Ignore 'There are no annotations to write' warnings"
 msgstr "'Geen weg te schrijven aantekeningen' negeren"
 
-#: .././config.py:12320
+#: .././config.py:12351
 msgid "Ignore 'Video doesn't have subtitles' warnings"
 msgstr "'De video bevat geen ondertiteling' negeren"
 
-#: .././config.py:12336
+#: .././config.py:12367
 msgid "_Websites"
 msgstr "_Websites"
 
-#: .././config.py:12344
+#: .././config.py:12375
 msgid "YouTube error/warning preferences"
 msgstr "Instellingen omtrent YouTube-fouten/-waarschuwingen van"
 
-#: .././config.py:12349
+#: .././config.py:12380
 msgid "Ignore YouTube copyright errors"
 msgstr "Copyrightfouten negeren"
 
-#: .././config.py:12357
+#: .././config.py:12388
 msgid "Ignore YouTube age-restriction errors"
 msgstr "Leeftijdsbeperkingen negeren"
 
-#: .././config.py:12365
+#: .././config.py:12396
 msgid "Ignore YouTube deletion by uploader errors"
 msgstr "'Verwijderd door uploader' negeren"
 
-#: .././config.py:12373
+#: .././config.py:12404
 msgid "Ignore YouTube payment errors"
 msgstr "Betaalfouten negeren"
 
-#: .././config.py:12382
+#: .././config.py:12413
 msgid "General preferences"
 msgstr "Algemene instellingen"
 
-#: .././config.py:12388
+#: .././config.py:12419
 msgid ""
 "Ignore any errors/warnings which match lines in this list (applies to all "
 "websites)"
@@ -5862,77 +5874,77 @@ msgstr ""
 "Alle fouten/waarschuwingen op deze lijst negeren (van toepassing op alle "
 "websites)"
 
-#: .././config.py:12402
+#: .././config.py:12433
 msgid "These are ordinary strings"
 msgstr "Dit zijn normale tekenreeksen"
 
-#: .././config.py:12409
+#: .././config.py:12440
 msgid "These are regular expressions (regexes)"
 msgstr "Dit zijn reguliere uitdrukkingen (regexes)"
 
 #. Add this tab...
-#: .././config.py:12438
+#: .././config.py:12469
 msgid "_Scheduling"
 msgstr "_Inplannen"
 
-#: .././config.py:12455
+#: .././config.py:12486
 msgid "_Start"
 msgstr "_Beginnen"
 
-#: .././config.py:12461
+#: .././config.py:12492
 msgid "Scheduled download preferences"
 msgstr "Planinstellingen omtrent downloads"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Priority"
 msgstr "Prioriteit"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Whole"
 msgstr "Geheel"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Shutdown"
 msgstr "Afsluiten"
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "D/L All"
 msgstr "Alles downloaden"
 
-#: .././config.py:12483
+#: .././config.py:12514
 msgid "Join mode"
 msgstr "Samenvoegmodus"
 
-#: .././config.py:12537 .././config.py:14468 .././config.py:14733
+#: .././config.py:12568 .././config.py:14499 .././config.py:14764
 msgid "Edit"
 msgstr "Bewerken"
 
-#: .././config.py:12564 .././config.py:14504 .././config.py:14769
+#: .././config.py:12595 .././config.py:14535 .././config.py:14800
 msgid "Delete"
 msgstr "Verwijderen"
 
-#: .././config.py:12632
+#: .././config.py:12663
 msgid "S_top"
 msgstr "A_fbreken"
 
-#: .././config.py:12638
+#: .././config.py:12669
 msgid "Scheduled stop preferences"
 msgstr "Planinstellingen omtrent afbreken"
 
-#: .././config.py:12643
+#: .././config.py:12674
 msgid "Stop all download operations after this much time"
 msgstr "Alle downloads afbreken na opgegeven verstreken tijd"
 
-#: .././config.py:12691
+#: .././config.py:12722
 msgid "Stop all download operations after this many videos"
 msgstr "Alle downloads afbreken na opgegeven aantal video's"
 
-#: .././config.py:12718
+#: .././config.py:12749
 msgid "Stop all download operations after this much disk space"
 msgstr ""
 "Alle downloads afbreken na opgegeven hoeveelheid gebruikte schijfruimte"
 
-#: .././config.py:12761
+#: .././config.py:12792
 msgid ""
 "N.B. Disk space is estimated. This setting does not apply to simulated "
 "downloads"
@@ -5940,31 +5952,31 @@ msgstr ""
 "Let op: de gebruikte schijfruimte is een schatting en is niet van toepassing "
 "op simulaties."
 
-#: .././config.py:12799
+#: .././config.py:12830
 msgid "_Performance"
 msgstr "_Prestaties"
 
-#: .././config.py:12807
+#: .././config.py:12838
 msgid "Performance limits"
 msgstr "Prestatiebeperkingen"
 
-#: .././config.py:12812
+#: .././config.py:12843
 msgid "Limit simultaneous downloads to"
 msgstr "Aantal gelijktijdige downloads beperken tot"
 
-#: .././config.py:12830
+#: .././config.py:12861
 msgid "Limit download speed to"
 msgstr "Downloadsnelheid beperken tot"
 
-#: .././config.py:12856
+#: .././config.py:12887
 msgid "Overriding video format options, limit video resolution to"
 msgstr "Videoresolutie gedwongen beperken tot"
 
-#: .././config.py:12878
+#: .././config.py:12909
 msgid "Time-saving settings"
 msgstr "Tijdbesparende instellingen"
 
-#: .././config.py:12884
+#: .././config.py:12915
 msgid ""
 "Stop checking/downloading a channel/playlist when it starts sending videos "
 "you already have"
@@ -5972,45 +5984,45 @@ msgstr ""
 "Kanalen/Afspeellijsten niet meer controleren na toevoegen van reeds "
 "aanwezige video's"
 
-#: .././config.py:12895
+#: .././config.py:12926
 msgid "Stop after this many videos (when checking)"
 msgstr "Afbreken na opgegeven aantal video's (bij controles)"
 
-#: .././config.py:12910
+#: .././config.py:12941
 msgid "Stop after this many videos (when downloading)"
 msgstr "Afbreken na opgegeven aantal video's (tijdens downloaden)"
 
-#: .././config.py:12941
+#: .././config.py:12972
 msgid "P_references"
 msgstr "I_nstellingen"
 
-#: .././config.py:12949
+#: .././config.py:12980
 msgid "URL flexibility preferences"
 msgstr "URL-flexibiliteitsinstellingen"
 
-#: .././config.py:12956
+#: .././config.py:12987
 msgid ""
 "If a video's URL represents a channel/playlist, not a video, don't download "
 "it"
 msgstr "Video niet ophalen als url naar een kanaal/afspeellijst leidt"
 
-#: .././config.py:12965
+#: .././config.py:12996
 msgid "...or, download multiple videos into the containing folder"
 msgstr "...of meerdere video's downloaden naar bijbehorende map"
 
-#: .././config.py:12975
+#: .././config.py:13006
 msgid "...or, create a new channel, and download the videos into that"
 msgstr "...of nieuw kanaal toevoegen en video's daarnaartoe downloaden"
 
-#: .././config.py:12986
+#: .././config.py:13017
 msgid "...or, create a new playlist, and download the videos into that"
 msgstr "...of nieuwe afspeellijst toevoegen en video's daarnaartoe downloaden"
 
-#: .././config.py:13018
+#: .././config.py:13049
 msgid "Missing video preferences"
 msgstr "Instellingen omtrent ontbrekende video's"
 
-#: .././config.py:13024
+#: .././config.py:13055
 msgid ""
 "Add videos which have been removed from a channel/playlist to the Missing "
 "Videos folder"
@@ -6018,55 +6030,55 @@ msgstr ""
 "Van kanaal/afspeellijst verwijderde video's toevoegen aan map 'Ontbrekende "
 "video's'"
 
-#: .././config.py:13035
+#: .././config.py:13066
 msgid "Only add videos that were uploaded within this many days"
 msgstr ""
 "Alleen video's toevoegen die zijn geüpload binnen het opgegeven aantal dagen"
 
-#: .././config.py:13076
+#: .././config.py:13107
 msgid "Invidious mirror"
 msgstr "Invidious-spiegelserver"
 
-#: .././config.py:13082
+#: .././config.py:13113
 msgid "To find an updated list of Invidious mirrors, use any search engine!"
 msgstr ""
 "Gebruik je favoriete zoekmachine om een lijst met Invidious-spiegelservers "
 "te vinden."
 
-#: .././config.py:13095 .././config.py:13407
+#: .././config.py:13126 .././config.py:13438
 msgid "Type the exact text that replaces youtube.com e.g."
 msgstr ""
 "Voer de letterlijke tekst in die youtube.com moet vervangen. Voorbeeld:"
 
-#: .././config.py:13121
+#: .././config.py:13152
 msgid "Download operation preferences"
 msgstr "Downloadactie-instellingen"
 
-#: .././config.py:13127
+#: .././config.py:13158
 msgid "Automatically update downloader before every download operation"
 msgstr "Downloader automatisch bijwerken vóór elke downloadactie"
 
-#: .././config.py:13139
+#: .././config.py:13170
 msgid "Automatically save files at the end of all operations"
 msgstr "Bestanden automatisch opslaan na afronden"
 
-#: .././config.py:13149
+#: .././config.py:13180
 msgid "For simulated downloads, don't check a video in a folder more than once"
 msgstr "Video's eenmalig controleren tijdens simulaties"
 
-#: .././config.py:13160
+#: .././config.py:13191
 msgid "If a download stalls, restart it after this many minutes"
 msgstr "Onderbroken downloads herstarten na opgegeven aantal minuten"
 
-#: .././config.py:13181
+#: .././config.py:13212
 msgid "If a network problem is detected, restart the download immediately"
 msgstr "Downloads direct herstarten na netwerkprobleem"
 
-#: .././config.py:13193
+#: .././config.py:13224
 msgid "Maximum restarts after a stalled download (0 for no maximum)"
 msgstr "Maximaal aantal herstartingen na onderbroken download (0 = onbeperkt)"
 
-#: .././config.py:13234
+#: .././config.py:13265
 msgid ""
 "Allow downloader to create its own archive file (so deleted videos are not "
 "re-downloaded)"
@@ -6074,17 +6086,17 @@ msgstr ""
 "Downloader toestaan eigen archiefbestand te maken (zodat verwijderde video's "
 "niet nogmaals worden gedownload)"
 
-#: .././config.py:13245
+#: .././config.py:13276
 msgid ""
 "Also create an archive file when downloading from the Classic Mode tab (not "
 "recommended)"
 msgstr "Archiefbestand maken bij gebruik van klassieke modus (niet aanbevolen)"
 
-#: .././config.py:13256
+#: .././config.py:13287
 msgid "When checking videos, apply a 60-second timeout"
 msgstr "Time-out van 60 seconden hanteren bij controles"
 
-#: .././config.py:13266
+#: .././config.py:13297
 msgid ""
 "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after "
 "downloading them"
@@ -6092,22 +6104,22 @@ msgstr ""
 ".webp-miniaturen converteren naar .jpg-miniaturen (middels FFmpeg) na het "
 "downloaden"
 
-#: .././config.py:13283
+#: .././config.py:13314
 msgid "_Custom"
 msgstr "_Aangepast"
 
-#: .././config.py:13288
+#: .././config.py:13319
 msgid "Custom download preferences"
 msgstr "Aangepaste downloadinstellingen"
 
-#: .././config.py:13294
+#: .././config.py:13325
 msgid ""
 "In custom downloads, download each video independently of its channel or "
 "playlist"
 msgstr ""
 "Elke video los van kanaal of afspeellijst downloaden in aangepaste downloads"
 
-#: .././config.py:13305
+#: .././config.py:13336
 msgid ""
 "In custom downloads, apply a delay after each video/channel/playlist is "
 "download"
@@ -6115,74 +6127,74 @@ msgstr ""
 "Vertraging toepassing na downloaden elk kanaal, elke video of afspeellijst "
 "in aangepaste downloads"
 
-#: .././config.py:13315
+#: .././config.py:13346
 msgid "Maximum delay to apply (in minutes)"
 msgstr "Maximale vertraging (in minuten)"
 
-#: .././config.py:13332
+#: .././config.py:13363
 msgid "Minimum delay to apply (in minutes; randomises the actual delay)"
 msgstr ""
 "Minimale vertraging (in minuten - dit leidt tot een willekeurige vertraging)"
 
-#: .././config.py:13355
+#: .././config.py:13386
 msgid "In custom downloads, obtain a YouTube video from the original website"
 msgstr ""
 "YouTube-video van oorspronkelijke website ophalen in aangepaste downloads"
 
-#: .././config.py:13365
+#: .././config.py:13396
 msgid "In custom downloads, obtain the video from HookTube rather than YouTube"
 msgstr ""
 "Video van HookTube ophalen in plaats van YouTube in aangepaste downloads"
 
-#: .././config.py:13377
+#: .././config.py:13408
 msgid ""
 "In custom downloads, obtain the video from Invidious rather than YouTube"
 msgstr ""
 "Video van Invidious ophalen in plaats van YouTube in aangepaste downloads"
 
-#: .././config.py:13389
+#: .././config.py:13420
 msgid ""
 "In custom downloads, obtain the video from the YouTube front-end specified "
 "below"
 msgstr "Video middels ander YouTube-frontend ophalen in aangepaste downloads"
 
-#: .././config.py:13489
+#: .././config.py:13520
 msgid "Livestream preferences (compatible websites only)"
 msgstr "Livestreaminstellingen (alleen compatibele websites)"
 
-#: .././config.py:13495
+#: .././config.py:13526
 msgid "Detect livestreams announced within this many days"
 msgstr "Livestreams binnen opgegeven aantal dagen detecteren"
 
-#: .././config.py:13510
+#: .././config.py:13541
 msgid "How often to check the status of livestreams (in minutes)"
 msgstr ""
 "Hoe vaak de livestreamstatussen moeten worden gecontroleerd (in minuten)"
 
-#: .././config.py:13529
+#: .././config.py:13560
 msgid "Check more frequently when a livestream is due to start"
 msgstr "Vaker controleren als livestream op het punt staat te beginnen"
 
-#: .././config.py:13572
+#: .././config.py:13603
 msgid "Broadcast preferences (compatible websites only)"
 msgstr "Uitzendinstellingen (alleen compatibele websites)"
 
-#: .././config.py:13579
+#: .././config.py:13610
 msgid ""
 "Use Youtube Stream Capture to download broadcasting livestreams (requires "
 "aria2)"
 msgstr ""
 "YouTube-streamopname gebruiken om livestreams te downloaden (vereist aria2)"
 
-#: .././config.py:13589
+#: .././config.py:13620
 msgid "Timeout after this many minutes of inactivity"
 msgstr "Time-out na opgegeven aantal minuten inactiviteit"
 
-#: .././config.py:13603
+#: .././config.py:13634
 msgid "Number of restarts after a timeout"
 msgstr "Aantal herstartingen na time-out"
 
-#: .././config.py:13618
+#: .././config.py:13649
 msgid ""
 "Bypass usual limits on simultaneous downloads, so that all broadcasts can be "
 "downloaded"
@@ -6190,127 +6202,127 @@ msgstr ""
 "Gebruikelijke beperkingen omzeilen tijdens gelijktijdige downloads om alle "
 "livestreams te downloaden"
 
-#: .././config.py:13659
+#: .././config.py:13690
 msgid "_Proxies"
 msgstr "_Proxy's"
 
-#: .././config.py:13665
+#: .././config.py:13696
 msgid "Proxies"
 msgstr "Proxy's"
 
-#: .././config.py:13672
+#: .././config.py:13703
 msgid ""
 "During a download operation, Tartube will cycle betwween the proxies in this "
 "list"
 msgstr "Tijdens het downloaden schakelt Tartube tussen proxy's op deze lijst"
 
-#: .././config.py:13693
+#: .././config.py:13724
 msgid "_Actions"
 msgstr "_Acties"
 
-#: .././config.py:13702
+#: .././config.py:13733
 msgid "Livestream actions (can be toggled for individual videos)"
 msgstr "Livestreamacties (deze kunnen per video worden ingesteld)"
 
-#: .././config.py:13709
+#: .././config.py:13740
 msgid "(currently disabled on MS Windows)"
 msgstr "(momenteel uitgeschakeld op Windows)"
 
-#: .././config.py:13714
+#: .././config.py:13745
 msgid "When a livestream starts, show a desktop notification"
 msgstr "Melding tonen als een livestream begint"
 
-#: .././config.py:13728
+#: .././config.py:13759
 msgid "When a livestream starts, sound an alarm"
 msgstr "Geluid afspelen als een livestream begint"
 
-#: .././config.py:13751
+#: .././config.py:13782
 msgid "Plays the selected sound effect"
 msgstr "Gekozen geluidseffect afspelen"
 
-#: .././config.py:13758
+#: .././config.py:13789
 msgid "When a livestream starts, open it in the system's web browser"
 msgstr "Livestream openen in webbrowser zodra deze begint"
 
-#: .././config.py:13770
+#: .././config.py:13801
 msgid "When a livestream starts, begin downloading it immediately"
 msgstr "Downloaden starten als de livestream begint"
 
-#: .././config.py:13796
+#: .././config.py:13827
 msgid "Desktop notification preferences"
 msgstr "Meldingsinstellingen"
 
-#: .././config.py:13803
+#: .././config.py:13834
 msgid "Show a dialogue window at the end of an operation"
 msgstr "Dialoogvenster tonen na afronden van acties"
 
-#: .././config.py:13828
+#: .././config.py:13859
 msgid "Don't notify the user at the end of an operation"
 msgstr "Geen melding tonen na afronden van acties"
 
-#: .././config.py:13882
+#: .././config.py:13913
 msgid "_Forks"
 msgstr "A_fsplitsingen"
 
-#: .././config.py:13888
+#: .././config.py:13919
 msgid "Forks of youtube-dl"
 msgstr "Afsplitsingen van youtube-dl"
 
-#: .././config.py:13917
-msgid "Use youtube-dlc"
-msgstr "youtube-dlc gebruiken"
+#: .././config.py:13948
+msgid "Use yt-dlp"
+msgstr ""
 
-#: .././config.py:13946
+#: .././config.py:13977
 msgid "Use youtube-dl"
 msgstr "youtube-dl gebruiken"
 
-#: .././config.py:13974
+#: .././config.py:14005
 msgid "Use a different fork of youtube-dl:"
 msgstr "Andere afsplitsing van youtube-dl gebruiken:"
 
-#: .././config.py:14051
+#: .././config.py:14082
 msgid "_File paths"
 msgstr "_Bestandspaden"
 
-#: .././config.py:14058
+#: .././config.py:14089
 msgid "Downloader file paths"
 msgstr "Bestandspaden van downloader"
 
-#: .././config.py:14064
+#: .././config.py:14095
 msgid "Path to the executable"
 msgstr "Pad naar uitvoerbaar bestand"
 
 #. (Signal connect appears below)
-#: .././config.py:14070 .././config.py:14218 .././config.py:14259
-#: .././config.py:14329 .././config.py:20068
+#: .././config.py:14101 .././config.py:14249 .././config.py:14290
+#: .././config.py:14360 .././config.py:20098
 msgid "Use default path"
 msgstr "Standaardpad gebruiken"
 
-#: .././config.py:14075 .././config.py:20080
+#: .././config.py:14106 .././config.py:20110
 msgid "Use local path"
 msgstr "Lokaal pad gebruiken"
 
-#: .././config.py:14079
+#: .././config.py:14110
 msgid "Use custom path"
 msgstr ""
 
-#: .././config.py:14087 .././config.py:20094
+#: .././config.py:14118 .././config.py:20124
 msgid "Use PyPI path"
 msgstr "PyPI-pad gebruiken"
 
-#: .././config.py:14138
+#: .././config.py:14169
 msgid "Command for update operations"
 msgstr "Opdracht voor bijwerkacties"
 
-#: .././config.py:14186
+#: .././config.py:14217
 msgid "_FFmpeg / AVConv"
 msgstr "_FFmpeg/AVConv"
 
-#: .././config.py:14194
+#: .././config.py:14225
 msgid "Post-processing file paths"
 msgstr "Naverwerkingsbestandspaden"
 
-#: .././config.py:14199
+#: .././config.py:14230
 msgid ""
 "You only need to set these paths if Tartube cannot find FFmpeg / AVConv "
 "automatically"
@@ -6318,31 +6330,31 @@ msgstr ""
 "Je hoeft deze paden alleen in te stellen als Tartube FFmpeg of AVConv niet "
 "automatisch heeft aangetroffen"
 
-#: .././config.py:14206
+#: .././config.py:14237
 msgid "Path to the FFmpeg executable"
 msgstr "Pad naar uitvoerbaar FFmpeg-bestand"
 
-#: .././config.py:14233
+#: .././config.py:14264
 msgid "Install from main menu"
 msgstr "Installeren vanuit hoofdmenu"
 
-#: .././config.py:14247
+#: .././config.py:14278
 msgid "Path to the AVConv executable"
 msgstr "Pad naar uitvoerbaar AVConv-bestand"
 
-#: .././config.py:14274
+#: .././config.py:14305
 msgid "Not supported on MS Windows"
 msgstr "Wordt niet ondersteund op Windows"
 
-#: .././config.py:14297
+#: .././config.py:14328
 msgid "_Stream Capture"
 msgstr "_Streamopname"
 
-#: .././config.py:14305
+#: .././config.py:14336
 msgid "Youtube Stream Capture file path"
 msgstr "Bestandspad naar YouTube-streamopname"
 
-#: .././config.py:14310
+#: .././config.py:14341
 msgid ""
 "Tartube includes a copy of this script, but you can use a different copy, if "
 "you want"
@@ -6350,246 +6362,246 @@ msgstr ""
 "Tartube levert een kopie van dit script mee, maar als je wilt kun je een "
 "andere kopie gebruiken"
 
-#: .././config.py:14317
+#: .././config.py:14348
 msgid "Path to the YT Stream Capture executable"
 msgstr "Pad naar uitvoerbaar bestand van YouTube-streamopname"
 
-#: .././config.py:14375
+#: .././config.py:14406
 msgid "_Download options"
 msgstr "Download_opties"
 
-#: .././config.py:14382
+#: .././config.py:14413
 msgid "List of download options managers"
 msgstr "Lijst met downloadoptiebeheerders"
 
-#: .././config.py:14402
+#: .././config.py:14433
 msgid "Classic Mode"
 msgstr "Klassieke modus"
 
-#: .././config.py:14403
+#: .././config.py:14434
 msgid "Applied to media"
 msgstr "Toegepast op media"
 
-#: .././config.py:14477 .././config.py:14742
+#: .././config.py:14508 .././config.py:14773
 msgid "Export"
 msgstr "Exporteren"
 
-#: .././config.py:14486 .././config.py:14751
+#: .././config.py:14517 .././config.py:14782
 msgid "Clone"
 msgstr "Klonen"
 
-#: .././config.py:14495
+#: .././config.py:14526
 msgid "Use in Classic Mode tab"
 msgstr "Toevoegen aan klassieke modus"
 
-#: .././config.py:14520 .././config.py:14785
+#: .././config.py:14551 .././config.py:14816
 msgid "Refresh list"
 msgstr "Lijst verversen"
 
-#: .././config.py:14601
+#: .././config.py:14632
 msgid "_Preferences"
 msgstr "_Instellingen"
 
-#: .././config.py:14608
+#: .././config.py:14639
 msgid "Download options preferences"
 msgstr "Downloadoptie-instellingen"
 
-#: .././config.py:14614
+#: .././config.py:14645
 msgid ""
 "When applying download options to something, clone the general download "
 "options"
 msgstr "Algemene downloadopties klonen bij toepassing van downloadopties"
 
-#: .././config.py:14625
+#: .././config.py:14656
 msgid "After downloading a video, destroy its download options"
 msgstr "Downloadopties vergeten na downloaden van video's"
 
-#: .././config.py:14642
+#: .././config.py:14673
 msgid "_FFmpeg options"
 msgstr "_FFmpeg-opties"
 
-#: .././config.py:14649
+#: .././config.py:14680
 msgid "List of FFmpeg options managers"
 msgstr "Lijst met FFmpeg-optiebeheerders"
 
-#: .././config.py:14669
+#: .././config.py:14700
 msgid "Current"
 msgstr "Huidige"
 
-#: .././config.py:14760
+#: .././config.py:14791
 msgid "Use these options"
 msgstr "Deze opties gebruiken"
 
 #. Add this tab...
-#: .././config.py:14851
+#: .././config.py:14882
 msgid "O_utput"
 msgstr "_Uitvoer"
 
-#: .././config.py:14870
+#: .././config.py:14901
 msgid "_Output Tab"
 msgstr "_Uitvoertabblad"
 
-#: .././config.py:14878
+#: .././config.py:14909
 msgid "Output Tab preferences"
 msgstr "Instellingen omtrent uitvoertabblad"
 
-#: .././config.py:14883
+#: .././config.py:14914
 msgid "Display downloader system commands in the Output Tab"
 msgstr "Systeemopdrachten van downloader tonen op tabblad 'Uitvoer'"
 
-#: .././config.py:14892
+#: .././config.py:14923
 msgid "Display output from downloader's STDOUT in the Output Tab"
 msgstr "STDOUT-uitvoer van downloader tonen op tabblad 'Uitvoer'"
 
-#: .././config.py:14901 .././config.py:15063
+#: .././config.py:14932 .././config.py:15094
 msgid "...but don't write each video's JSON data"
 msgstr "...maar schrijf geen json-gegevens van elke video weg"
 
-#: .././config.py:14912 .././config.py:15074
+#: .././config.py:14943 .././config.py:15105
 msgid "...but don't write each video's download progress"
 msgstr "...maar schrijf geen downloadvoortgang van elke video weg"
 
-#: .././config.py:14931
+#: .././config.py:14962
 msgid "Display output from downloader's STDERR in the Output Tab"
 msgstr "STDERR-uitvoer van downloader tonen op tabblad 'Uitvoer'"
 
-#: .././config.py:14940
+#: .././config.py:14971
 msgid "Limit the size of Output Tab pages to"
 msgstr "Aantal pagina's op tabblad 'Uitvoer' beperken tot"
 
-#: .././config.py:14961
+#: .././config.py:14992
 msgid "Empty pages in the Output Tab at the start of every operation"
 msgstr "Pagina's op tabblad 'Uitvoer' legen na elke actie"
 
-#: .././config.py:14971
+#: .././config.py:15002
 msgid ""
 "Show a summary of active threads (changes are applied when Tartube restarts)"
 msgstr ""
 "Samenvatting van actieve processen tonen (herstart om deze wijziging toe te "
 "passen)"
 
-#: .././config.py:14983
+#: .././config.py:15014
 msgid "During an update operation, automatically switch to the Output tab"
 msgstr "Automatisch overschakelen naar tabblad 'Uitvoer' tijdens bijwerken"
 
-#: .././config.py:14994
+#: .././config.py:15025
 msgid "During a refresh operation, show all matching videos in the Output Tab"
 msgstr ""
 "Alle overeenkomende video's tonen op tabblad 'Uitvoer' tijdens bijwerken"
 
-#: .././config.py:15005
+#: .././config.py:15036
 msgid "...also show all non-matching videos"
 msgstr "...en ook niet-overeenkomende video's tonen"
 
-#: .././config.py:15034
+#: .././config.py:15065
 msgid "_Terminal window"
 msgstr "_Terminalvenster"
 
-#: .././config.py:15040
+#: .././config.py:15071
 msgid "Terminal window preferences"
 msgstr "Terminalvensterinstellingen"
 
-#: .././config.py:15045
+#: .././config.py:15076
 msgid "Write downloader system commands to the terminal window"
 msgstr "Systeemopdrachten van downloader tonen in terminalvenster"
 
-#: .././config.py:15054
+#: .././config.py:15085
 msgid "Write output from downloader's STDOUT to the terminal window"
 msgstr "STDOUT-uitvoer van downloader tonen in terminalvenster"
 
-#: .././config.py:15096
+#: .././config.py:15127
 msgid "Write output from downloader's STDERR to the terminal window"
 msgstr "STDERR-uitvoer van downloader tonen in terminalvenster"
 
-#: .././config.py:15115
+#: .././config.py:15146
 msgid "_Both"
 msgstr "_Beide"
 
-#: .././config.py:15120
+#: .././config.py:15151
 msgid ""
 "Special preferences (applies to both the Output Tab and the terminal window)"
 msgstr ""
 "Speciale instellingen (van toepassing op het tabblad 'Uitvoer' en het "
 "terminalvenster)"
 
-#: .././config.py:15127
+#: .././config.py:15158
 msgid "Downloader writes verbose output (youtube-dl debugging mode)"
 msgstr "Uitgebreide uitvoer van downloader (youtube-dl-foutopsporingsmodus)"
 
-#: .././config.py:15136
+#: .././config.py:15167
 msgid "Youtube Stream Capture writes verbose output"
 msgstr "Uitgebreide uitvoer van streamopname"
 
-#: .././config.py:16053
+#: .././config.py:16084
 msgid "Are you sure you want to create a new database at this location?"
 msgstr ""
 "Weet je zeker dat je een nieuwe databank wilt aanmaken op deze locatie?"
 
-#: .././config.py:16160
+#: .././config.py:16191
 msgid "Are you sure you want to forget this database?"
 msgstr "Weet je zeker dat je deze databank wilt wissen?"
 
-#: .././config.py:16195
+#: .././config.py:16226
 msgid "Are you sure you want to forget all databases except the current one?"
 msgstr "Weet je zeker dat je alle databanken, behalve de huidige, wilt wissen?"
 
-#: .././config.py:16399
+#: .././config.py:16430
 msgid "No database exists at this location:"
 msgstr "Er is geen databank op deze locatie:"
 
-#: .././config.py:16401
+#: .././config.py:16432
 msgid "Do you want to create a new one?"
 msgstr "Wil je een nieuwe aanmaken?"
 
-#: .././config.py:17041
+#: .././config.py:17072
 msgid "The current options manager cannot be deleted"
 msgstr "De huidige optiebeheerder kan niet worden verwijderd"
 
-#: .././config.py:17049 .././config.py:18049
+#: .././config.py:17080 .././config.py:18080
 msgid "Are you sure you want to delete this options manager?"
 msgstr "Weet je zeker dat je deze optiebeheerder wilt verwijderen?"
 
-#: .././config.py:17243 .././config.py:17590 .././config.py:19074
+#: .././config.py:17274 .././config.py:17621 .././config.py:19105
 msgid "The new setting will be applied when Tartube restarts"
 msgstr "Herstart Tartube om de instellingen toe te passen"
 
-#: .././config.py:18041
+#: .././config.py:18072
 msgid "The default options manager cannot be deleted"
 msgstr "De standaard optiebeheerder kan niet worden verwijderd"
 
-#: .././config.py:18736
+#: .././config.py:18767
 msgid "There is already a scheduled download with that name"
 msgstr "Er is al een ingeplande download met die naam"
 
-#: .././config.py:18783
+#: .././config.py:18814
 msgid "Are you sure you want to delete this scheduled download?"
 msgstr "Weet je zeker dat je deze ingeplande download wilt verwijderen?"
 
-#: .././config.py:18951
+#: .././config.py:18982
 msgid "Please select the AVConv executable"
 msgstr "Kies het uitvoerbare AVConv-bestand"
 
-#: .././config.py:18984
+#: .././config.py:19015
 msgid "Please select the FFmpeg executable"
 msgstr "Kies het uitvoerbare FFmpeg-bestand"
 
-#: .././config.py:19017
+#: .././config.py:19048
 msgid "Please select the Youtube Stream Capture executable"
 msgstr "Kies het uitvoerbare YouTube-streamopnamebestand"
 
-#: .././config.py:19807
+#: .././config.py:19837
 msgid "Select the youtube-dl-compatible executable"
 msgstr ""
 
-#: .././config.py:19991
+#: .././config.py:20021
 msgid "Database file not loaded"
 msgstr "Geen databank geladen"
 
-#: .././config.py:20011
+#: .././config.py:20041
 msgid "Did not try to load the database file"
 msgstr "Niet geprobeerd om de databank te laden"
 
-#: .././config.py:20036
+#: .././config.py:20066
 msgid "Database file loaded"
 msgstr "Databank geladen"
 
@@ -6658,54 +6670,54 @@ msgstr "Bezig met controleren van rss-feed"
 msgid "Cannot download videos in a private folder"
 msgstr "Video's kunnen niet worden gedownload naar privémappen"
 
-#: .././downloads.py:2986 .././downloads.py:5243
+#: .././downloads.py:2986 .././downloads.py:5256
 msgid "Download did not start"
 msgstr "Downloaden is niet begonnen"
 
-#: .././downloads.py:2994 .././downloads.py:5255 .././info.py:364
+#: .././downloads.py:2994 .././downloads.py:5268 .././info.py:364
 #: .././updates.py:278 .././updates.py:476
 msgid "Child process exited with non-zero code: {}"
 msgstr "Onderliggend proces is gestopt met niet-nulcode: {}"
 
-#: .././downloads.py:3108 .././downloads.py:4060
+#: .././downloads.py:3108 .././downloads.py:4072
 msgid ""
 "This video has a URL that points to a channel or a playlist, not a video"
 msgstr ""
 "Deze video bevat een url die leidt naar een kanaal of afspeellijst in plaats "
 "van een video"
 
-#: .././downloads.py:3937 .././downloads.py:3951
+#: .././downloads.py:3949 .././downloads.py:3963
 msgid "Simulated download of:"
 msgstr "Gesimuleerde download van:"
 
-#: .././downloads.py:3959
+#: .././downloads.py:3971
 msgid "Simulated download of video with unprintable characters"
 msgstr "Gesimuleerde videodownload met onleesbare tekens"
 
 #. This object creates more messages for the Output Tab and/or terminal,
 #. than downloads.VideoDownloader would do, as the output generated by
 #. Youtube Stream Capture is not easy for the user to interpret
-#: .././downloads.py:5134
+#: .././downloads.py:5147
 msgid "Tartube is starting the stream capture..."
 msgstr "Bezig met starten van streamopname..."
 
-#: .././downloads.py:5152
+#: .././downloads.py:5165
 msgid "Could not create a destination directory, capture halted"
 msgstr "De bestemming kan niet worden aangemaakt - de opname is onderbroken"
 
-#: .././downloads.py:5173 .././downloads.py:5198
+#: .././downloads.py:5186 .././downloads.py:5211
 msgid "Youtube Stream Capture script not found:"
 msgstr "Geen YouTube-streamopnamesscript aangetroffen:"
 
-#: .././downloads.py:5247
+#: .././downloads.py:5260
 msgid "Failed to capture the livestream"
 msgstr "De livestream kan niet worden opgenomen"
 
-#: .././downloads.py:5251
+#: .././downloads.py:5264
 msgid "Stream capture terminated"
 msgstr "Streamopname afgebroken"
 
-#: .././downloads.py:5261
+#: .././downloads.py:5274
 msgid ""
 "Stream captured terminated without downloading any video segments "
 "(indicating an error with the stream)"
@@ -6714,47 +6726,47 @@ msgstr ""
 "(dit duidt op een fout met de stream)"
 
 #. Capture successful
-#: .././downloads.py:5277
+#: .././downloads.py:5290
 msgid "Stream capture successful"
 msgstr "De stream is opgenomen"
 
 #. Show a confirmation message
-#: .././downloads.py:5307
+#: .././downloads.py:5320
 msgid "Merging file segments..."
 msgstr "Bezig met samenvoegen..."
 
-#: .././downloads.py:5327
+#: .././downloads.py:5340
 msgid "Segment merge did not start"
 msgstr "Het samenvoegen is niet begonnen"
 
-#: .././downloads.py:5338
+#: .././downloads.py:5351
 msgid "Segment merge completed, but path not detected"
 msgstr "Het samenvoegen is voltooid, maar het pad is niet aangetroffen"
 
-#: .././downloads.py:5348
+#: .././downloads.py:5361
 msgid "Segment merge completed, but output file not found"
 msgstr ""
 "Het samenvoegen is voltooid, maar het uitvoerbestand is niet aangetroffen"
 
-#: .././downloads.py:5369
+#: .././downloads.py:5382
 msgid "File moved to:"
 msgstr "Het bestand is verplaatst naar:"
 
-#: .././downloads.py:5374
+#: .././downloads.py:5387
 msgid "Livestream download is complete"
 msgstr "De livestream is gedownload"
 
-#: .././downloads.py:5379
+#: .././downloads.py:5392
 msgid "Failed to move output file"
 msgstr "Het uitvoerbestand kan niet worden verplaatst"
 
-#: .././downloads.py:5548
+#: .././downloads.py:5561
 #, python-brace-format
 msgid "Stream capture is frozen, trying again (restart #{0})"
 msgstr ""
 "De streamopname is vastgelopen - er wordt opnieuw begonnen (#{0} herstarten)"
 
-#: .././downloads.py:5555
+#: .././downloads.py:5568
 msgid "Stream capture is frozen, giving up"
 msgstr "De streamopname is vastgelopen - de opname wordt afgebroken"
 
@@ -7340,6 +7352,21 @@ msgstr "Bezig met starten van bijwerkactie om te installeren/bij te werken "
 msgid "Update did not start"
 msgstr "Het bijwerken is niet gestart"
 
+#~ msgid "Keep the description file after Tartube shuts down"
+#~ msgstr "Omschrijvingsbestand behouden na afsluiten"
+
+#~ msgid "Keep the metadata file after Tartube shuts down"
+#~ msgstr "Metagegevensbestand behouden na afsluiten"
+
+#~ msgid "Keep the annotations file after Tartube shuts down"
+#~ msgstr "Aantekeningenbestand behouden na afsluiten"
+
+#~ msgid "Keep the thumbnail file after Tartube shuts down"
+#~ msgstr "Miniatuurbestand behouden na afsluiten"
+
+#~ msgid "Use youtube-dlc"
+#~ msgstr "youtube-dlc gebruiken"
+
 #~ msgid "Installing"
 #~ msgstr "Bezig met installeren..."
 
diff --git a/nsis/tartube_install_32bit.nsi b/nsis/tartube_install_32bit.nsi
index 8a625da..5eec985 100644
--- a/nsis/tartube_install_32bit.nsi
+++ b/nsis/tartube_install_32bit.nsi
@@ -1,4 +1,4 @@
-# Tartube v2.3.097 installer script for MS Windows
+# Tartube v2.3.110 installer script for MS Windows
 #
 # Copyright (C) 2019-2021 A S Lewis
 #
@@ -249,7 +249,7 @@
 
     ;Name and file
     Name "Tartube"
-    OutFile "install-tartube-2.3.097-32bit.exe"
+    OutFile "install-tartube-2.3.110-32bit.exe"
 
     ;Default installation folder
     InstallDir "$LOCALAPPDATA\Tartube"
@@ -352,7 +352,7 @@ Section "Tartube" SecClient
 #        "Publisher" "A S Lewis"
 #    WriteRegStr HKLM \
 #        "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tartube" \
-#        "DisplayVersion" "2.3.097"
+#        "DisplayVersion" "2.3.110"
 
     # Create uninstaller
     WriteUninstaller "$INSTDIR\Uninstall.exe"
diff --git a/nsis/tartube_install_64bit.nsi b/nsis/tartube_install_64bit.nsi
index f6b9320..362ca50 100644
--- a/nsis/tartube_install_64bit.nsi
+++ b/nsis/tartube_install_64bit.nsi
@@ -1,4 +1,4 @@
-# Tartube v2.3.097 installer script for MS Windows
+# Tartube v2.3.110 installer script for MS Windows
 #
 # Copyright (C) 2019-2021 A S Lewis
 #
@@ -249,7 +249,7 @@
 
     ;Name and file
     Name "Tartube"
-    OutFile "install-tartube-2.3.097-64bit.exe"
+    OutFile "install-tartube-2.3.110-64bit.exe"
 
     ;Default installation folder
     InstallDir "$LOCALAPPDATA\Tartube"
@@ -352,7 +352,7 @@ Section "Tartube" SecClient
 #        "Publisher" "A S Lewis"
 #    WriteRegStr HKLM \
 #        "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tartube" \
-#        "DisplayVersion" "2.3.097"
+#        "DisplayVersion" "2.3.110"
 
     # Create uninstaller
     WriteUninstaller "$INSTDIR\Uninstall.exe"
diff --git a/pack/bin/no_download/tartube b/pack/bin/no_download/tartube
index b1ff7b9..b7f0702 100644
--- a/pack/bin/no_download/tartube
+++ b/pack/bin/no_download/tartube
@@ -42,8 +42,8 @@ import mainapp
 
 # 'Global' variables
 __packagename__ = 'tartube'
-__version__ = '2.3.097'
-__date__ = '16 Feb 2021'
+__version__ = '2.3.110'
+__date__ = '28 Feb 2021'
 __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis'
 __license__ = """
 Copyright \xa9 2019-2021 A S Lewis.
diff --git a/pack/bin/pkg/tartube b/pack/bin/pkg/tartube
index ef14d9d..8e7e4f3 100644
--- a/pack/bin/pkg/tartube
+++ b/pack/bin/pkg/tartube
@@ -42,8 +42,8 @@ import mainapp
 
 # 'Global' variables
 __packagename__ = 'tartube'
-__version__ = '2.3.097'
-__date__ = '16 Feb 2021'
+__version__ = '2.3.110'
+__date__ = '28 Feb 2021'
 __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis'
 __license__ = """
 Copyright \xa9 2019-2021 A S Lewis.
diff --git a/pack/bin/strict/tartube b/pack/bin/strict/tartube
index a6ad69f..9d05c5b 100644
--- a/pack/bin/strict/tartube
+++ b/pack/bin/strict/tartube
@@ -42,8 +42,8 @@ import mainapp
 
 # 'Global' variables
 __packagename__ = 'tartube'
-__version__ = '2.3.097'
-__date__ = '16 Feb 2021'
+__version__ = '2.3.110'
+__date__ = '28 Feb 2021'
 __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis'
 __license__ = """
 Copyright \xa9 2019-2021 A S Lewis.
diff --git a/pack/tartube.1 b/pack/tartube.1
index f9e0a37..7efff2e 100644
--- a/pack/tartube.1
+++ b/pack/tartube.1
@@ -1,4 +1,4 @@
-.TH man 1 "16 Feb 2021" "2.3.097" "tartube man page"
+.TH man 1 "28 Feb 2021" "2.3.110" "tartube man page"
 .SH NAME
 tartube \- GUI front-end for youtube-dl
 .SH SYNOPSIS
diff --git a/pack/tartube.desktop b/pack/tartube.desktop
index aea3f7d..1d8642d 100644
--- a/pack/tartube.desktop
+++ b/pack/tartube.desktop
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Name=Tartube
-Version=2.3.097
+Version=2.3.110
 Exec=tartube
 Icon=tartube
 Type=Application
diff --git a/setup.py b/setup.py
index 37dc30c..78afe93 100644
--- a/setup.py
+++ b/setup.py
@@ -28,8 +28,8 @@ import sys
 
 # Set a standard long_description, modified only for Debian/RPM packages
 long_description="""
-Tartube is a GUI front-end for youtube-dlc, youtube-dl and other compatible
-video downloaders.
+Tartube is a GUI front-end for youtube-dl, yt-dlp and other compatible video 
+downloaders.
 
 It is partly based on youtube-dl-gui and is written in Python 3 / Gtk 3.
 Tartube runs on MS Windows, Linux, BSD and MacOS.
@@ -182,7 +182,7 @@ for path in glob.glob('sounds/*'):
 # Setup
 setuptools.setup(
     name='tartube',
-    version='2.3.097',
+    version='2.3.110',
     description='GUI front-end for youtube-dl',
     long_description=long_description,
     long_description_content_type='text/plain',
@@ -211,7 +211,8 @@ setuptools.setup(
     python_requires='>=3.0, <4',
     install_requires=[
         'feedparser',
-        'pgi',
+#        'pgi',
+        'pygobject',
         'matplotlib',
         'playsound',
         'requests',
diff --git a/tartube/config.py b/tartube/config.py
index 36e52f8..52565eb 100644
--- a/tartube/config.py
+++ b/tartube/config.py
@@ -3096,7 +3096,7 @@ class OptionsEditWin(GenericEditWin):
             _('Creator/uploader'),
             [
                 'uploader',         _('Full name of video uploader'),
-                'uploader_id',      _('Full name of video uploader'),
+                'uploader_id',      _('Uploader ID'),
                 'creator',          _('Nickname/ID of video uploader'),
                 'channel',          _('Channel name'),
                 'channel_id',       _('Channel ID'),
@@ -3447,25 +3447,25 @@ class OptionsEditWin(GenericEditWin):
         )
 
         self.add_checkbutton(grid,
-            _('Keep the description file after Tartube shuts down'),
+            _('Keep the description file after the download has finished'),
             'keep_description',
             0, 1, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the metadata file after Tartube shuts down'),
+            _('Keep the metadata file after the download has finished'),
             'keep_info',
             0, 2, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the annotations file after Tartube shuts down'),
+            _('Keep the annotations file after the download has finished'),
             'keep_annotations',
             0, 3, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the thumbnail file after Tartube shuts down'),
+            _('Keep the thumbnail file after the download has finished'),
             'keep_thumbnail',
             0, 4, 1, 1,
         )
@@ -3478,25 +3478,25 @@ class OptionsEditWin(GenericEditWin):
         )
 
         self.add_checkbutton(grid,
-            _('Keep the description file after Tartube shuts down'),
+            _('Keep the description file after the download has finished'),
             'sim_keep_description',
             0, 6, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the metadata file after Tartube shuts down'),
+            _('Keep the metadata file after the download has finished'),
             'sim_keep_info',
             0, 7, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the annotations file after Tartube shuts down'),
+            _('Keep the annotations file after the download has finished'),
             'sim_keep_annotations',
             0, 8, 1, 1,
         )
 
         self.add_checkbutton(grid,
-            _('Keep the thumbnail file after Tartube shuts down'),
+            _('Keep the thumbnail file after the download has finished'),
             'sim_keep_thumbnail',
             0, 9, 1, 1,
         )
@@ -6019,6 +6019,8 @@ class FFmpegOptionsEditWin(GenericEditWin):
         self.rate_factor_scale = None           # Gtk.Scale
         self.dummy_file_combo = None            # Gtk.ComboBox
         self.patience_preset_combo = None       # Gtk.ComboBox
+        self.gpu_encoding_combo = None          # Gtk.ComboBox
+        self.hw_accel_combo = None              # Gtk.ComboBox
         # (Settings tab, GIF grid)
         self.palette_mode_radiobutton = None    # Gtk.RadioButton
         self.palette_mode_radiobutton2 = None   # Gtk.RadioButton
@@ -6775,6 +6777,35 @@ class FFmpegOptionsEditWin(GenericEditWin):
         )
         self.patience_preset_combo.set_hexpand(False)
 
+        self.add_label(grid,
+            _('GPU encoding'),
+            0, 6, 1, 1,
+        )
+
+        combo_list3 = [
+            'libx264', 'libx265', 'h264_amf', 'hevc_amf', 'h264_nvenc',
+            'hevc_nvenc',
+        ]
+
+        self.gpu_encoding_combo = self.add_combo(grid,
+            combo_list3,
+            'gpu_encoding',
+            1, 6, (inner_width - 1), 1,
+        )
+
+        self.add_label(grid,
+            _('Hardware acceleration'),
+            0, 7, 1, 1,
+        )
+
+        combo_list4 = ['none', 'auto', 'vdpau', 'dxva2', 'vaapi', 'qsv']
+
+        self.hw_accel_combo = self.add_combo(grid,
+            combo_list4,
+            'hw_accel',
+            1, 7, (inner_width - 1), 1,
+        )
+
         # (Signal connects from above)
         self.quality_mode_radiobutton.connect(
             'toggled',
@@ -13889,10 +13920,10 @@ class SystemPrefWin(GenericPrefWin):
             0, 0, 1, 1,
         )
 
-        # youtube-dlc. Use an event box so the downloader can be selected by
+        # yt-dlp. Use an event box so the downloader can be selected by
         #   clicking anywhere in the frame
         event_box = Gtk.EventBox()
-        grid.attach(event_box, 0, 2, 1, 1)
+        grid.attach(event_box, 0, 1, 1, 1)
         # (Signal connect appears below)
 
         frame = Gtk.Frame()
@@ -13905,8 +13936,8 @@ class SystemPrefWin(GenericPrefWin):
 
         self.add_label(grid2,
             utils.tidy_up_long_string(
-                '<b>youtube-dlc</b>: <i>' \
-                + self.app_obj.ytdl_fork_descrip_dict['youtube-dlc'] \
+                '<b>yt-dlp</b>: <i>' \
+                + self.app_obj.ytdl_fork_descrip_dict['yt-dlp'] \
                 + '</i>',
             ),
             0, 0, 1, 1,
@@ -13914,14 +13945,14 @@ class SystemPrefWin(GenericPrefWin):
 
         radiobutton = self.add_radiobutton(grid2,
             None,
-            '   ' + _('Use youtube-dlc'),
+            '   ' + _('Use yt-dlp'),
             0, 1, 1, 1,
         )
         # (Signal connect appears below)
 
         # youtube-dl
         event_box2 = Gtk.EventBox()
-        grid.attach(event_box2, 0, 1, 1, 1)
+        grid.attach(event_box2, 0, 2, 1, 1)
         # (Signal connect appears below)
 
         frame2 = Gtk.Frame()
@@ -13989,7 +14020,7 @@ class SystemPrefWin(GenericPrefWin):
         or self.app_obj.ytdl_fork == 'youtube-dl':
             radiobutton2.set_active(True)
             entry.set_sensitive(False)
-        elif self.app_obj.ytdl_fork == 'youtube-dlc':
+        elif self.app_obj.ytdl_fork == 'yt-dlp':
             radiobutton.set_active(True)
             entry.set_sensitive(False)
         else:
@@ -14020,7 +14051,7 @@ class SystemPrefWin(GenericPrefWin):
             'toggled',
             self.on_ytdl_fork_button_toggled,
             entry,
-            'youtube-dlc',
+            'yt-dlp',
         )
         radiobutton2.connect(
             'toggled',
@@ -19730,8 +19761,7 @@ class SystemPrefWin(GenericPrefWin):
 
             entry (Gtk.Entry): Another widget to be updated
 
-            fork_type (str): 'youtube-dlc', 'youtube-dl', or None for any other
-                fork
+            fork_type (str): 'yt-dlp', 'youtube-dl', or None for any other fork
 
         """
 
@@ -19755,7 +19785,7 @@ class SystemPrefWin(GenericPrefWin):
                 entry.set_text('')
                 entry.set_sensitive(False)
 
-            elif fork_type == 'youtube-dlc':
+            elif fork_type == 'yt-dlp':
 
                 self.app_obj.set_ytdl_fork(fork_type)
                 entry.set_text('')
diff --git a/tartube/downloads.py b/tartube/downloads.py
index 0856671..7150b37 100644
--- a/tartube/downloads.py
+++ b/tartube/downloads.py
@@ -3539,8 +3539,20 @@ class VideoDownloader(object):
         else:
             thumbnail = None
 
+#        if 'webpage_url' in json_dict:
+#            source = json_dict['webpage_url']
+#        else:
+#            source = None
+        # !!! DEBUG: yt-dlp Git #119: filter out the extraneous characters at
+        #   the end of the URL, if present
         if 'webpage_url' in json_dict:
-            source = json_dict['webpage_url']
+
+            source = re.sub(
+                r'\&has_verified\=.*\&bpctr\=.*',
+                '',
+                json_dict['webpage_url'],
+            )
+
         else:
             source = None
 
@@ -4378,7 +4390,8 @@ class VideoDownloader(object):
                 percent = '{0:.1f}%'.format(current_segment / segment_no * 100)
                 dl_stat_dict['percent'] = percent
 
-        elif stdout_list[0] == '[ffmpeg]':
+        # youtube-dl uses [ffmpeg], yt-dlp uses [Merger]
+        elif stdout_list[0] == '[ffmpeg]' or stdout_list[0] == '[Merger]':
 
             # Using FFmpeg, not the the native HLS extractor
             # A successful video download is announced in one of several ways.
diff --git a/tartube/ffmpeg_tartube.py b/tartube/ffmpeg_tartube.py
index 009071d..4360c47 100644
--- a/tartube/ffmpeg_tartube.py
+++ b/tartube/ffmpeg_tartube.py
@@ -531,6 +531,13 @@ class FFmpegOptionsManager(object):
             itself: 'ultrafast', 'superfast', 'veryfast', 'faster', 'fast',
             'medium', 'slow', 'slower', 'veryslow'
 
+        gpu_encoding (str): Optimisations for various GPUs. One of the values
+            'libx264', 'libx265', 'h264_amf', 'hevc_amf', 'h264_nvenc',
+            'hevc_nvenc'
+
+        hw_accel (str): Hardware acceleration mode: 'none', 'auto', 'vdpau',
+            'dxva2', 'vaapi', 'qsv'
+
         palette_mode (str): Ignored unless 'output_mode' is 'gif'. Values are
             'faster' or 'better'
 
@@ -654,6 +661,11 @@ class FFmpegOptionsManager(object):
             # 'ultrafast', 'superfast', 'veryfast', 'faster', 'fast', 'medium',
             #   'slow', 'slower', 'veryslow'
             'patience_preset': 'medium',
+            # 'libx264', 'libx265', 'h264_amf', 'hevc_amf', 'h264_nvenc',
+            #   'hevc_nvenc'
+            'gpu_encoding': 'libx264',
+            # 'none', 'auto', 'vdpau', 'dxva2', 'vaapi', 'qsv'
+            'hw_accel': 'none',
             # SETTINGS TAB ('output_mode' = gif)
             'palette_mode': 'faster',       # 'faster', 'better'
             # OPTIMISATIONS TAB ('output_mode' = h264)
@@ -904,11 +916,15 @@ class FFmpegOptionsManager(object):
             # In the original code, this was marked:
             #   Only necessary if the output filename does not end with .mp4
             opt_list.append('-c:v')
-            opt_list.append('libx264')
+            opt_list.append(options_dict['gpu_encoding'])
 
             opt_list.append('-preset')
             opt_list.append(options_dict['patience_preset'])
 
+            if options_dict['hw_accel'] != 'none':
+                opt_list.append('-hwaccel')
+                opt_list.append(options_dict['hw_accel'])
+
             if options_dict['tuning_film_flag']:
                 tuning_list.append('film')
             if options_dict['tuning_animation_flag']:
diff --git a/tartube/mainapp.py b/tartube/mainapp.py
index 0c4c3cd..1f24445 100644
--- a/tartube/mainapp.py
+++ b/tartube/mainapp.py
@@ -839,10 +839,9 @@ class TartubeApp(Gtk.Application):
         # Descriptions of various forks, used in the preference window and also
         #   in the wizard window
         self.ytdl_fork_descrip_dict = {
-            'youtube-dlc': \
+            'yt-dlp': \
                 'A popular fork of the original youtube-dl, created by' \
-                + ' Tom-Oliver Heidel in 2020. Officially supported by' \
-                + ' Tartube.',
+                + ' pukkandan in 2020. Officially supported by Tartube.',
             'youtube-dl': \
                 'This is the original downloader, created by Ricardo Garcia' \
                 + ' Gonzalez in 2006. Officially supported by Tartube.',
@@ -5814,6 +5813,28 @@ class TartubeApp(Gtk.Application):
                 False,          # Not temporary
             )
 
+        if version < 2003107:      # v2.3.107
+
+            # This version adds new settings to
+            #   ffmpeg_tartube.FFmpegOptionsManager
+            for options_obj in self.ffmpeg_reg_dict.values():
+                options_obj.options_dict['gpu_encoding'] = 'libx264'
+                options_obj.options_dict['hw_accel'] = 'none'
+
+        if version < 2003108:      # v2.3.108
+
+            # Apply fix to youtube-dl update IVs, caused by an issue in
+            #   self.auto_detect_paths(), now fixed (Git #256)
+            if os.name != 'nt' and __main__.__pkg_strict_install_flag__:
+
+                self.ytdl_update_dict = {
+                    'ytdl_update_disabled': [],
+                }
+                self.ytdl_update_list = [
+                    'ytdl_update_disabled',
+                ]
+                self.ytdl_update_current = 'ytdl_update_disabled'
+
 
     def save_db(self):
 
@@ -7192,12 +7213,14 @@ class TartubeApp(Gtk.Application):
             else:
                 self.ytdl_path = self.ytdl_bin
 
-            if self.ytdl_path == self.ytdl_path_default:
-                self.ytdl_update_current = 'ytdl_update_default_path'
-            elif self.ytdl_path == self.ytdl_path_pypi:
-                self.ytdl_update_current = 'ytdl_update_pip3_recommend'
-            else:
-                self.ytdl_update_current = 'ytdl_update_local_path'
+            if not __main__.__pkg_strict_install_flag__:
+
+                if self.ytdl_path == self.ytdl_path_default:
+                    self.ytdl_update_current = 'ytdl_update_default_path'
+                elif self.ytdl_path == self.ytdl_path_pypi:
+                    self.ytdl_update_current = 'ytdl_update_pip3_recommend'
+                else:
+                    self.ytdl_update_current = 'ytdl_update_local_path'
 
 
     def auto_delete_old_videos(self):
@@ -10773,7 +10796,16 @@ class TartubeApp(Gtk.Application):
                 video_obj.set_duration(json_dict['duration'])
 
             if 'webpage_url' in json_dict:
-                video_obj.set_source(json_dict['webpage_url'])
+                # !!! DEBUG: yt-dlp Git #119: filter out the extraneous
+                #   characters at the end of the URL, if present
+#                video_obj.set_source(json_dict['webpage_url'])
+                video_obj.set_source(
+                    re.sub(
+                        r'\&has_verified\=.*\&bpctr\=.*',
+                        '',
+                        json_dict['webpage_url'],
+                    )
+                )
 
             if 'description' in json_dict:
                 video_obj.set_video_descrip(
@@ -11931,6 +11963,10 @@ class TartubeApp(Gtk.Application):
         if DEBUG_FUNC_FLAG:
             utils.debug_time('app 11305 delete_video_files')
 
+        # Sanity check
+        if video_obj.file_name is None:
+            return
+
         # There might be thousands of files in the directory, so using
         #   os.walk() or something like that might be too expensive
         # Also, post-processing might create various artefacts, all of which
diff --git a/tartube/options.py b/tartube/options.py
index c677224..0aa8ec1 100644
--- a/tartube/options.py
+++ b/tartube/options.py
@@ -1036,16 +1036,6 @@ class OptionsParser(object):
                     options_list.append(option_holder_obj.switch)
                     options_list.append('"' + utils.to_string(value) + '"')
 
-            elif option_holder_obj.name == 'subs_lang_list':
-                # Convert the list to a comma-separated string, that the
-                #   'subs_lang' option can use
-                lang_list = copy_dict[option_holder_obj.name]
-                if lang_list:
-
-                    comma = ','
-                    options_list.append('--sub-lang')
-                    options_list.append(comma.join(lang_list))
-
             elif option_holder_obj.name == 'cookies_path':
                 cookies_path = copy_dict[option_holder_obj.name]
                 options_list.append('--cookies')
@@ -1090,6 +1080,15 @@ class OptionsParser(object):
             options_list.append('--reject-title')
             options_list.append(item)
 
+        # Parse the 'subs_lang_list' option
+        if copy_dict['write_subs'] \
+        and not copy_dict['write_auto_subs'] \
+        and not copy_dict['write_all_subs'] \
+        and copy_dict['subs_lang_list']:
+
+            options_list.append('--sub-lang')
+            options_list.append(','.join(copy_dict['subs_lang_list']))
+
         # Parsing complete
         return options_list
 
diff --git a/tartube/po/messages.pot b/tartube/po/messages.pot
index 0978886..6a5acae 100644
--- a/tartube/po/messages.pot
+++ b/tartube/po/messages.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-16 16:51+0000\n"
+"POT-Creation-Date: 2021-02-28 10:41+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,7 +37,7 @@ msgstr ""
 msgid "Enormous"
 msgstr ""
 
-#: .././mainapp.py:945
+#: .././mainapp.py:944
 msgid ""
 "Failed to convert a thumbnail from .webp to .jpg. No more conversions will "
 "be attempted until you install FFmpeg on your system, or (if FFmpeg is "
@@ -46,651 +46,651 @@ msgid ""
 "conversions"
 msgstr ""
 
-#: .././mainapp.py:2665
+#: .././mainapp.py:2664
 msgid ""
 "Tartube can't create the folder in which its configuration file is saved"
 msgstr ""
 
 #. Load/save has been disabled. Show the error message in a dialogue
 #. window, then shut down
-#: .././mainapp.py:2712
+#: .././mainapp.py:2711
 msgid "Tartube failed to start because:"
 msgstr ""
 
-#: .././mainapp.py:2720
+#: .././mainapp.py:2719
 msgid "If you don't know how to resolve this error, please contact the authors"
 msgstr ""
 
-#: .././mainapp.py:2948
+#: .././mainapp.py:2947
 msgid "Because of an error, file load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:2957
+#: .././mainapp.py:2956
 msgid "Because of the error, file load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:3041
+#: .././mainapp.py:3040
 msgid "There is a download operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3043
+#: .././mainapp.py:3042
 msgid "There is an update operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3045
+#: .././mainapp.py:3044
 msgid "There is a refresh operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3047
+#: .././mainapp.py:3046
 msgid "There is an info operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3049
+#: .././mainapp.py:3048
 msgid "There is a tidy operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3051
+#: .././mainapp.py:3050
 msgid "There is a process operation in progress."
 msgstr ""
 
-#: .././mainapp.py:3056
+#: .././mainapp.py:3055
 msgid "Are you sure you want to quit Tartube?"
 msgstr ""
 
-#: .././mainapp.py:3261
+#: .././mainapp.py:3260
 msgid "Failed to load the Tartube config file (failed sanity check)"
 msgstr ""
 
-#: .././mainapp.py:3284
+#: .././mainapp.py:3283
 msgid "Failed to load the Tartube config file (file is locked)"
 msgstr ""
 
-#: .././mainapp.py:3314
+#: .././mainapp.py:3313
 msgid "Failed to load the Tartube config file (JSON load failure)"
 msgstr ""
 
-#: .././mainapp.py:3332
+#: .././mainapp.py:3331
 msgid "Failed to load the Tartube config file (file is invalid)"
 msgstr ""
 
-#: .././mainapp.py:3350
+#: .././mainapp.py:3349
 msgid ""
 "Failed to load the Tartube config file (file cannot be read by this version)"
 msgstr ""
 
-#: .././mainapp.py:3365
+#: .././mainapp.py:3364
 msgid "Failed to load the Tartube config file (missing file type)"
 msgstr ""
 
-#: .././mainapp.py:4222
+#: .././mainapp.py:4221
 msgid "Failed to save the Tartube config file (failed sanity check)"
 msgstr ""
 
-#: .././mainapp.py:4542
+#: .././mainapp.py:4541
 msgid "Failed to save the Tartube config file (file is locked)"
 msgstr ""
 
-#: .././mainapp.py:4544 .././mainapp.py:4584 .././mainapp.py:5920
-#: .././mainapp.py:5976 .././mainapp.py:5982
+#: .././mainapp.py:4543 .././mainapp.py:4583 .././mainapp.py:5941
+#: .././mainapp.py:5997 .././mainapp.py:6003
 msgid "File load/save has been disabled"
 msgstr ""
 
-#: .././mainapp.py:4563
+#: .././mainapp.py:4562
 msgid "Failed to save the Tartube config file (file already in use)"
 msgstr ""
 
-#: .././mainapp.py:4583
+#: .././mainapp.py:4582
 msgid "Failed to save the Tartube config file"
 msgstr ""
 
-#: .././mainapp.py:4695 .././mainapp.py:4711 .././mainapp.py:4741
+#: .././mainapp.py:4694 .././mainapp.py:4710 .././mainapp.py:4740
 msgid "Failed to load the Tartube database file"
 msgstr ""
 
-#: .././mainapp.py:4756
+#: .././mainapp.py:4755
 msgid "The Tartube database file is invalid"
 msgstr ""
 
-#: .././mainapp.py:4772
+#: .././mainapp.py:4771
 msgid "Database file can't be read by this version of Tartube"
 msgstr ""
 
-#: .././mainapp.py:5117
+#: .././mainapp.py:5116
 msgid "Tartube is applying an essential database update"
 msgstr ""
 
-#: .././mainapp.py:5119
+#: .././mainapp.py:5118
 msgid "This might take a few minutes, so please be patient"
 msgstr ""
 
-#: .././mainapp.py:5914 .././mainapp.py:5972 .././mainapp.py:5981
+#: .././mainapp.py:5935 .././mainapp.py:5993 .././mainapp.py:6002
 msgid "Failed to save the Tartube database file"
 msgstr ""
 
-#: .././mainapp.py:5917
+#: .././mainapp.py:5938
 msgid "(Could not make a backup copy of the existing file)"
 msgstr ""
 
-#: .././mainapp.py:5953
+#: .././mainapp.py:5974
 msgid "Failed to save the Tartube database file (file already in use)"
 msgstr ""
 
-#: .././mainapp.py:5974
+#: .././mainapp.py:5995
 msgid "A backup of the previous file can be found at:"
 msgstr ""
 
-#: .././mainapp.py:6155 .././mainapp.py:6165
+#: .././mainapp.py:6176 .././mainapp.py:6186
 msgid "Database file created"
 msgstr ""
 
-#: .././mainapp.py:6559
+#: .././mainapp.py:6580
 msgid "Tartube's database can't be checked while an operation is in progress"
 msgstr ""
 
-#: .././mainapp.py:6795
+#: .././mainapp.py:6816
 msgid "Database check complete, no inconsistencies found"
 msgstr ""
 
-#: .././mainapp.py:6827
+#: .././mainapp.py:6848
 msgid "Database check complete, problems found:"
 msgstr ""
 
-#: .././mainapp.py:6830
+#: .././mainapp.py:6851
 msgid ""
 "Do you want to repair these problems? (The database will be fixed, but no "
 "files will be deleted)"
 msgstr ""
 
-#: .././mainapp.py:7003
+#: .././mainapp.py:7024
 msgid "Database inconsistencies repaired"
 msgstr ""
 
-#: .././mainapp.py:7895 .././config.py:16026
+#: .././mainapp.py:7918 .././config.py:16057
 msgid "Please select Tartube's data folder"
 msgstr ""
 
-#: .././mainapp.py:8258
+#: .././mainapp.py:8281
 msgid ""
 "A download operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:8282 .././mainapp.py:8307
+#: .././mainapp.py:8305 .././mainapp.py:8330
 #, python-brace-format
 msgid "You only have {0} / {1} Mb remaining on your device"
 msgstr ""
 
-#: .././mainapp.py:8310 .././mainapp.py:13970 .././mainapp.py:14086
-#: .././mainapp.py:14268 .././mainwin.py:17484
+#: .././mainapp.py:8333 .././mainapp.py:14006 .././mainapp.py:14122
+#: .././mainapp.py:14304 .././mainwin.py:17484
 msgid "Are you sure you want to continue?"
 msgstr ""
 
-#: .././mainapp.py:8397
+#: .././mainapp.py:8420
 msgid "There is nothing to check!"
 msgstr ""
 
-#: .././mainapp.py:8399
+#: .././mainapp.py:8422
 msgid "There is nothing to download!"
 msgstr ""
 
-#: .././mainapp.py:8642
+#: .././mainapp.py:8665
 msgid "Download operation complete"
 msgstr ""
 
-#: .././mainapp.py:8644
+#: .././mainapp.py:8667
 msgid "Download operation halted"
 msgstr ""
 
-#: .././mainapp.py:8648
+#: .././mainapp.py:8671
 msgid "Videos downloaded:"
 msgstr ""
 
-#: .././mainapp.py:8649
+#: .././mainapp.py:8672
 msgid "Videos checked:"
 msgstr ""
 
-#: .././mainapp.py:8652 .././mainapp.py:9253 .././mainapp.py:9747
-#: .././mainapp.py:10147
+#: .././mainapp.py:8675 .././mainapp.py:9276 .././mainapp.py:9770
+#: .././mainapp.py:10170
 msgid "Time taken:"
 msgstr ""
 
-#: .././mainapp.py:8757
+#: .././mainapp.py:8780
 msgid ""
 "An update operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:8943
+#: .././mainapp.py:8966
 msgid "Installation failed"
 msgstr ""
 
-#: .././mainapp.py:8945
+#: .././mainapp.py:8968
 msgid "Installation complete"
 msgstr ""
 
-#: .././mainapp.py:8949
+#: .././mainapp.py:8972
 msgid "Update operation failed"
 msgstr ""
 
-#: .././mainapp.py:8951
+#: .././mainapp.py:8974
 msgid "Update operation halted"
 msgstr ""
 
-#: .././mainapp.py:8953
+#: .././mainapp.py:8976
 msgid "Update operation complete"
 msgstr ""
 
-#: .././mainapp.py:8955
+#: .././mainapp.py:8978
 msgid "version:"
 msgstr ""
 
-#: .././mainapp.py:8959
+#: .././mainapp.py:8982
 msgid "(unknown)"
 msgstr ""
 
-#: .././mainapp.py:9046
+#: .././mainapp.py:9069
 msgid ""
 "A refresh operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:9059
+#: .././mainapp.py:9082
 msgid ""
 "During a refresh operation, Tartube analyses its data folder, looking for "
 "videos that haven't yet been added to its database"
 msgstr ""
 
-#: .././mainapp.py:9063
+#: .././mainapp.py:9086
 msgid ""
 "You only need to perform a refresh operation if you have manually copied "
 "videos into Tartube's data folder"
 msgstr ""
 
-#: .././mainapp.py:9070
+#: .././mainapp.py:9093
 msgid ""
 "Before starting a refresh operation, you should click the 'Check all' button "
 "in the main window"
 msgstr ""
 
-#: .././mainapp.py:9077
+#: .././mainapp.py:9100
 msgid ""
 "Before starting a refresh operation, you should right-click the channel and "
 "select 'Check channel'"
 msgstr ""
 
-#: .././mainapp.py:9084
+#: .././mainapp.py:9107
 msgid ""
 "Before starting a refresh operation, you should right-click the playlist and "
 "select 'Check playlist'"
 msgstr ""
 
-#: .././mainapp.py:9091
+#: .././mainapp.py:9114
 msgid ""
 "Before starting a refresh operation, you should right-click the folder and "
 "select 'Check folder'"
 msgstr ""
 
-#: .././mainapp.py:9096
+#: .././mainapp.py:9119
 msgid "Are you sure you want to proceed with the refresh operation?"
 msgstr ""
 
-#: .././mainapp.py:9248
+#: .././mainapp.py:9271
 msgid "Refresh operation complete"
 msgstr ""
 
-#: .././mainapp.py:9250
+#: .././mainapp.py:9273
 msgid "Refresh operation halted"
 msgstr ""
 
-#: .././mainapp.py:9355
+#: .././mainapp.py:9378
 msgid ""
 "An info operation cannot start if one or more configuration windows are "
 "still open"
 msgstr ""
 
-#: .././mainapp.py:9471
+#: .././mainapp.py:9494
 msgid "Operation failed"
 msgstr ""
 
-#: .././mainapp.py:9473 .././downloads.py:400
+#: .././mainapp.py:9496 .././downloads.py:400
 msgid "Operation complete"
 msgstr ""
 
-#: .././mainapp.py:9475
+#: .././mainapp.py:9498
 msgid "Click the Output Tab to see the results"
 msgstr ""
 
-#: .././mainapp.py:9488
+#: .././mainapp.py:9511
 msgid "A new release is available!"
 msgstr ""
 
-#: .././mainapp.py:9490
+#: .././mainapp.py:9513
 msgid "Your installation is up to date!"
 msgstr ""
 
-#: .././mainapp.py:9492
+#: .././mainapp.py:9515
 msgid "Installed version:"
 msgstr ""
 
-#: .././mainapp.py:9497
+#: .././mainapp.py:9520
 msgid "Stable release:"
 msgstr ""
 
-#: .././mainapp.py:9502
+#: .././mainapp.py:9525
 msgid "Stable release: not found"
 msgstr ""
 
-#: .././mainapp.py:9505
+#: .././mainapp.py:9528
 msgid "Development release:"
 msgstr ""
 
-#: .././mainapp.py:9507
+#: .././mainapp.py:9530
 msgid "Development release: not found"
 msgstr ""
 
-#: .././mainapp.py:9614
+#: .././mainapp.py:9637
 msgid ""
 "A tidy operation cannot start if one or more configuration windows are still "
 "open"
 msgstr ""
 
-#: .././mainapp.py:9742
+#: .././mainapp.py:9765
 msgid "Tidy operation complete"
 msgstr ""
 
-#: .././mainapp.py:9744
+#: .././mainapp.py:9767
 msgid "Tidy operation halted"
 msgstr ""
 
-#: .././mainapp.py:9911 .././mainwin.py:18169
+#: .././mainapp.py:9934 .././mainwin.py:18169
 msgid "Livestream has started"
 msgstr ""
 
-#: .././mainapp.py:10136
+#: .././mainapp.py:10159
 msgid "Process operation complete"
 msgstr ""
 
-#: .././mainapp.py:10138
+#: .././mainapp.py:10161
 msgid "Process operation halted"
 msgstr ""
 
-#: .././mainapp.py:10142
+#: .././mainapp.py:10165
 msgid "Files processed:"
 msgstr ""
 
-#: .././mainapp.py:10143
+#: .././mainapp.py:10166
 msgid "Errors:"
 msgstr ""
 
-#: .././mainapp.py:11403 .././mainapp.py:11578
+#: .././mainapp.py:11435 .././mainapp.py:11610
 msgid "Cannot move anything to:"
 msgstr ""
 
-#: .././mainapp.py:11405 .././mainapp.py:11580
+#: .././mainapp.py:11437 .././mainapp.py:11612
 msgid ""
 "because a file or folder with the same name already exists (although "
 "Tartube's database doesn't know anything about it)"
 msgstr ""
 
-#: .././mainapp.py:11409
+#: .././mainapp.py:11441
 msgid ""
 "You probably created that file/folder accidentally, in which case you should "
 "delete it manually before trying again"
 msgstr ""
 
-#: .././mainapp.py:11423 .././mainapp.py:11598
+#: .././mainapp.py:11455 .././mainapp.py:11630
 msgid "Are you sure you want to move this channel:"
 msgstr ""
 
-#: .././mainapp.py:11425 .././mainapp.py:11600
+#: .././mainapp.py:11457 .././mainapp.py:11632
 msgid "Are you sure you want to move this playlist:"
 msgstr ""
 
-#: .././mainapp.py:11427 .././mainapp.py:11602
+#: .././mainapp.py:11459 .././mainapp.py:11634
 msgid "Are you sure you want to move this folder:"
 msgstr ""
 
-#: .././mainapp.py:11432
+#: .././mainapp.py:11464
 msgid ""
 "This procedure will move all downloaded files to the top level of Tartube's "
 "data folder"
 msgstr ""
 
-#: .././mainapp.py:11532
+#: .././mainapp.py:11564
 msgid "Channels, playlists and folders can only be dragged into a folder"
 msgstr ""
 
-#: .././mainapp.py:11545
+#: .././mainapp.py:11577
 #, python-brace-format
 msgid "The fixed folder '{0}' cannot be moved (but it can still be hidden)"
 msgstr ""
 
-#: .././mainapp.py:11558
+#: .././mainapp.py:11590
 #, python-brace-format
 msgid "The folder '{0}' can only contain videos"
 msgstr ""
 
-#: .././mainapp.py:11585
+#: .././mainapp.py:11617
 msgid ""
 "You probably created that file/folder accidentally, in which case, you "
 "should delete it manually before trying again"
 msgstr ""
 
-#: .././mainapp.py:11604
+#: .././mainapp.py:11636
 msgid "into this folder:"
 msgstr ""
 
-#: .././mainapp.py:11608
+#: .././mainapp.py:11640
 msgid "This procedure will move all downloaded files to the new location"
 msgstr ""
 
-#: .././mainapp.py:11614
+#: .././mainapp.py:11646
 msgid ""
 "WARNING: The destination folder is marked as temporary, so everything inside "
 "it will be DELETED when Tartube restarts!"
 msgstr ""
 
-#: .././mainapp.py:12078
+#: .././mainapp.py:12114
 msgid ""
 "Are you SURE you want to delete files? This procedure cannot be reversed!"
 msgstr ""
 
-#: .././mainapp.py:13954 .././mainapp.py:14070 .././mainapp.py:14252
+#: .././mainapp.py:13990 .././mainapp.py:14106 .././mainapp.py:14288
 #, python-brace-format
 msgid "The channel contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:13960 .././mainapp.py:14076 .././mainapp.py:14258
+#: .././mainapp.py:13996 .././mainapp.py:14112 .././mainapp.py:14294
 #, python-brace-format
 msgid "The playlist contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:13966 .././mainapp.py:14082 .././mainapp.py:14264
+#: .././mainapp.py:14002 .././mainapp.py:14118 .././mainapp.py:14300
 #, python-brace-format
 msgid "The folder contains {0} item(s), so this action may take a while"
 msgstr ""
 
-#: .././mainapp.py:14332 .././mainapp.py:18504 .././mainapp.py:18636
-#: .././mainapp.py:18767
+#: .././mainapp.py:14368 .././mainapp.py:18540 .././mainapp.py:18672
+#: .././mainapp.py:18803
 #, python-brace-format
 msgid "The name '{0}' is not allowed"
 msgstr ""
 
-#: .././mainapp.py:14341
+#: .././mainapp.py:14377
 #, python-brace-format
 msgid "The name '{0}' is already in use"
 msgstr ""
 
-#: .././mainapp.py:14354
+#: .././mainapp.py:14390
 #, python-brace-format
 msgid "Failed to rename '{0}'"
 msgstr ""
 
-#: .././mainapp.py:14701
+#: .././mainapp.py:14737
 msgid "Select where to save the database export"
 msgstr ""
 
-#: .././mainapp.py:14822
+#: .././mainapp.py:14858
 msgid "There is nothing to export!"
 msgstr ""
 
-#: .././mainapp.py:14862 .././mainapp.py:14928
+#: .././mainapp.py:14898 .././mainapp.py:14964
 msgid "Failed to save the database export file:"
 msgstr ""
 
-#: .././mainapp.py:14936
+#: .././mainapp.py:14972
 msgid "Database export file saved to:"
 msgstr ""
 
-#: .././mainapp.py:14973
+#: .././mainapp.py:15009
 msgid "Select the database export"
 msgstr ""
 
-#: .././mainapp.py:14994 .././mainapp.py:15008
+#: .././mainapp.py:15030 .././mainapp.py:15044
 msgid "Failed to load the database export file"
 msgstr ""
 
-#: .././mainapp.py:15025
+#: .././mainapp.py:15061
 msgid "The database export file is invalid"
 msgstr ""
 
-#: .././mainapp.py:15036
+#: .././mainapp.py:15072
 msgid "The database export file is invalid (or empty)"
 msgstr ""
 
-#: .././mainapp.py:15080
+#: .././mainapp.py:15116
 msgid "Nothing was imported from the database export file"
 msgstr ""
 
 #. Show a confirmation
-#: .././mainapp.py:15094
+#: .././mainapp.py:15130
 msgid "Imported"
 msgstr ""
 
-#: .././mainapp.py:15095 .././mainwin.py:1287 .././config.py:888
-#: .././config.py:9274 .././config.py:11492
+#: .././mainapp.py:15131 .././mainwin.py:1287 .././config.py:888
+#: .././config.py:9305 .././config.py:11523
 msgid "Videos"
 msgstr ""
 
-#: .././mainapp.py:15096 .././config.py:9307 .././config.py:11525
+#: .././mainapp.py:15132 .././config.py:9338 .././config.py:11556
 msgid "Channels"
 msgstr ""
 
-#: .././mainapp.py:15097 .././config.py:9318 .././config.py:11536
+#: .././mainapp.py:15133 .././config.py:9349 .././config.py:11567
 msgid "Playlists"
 msgstr ""
 
-#: .././mainapp.py:15098
+#: .././mainapp.py:15134
 msgid "Folders"
 msgstr ""
 
-#: .././mainapp.py:15482
+#: .././mainapp.py:15518
 msgid ""
 "The video file is missing from Tartube's data folder (try downloading the "
 "video again!)"
 msgstr ""
 
-#: .././mainapp.py:16007 .././mainapp.py:16389
+#: .././mainapp.py:16043 .././mainapp.py:16425
 msgid "Select where to save the options export"
 msgstr ""
 
-#: .././mainapp.py:16055 .././mainapp.py:16437
+#: .././mainapp.py:16091 .././mainapp.py:16473
 msgid "Failed to save the options export file:"
 msgstr ""
 
-#: .././mainapp.py:16063
+#: .././mainapp.py:16099
 msgid "Download options exported to to:"
 msgstr ""
 
-#: .././mainapp.py:16094 .././mainapp.py:16476
+#: .././mainapp.py:16130 .././mainapp.py:16512
 msgid "Select the options export file"
 msgstr ""
 
-#: .././mainapp.py:16113 .././mainapp.py:16495
+#: .././mainapp.py:16149 .././mainapp.py:16531
 msgid "Failed to load the options export file"
 msgstr ""
 
-#: .././mainapp.py:16130 .././mainapp.py:16512
+#: .././mainapp.py:16166 .././mainapp.py:16548
 msgid "The options export file is invalid"
 msgstr ""
 
-#: .././mainapp.py:16141 .././mainapp.py:16523
+#: .././mainapp.py:16177 .././mainapp.py:16559
 msgid "The options export file is invalid (or empty)"
 msgstr ""
 
-#: .././mainapp.py:16445
+#: .././mainapp.py:16481
 msgid "FFmpeg options exported to to:"
 msgstr ""
 
-#: .././mainapp.py:17419
+#: .././mainapp.py:17455
 msgid "Please select a destination folder"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17491
+#: .././mainapp.py:17527
 msgid "Are you sure you want to clear this list?"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17538
+#: .././mainapp.py:17574
 msgid "Are you sure you want to clear downloaded videos?"
 msgstr ""
 
-#: .././mainapp.py:17631 .././mainwin.py:14535
+#: .././mainapp.py:17667 .././mainwin.py:14535
 msgid "Only checked/downloaded videos can be processed by FFmpeg"
 msgstr ""
 
-#: .././mainapp.py:17748
+#: .././mainapp.py:17784
 msgid "No video(s) have been downloaded"
 msgstr ""
 
 #. Prompt for confirmation
-#: .././mainapp.py:17846
+#: .././mainapp.py:17882
 msgid "Are you sure you want to remove the selected item(s)?"
 msgstr ""
 
-#: .././mainapp.py:18495
+#: .././mainapp.py:18531
 msgid "You must give the channel a name"
 msgstr ""
 
-#: .././mainapp.py:18513 .././mainapp.py:18776
+#: .././mainapp.py:18549 .././mainapp.py:18812
 msgid "You must enter a valid URL"
 msgstr ""
 
-#: .././mainapp.py:18628
+#: .././mainapp.py:18664
 msgid "You must give the folder a name"
 msgstr ""
 
-#: .././mainapp.py:18758
+#: .././mainapp.py:18794
 msgid "You must give the playlist a name"
 msgstr ""
 
-#: .././mainapp.py:18913
+#: .././mainapp.py:18949
 msgid "The following videos are duplicates:"
 msgstr ""
 
-#: .././mainapp.py:18977
+#: .././mainapp.py:19013
 msgid "There were no livestream alerts to cancel"
 msgstr ""
 
-#: .././mainapp.py:18979
+#: .././mainapp.py:19015
 msgid "Livestream alerts for 1 video were cancelled"
 msgstr ""
 
-#: .././mainapp.py:18982
+#: .././mainapp.py:19018
 #, python-brace-format
 msgid "Livestream alerts for {0} videos were cancelled"
 msgstr ""
 
-#: .././mainapp.py:19352
+#: .././mainapp.py:19388
 msgid "All Tartube data has been saved"
 msgstr ""
 
-#: .././mainapp.py:19382
+#: .././mainapp.py:19418
 msgid "Database saved"
 msgstr ""
 
-#: .././mainapp.py:19637 .././mainwin.py:13487
+#: .././mainapp.py:19673 .././mainwin.py:13487
 msgid ""
 "Files cannot be recovered, after being deleted. Are you sure you want to "
 "continue?"
@@ -699,39 +699,39 @@ msgstr ""
 #. Because livestream operations run silently in the background, when
 #. the user goes to the trouble of clicking a menu item in the
 #. main window's menu, tell them why nothing is happening
-#: .././mainapp.py:19677
+#: .././mainapp.py:19713
 msgid "Cannot update existing livestreams because"
 msgstr ""
 
-#: .././mainapp.py:19679
+#: .././mainapp.py:19715
 msgid "there is another operation running"
 msgstr ""
 
-#: .././mainapp.py:19681
+#: .././mainapp.py:19717
 msgid "they are currently being updated"
 msgstr ""
 
-#: .././mainapp.py:19683
+#: .././mainapp.py:19719
 msgid "one or more configuration windows are open"
 msgstr ""
 
-#: .././mainapp.py:19685
+#: .././mainapp.py:19721
 msgid "there are no livestreams to update"
 msgstr ""
 
-#: .././mainapp.py:19759
+#: .././mainapp.py:19795
 msgid "There is already a channel with that name"
 msgstr ""
 
-#: .././mainapp.py:19761
+#: .././mainapp.py:19797
 msgid "There is already a playlist with that name"
 msgstr ""
 
-#: .././mainapp.py:19763
+#: .././mainapp.py:19799
 msgid "There is already a folder with that name"
 msgstr ""
 
-#: .././mainapp.py:19766
+#: .././mainapp.py:19802
 msgid "(so please choose a different name)"
 msgstr ""
 
@@ -740,7 +740,7 @@ msgid "Tartube cannot start because it cannot find its icons folder"
 msgstr ""
 
 #. File column
-#: .././mainwin.py:943 .././config.py:6357
+#: .././mainwin.py:943 .././config.py:6359
 msgid "_File"
 msgstr ""
 
@@ -783,7 +783,7 @@ msgid "_General download options..."
 msgstr ""
 
 #. Media column
-#: .././mainwin.py:1009 .././config.py:9834
+#: .././mainwin.py:1009 .././config.py:9865
 msgid "_Media"
 msgstr ""
 
@@ -841,7 +841,7 @@ msgstr ""
 
 #. Operations column
 #. Add this tab...
-#: .././mainwin.py:1115 .././config.py:12776
+#: .././mainwin.py:1115 .././config.py:12807
 msgid "_Operations"
 msgstr ""
 
@@ -884,7 +884,7 @@ msgid "_Stop current operation"
 msgstr ""
 
 #. Livestreams column
-#: .././mainwin.py:1195 .././config.py:13480
+#: .././mainwin.py:1195 .././config.py:13511
 msgid "_Livestreams"
 msgstr ""
 
@@ -967,7 +967,7 @@ msgstr ""
 #: .././mainwin.py:1393 .././mainwin.py:19371 .././mainwin.py:19376
 #: .././mainwin.py:19384 .././mainwin.py:19633 .././mainwin.py:19645
 #: .././mainwin.py:20380 .././mainwin.py:21727 .././mainwin.py:21753
-#: .././config.py:12481
+#: .././config.py:12512
 msgid "Download"
 msgstr ""
 
@@ -984,7 +984,7 @@ msgstr ""
 msgid "Stop the current operation"
 msgstr ""
 
-#: .././mainwin.py:1443 .././config.py:11068
+#: .././mainwin.py:1443 .././config.py:11099
 msgid "Switch"
 msgstr ""
 
@@ -1016,8 +1016,8 @@ msgstr ""
 msgid "Close Tartube"
 msgstr ""
 
-#: .././mainwin.py:1532 .././config.py:7115 .././config.py:11292
-#: .././config.py:11890
+#: .././mainwin.py:1532 .././config.py:7146 .././config.py:11323
+#: .././config.py:11921
 msgid "_Videos"
 msgstr ""
 
@@ -1033,7 +1033,7 @@ msgstr ""
 msgid "_Output"
 msgstr ""
 
-#: .././mainwin.py:1566 .././config.py:8450 .././config.py:8956
+#: .././mainwin.py:1566 .././config.py:8481 .././config.py:8987
 msgid "_Errors / Warnings"
 msgstr ""
 
@@ -1094,12 +1094,12 @@ msgstr ""
 msgid "Sort"
 msgstr ""
 
-#: .././mainwin.py:1875 .././config.py:8235
+#: .././mainwin.py:1875 .././config.py:8266
 msgid "Upload time"
 msgstr ""
 
-#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7138
-#: .././config.py:12481 .././config.py:14402 .././config.py:14669
+#: .././mainwin.py:1876 .././mainwin.py:25120 .././config.py:7169
+#: .././config.py:12512 .././config.py:14433 .././config.py:14700
 msgid "Name"
 msgstr ""
 
@@ -1191,11 +1191,11 @@ msgstr ""
 msgid "ETA"
 msgstr ""
 
-#: .././mainwin.py:2219 .././config.py:8821
+#: .././mainwin.py:2219 .././config.py:8852
 msgid "New videos"
 msgstr ""
 
-#: .././mainwin.py:2219 .././config.py:404 .././config.py:8191
+#: .././mainwin.py:2219 .././config.py:404 .././config.py:8222
 msgid "Duration"
 msgstr ""
 
@@ -1203,7 +1203,7 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: .././mainwin.py:2220 .././config.py:8147
+#: .././mainwin.py:2220 .././config.py:8178
 msgid "File"
 msgstr ""
 
@@ -1273,7 +1273,7 @@ msgstr ""
 msgid "Format:"
 msgstr ""
 
-#: .././mainwin.py:2591 .././config.py:14402
+#: .././mainwin.py:2591 .././config.py:14433
 msgid "Default"
 msgstr ""
 
@@ -1302,14 +1302,14 @@ msgid "Play video"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11105
-#: .././config.py:12546
+#: .././mainwin.py:2781 .././config.py:3584 .././config.py:11136
+#: .././config.py:12577
 msgid "Move up"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11113
-#: .././config.py:12555
+#: .././mainwin.py:2802 .././config.py:3588 .././config.py:11144
+#: .././config.py:12586
 msgid "Move down"
 msgstr ""
 
@@ -1345,7 +1345,7 @@ msgstr ""
 msgid "Maximum page size"
 msgstr ""
 
-#: .././mainwin.py:3017 .././config.py:12481
+#: .././mainwin.py:3017 .././config.py:12512
 msgid "Time"
 msgstr ""
 
@@ -1373,7 +1373,7 @@ msgstr ""
 msgid "Show server warnings"
 msgstr ""
 
-#: .././mainwin.py:3113 .././config.py:9936
+#: .././mainwin.py:3113 .././config.py:9967
 msgid "Clear list"
 msgstr ""
 
@@ -1726,7 +1726,7 @@ msgstr ""
 msgid "Not a _livestream"
 msgstr ""
 
-#: .././mainwin.py:5295 .././config.py:8310
+#: .././mainwin.py:5295 .././config.py:8341
 msgid "_Livestream"
 msgstr ""
 
@@ -2392,8 +2392,8 @@ msgstr ""
 #. this function returns. Workaround is to make the label unclickable,
 #. then use a Glib timer to restore it (after some small fraction of a
 #. second)
-#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9296
-#: .././config.py:11514
+#: .././mainwin.py:19485 .././mainwin.py:20612 .././config.py:9327
+#: .././config.py:11545
 msgid "Other"
 msgstr ""
 
@@ -2732,7 +2732,7 @@ msgstr ""
 msgid "This playlist contains:"
 msgstr ""
 
-#: .././mainwin.py:24726 .././config.py:9269
+#: .././mainwin.py:24726 .././config.py:9300
 msgid "This folder contains:"
 msgstr ""
 
@@ -2886,7 +2886,7 @@ msgstr ""
 msgid "Choose which items to import"
 msgstr ""
 
-#: .././mainwin.py:25104 .././config.py:14454 .././config.py:14719
+#: .././mainwin.py:25104 .././config.py:14485 .././config.py:14750
 msgid "Import"
 msgstr ""
 
@@ -2950,7 +2950,7 @@ msgstr ""
 
 #. 'OK' button
 #: .././mainwin.py:25521 .././config.py:1035 .././config.py:2242
-#: .././config.py:7694 .././config.py:7828
+#: .././config.py:7725 .././config.py:7859
 msgid "OK"
 msgstr ""
 
@@ -3134,7 +3134,7 @@ msgstr ""
 msgid "Copy to clipboard"
 msgstr ""
 
-#: .././mainwin.py:26846 .././config.py:13749
+#: .././mainwin.py:26846 .././config.py:13780
 msgid "Test"
 msgstr ""
 
@@ -3228,7 +3228,7 @@ msgstr ""
 msgid "Uploads"
 msgstr ""
 
-#: .././config.py:403 .././config.py:8214
+#: .././config.py:403 .././config.py:8245
 msgid "File size"
 msgstr ""
 
@@ -3306,8 +3306,8 @@ msgstr ""
 
 #. 'Reset' button
 #. (Signal connect appears below)
-#: .././config.py:1017 .././config.py:3306 .././config.py:14214
-#: .././config.py:14255 .././config.py:14325
+#: .././config.py:1017 .././config.py:3306 .././config.py:14245
+#: .././config.py:14286 .././config.py:14356
 msgid "Reset"
 msgstr ""
 
@@ -3324,7 +3324,7 @@ msgstr ""
 msgid "Apply changes without closing the window"
 msgstr ""
 
-#: .././config.py:1038 .././config.py:7697 .././config.py:7831
+#: .././config.py:1038 .././config.py:7728 .././config.py:7862
 msgid "Apply changes"
 msgstr ""
 
@@ -3381,7 +3381,7 @@ msgstr ""
 msgid "Close this window"
 msgstr ""
 
-#: .././config.py:2869 .././config.py:6260
+#: .././config.py:2869 .././config.py:6262
 msgid "_Name"
 msgstr ""
 
@@ -3426,7 +3426,7 @@ msgid "Completely reset all download options to their default values"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:3000 .././config.py:10878
+#: .././config.py:3000 .././config.py:10909
 msgid "_Files"
 msgstr ""
 
@@ -3450,7 +3450,7 @@ msgstr ""
 msgid "Add to template:"
 msgstr ""
 
-#: .././config.py:3083 .././config.py:8018
+#: .././config.py:3083 .././config.py:8049
 msgid "Video properties"
 msgstr ""
 
@@ -3494,10 +3494,14 @@ msgstr ""
 msgid "Creator/uploader"
 msgstr ""
 
-#: .././config.py:3098 .././config.py:3099
+#: .././config.py:3098
 msgid "Full name of video uploader"
 msgstr ""
 
+#: .././config.py:3099
+msgid "Uploader ID"
+msgstr ""
+
 #: .././config.py:3100
 msgid "Nickname/ID of video uploader"
 msgstr ""
@@ -3606,8 +3610,8 @@ msgstr ""
 msgid "Number of comments"
 msgstr ""
 
-#: .././config.py:3170 .././config.py:9916 .././config.py:12528
-#: .././config.py:14445 .././config.py:14710
+#: .././config.py:3170 .././config.py:9947 .././config.py:12559
+#: .././config.py:14476 .././config.py:14741
 msgid "Add"
 msgstr ""
 
@@ -3648,8 +3652,8 @@ msgid "Path to the downloader's cookie jar file"
 msgstr ""
 
 #: .././config.py:3302 .././config.py:4927 .././config.py:4947
-#: .././config.py:4967 .././config.py:14111 .././config.py:14210
-#: .././config.py:14251 .././config.py:14321
+#: .././config.py:4967 .././config.py:14142 .././config.py:14241
+#: .././config.py:14282 .././config.py:14352
 msgid "Set"
 msgstr ""
 
@@ -3712,19 +3716,19 @@ msgid "Options during real (not simulated) downloads"
 msgstr ""
 
 #: .././config.py:3450 .././config.py:3481
-msgid "Keep the description file after Tartube shuts down"
+msgid "Keep the description file after the download has finished"
 msgstr ""
 
 #: .././config.py:3456 .././config.py:3487
-msgid "Keep the metadata file after Tartube shuts down"
+msgid "Keep the metadata file after the download has finished"
 msgstr ""
 
 #: .././config.py:3462 .././config.py:3493
-msgid "Keep the annotations file after Tartube shuts down"
+msgid "Keep the annotations file after the download has finished"
 msgstr ""
 
 #: .././config.py:3468 .././config.py:3499
-msgid "Keep the thumbnail file after Tartube shuts down"
+msgid "Keep the thumbnail file after the download has finished"
 msgstr ""
 
 #: .././config.py:3475
@@ -3815,7 +3819,7 @@ msgid "Do not download DASH-related data for YouTube videos"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:3790 .././config.py:3809 .././config.py:13113
+#: .././config.py:3790 .././config.py:3809 .././config.py:13144
 msgid "_Downloads"
 msgstr ""
 
@@ -4247,8 +4251,8 @@ msgstr ""
 msgid "Arguments to pass to external downloader"
 msgstr ""
 
-#: .././config.py:5168 .././config.py:5658 .././config.py:7355
-#: .././config.py:7603
+#: .././config.py:5168 .././config.py:5658 .././config.py:7386
+#: .././config.py:7634
 msgid "This procedure cannot be reversed. Are you sure you want to continue?"
 msgstr ""
 
@@ -4287,120 +4291,120 @@ msgid "FFmpeg options"
 msgstr ""
 
 #. Replace the 'OK' button with a 'Process files' button
-#: .././config.py:6246 .././config.py:7776
+#: .././config.py:6248 .././config.py:7807
 msgid "Process files"
 msgstr ""
 
-#: .././config.py:6248 .././config.py:7778
+#: .././config.py:6250 .././config.py:7809
 msgid "Process the files with FFmpeg"
 msgstr ""
 
-#: .././config.py:6265
+#: .././config.py:6267
 msgid "Name for these FFmpeg options"
 msgstr ""
 
-#: .././config.py:6275
+#: .././config.py:6277
 msgid "Extra command line options (e.g. --help)"
 msgstr ""
 
-#: .././config.py:6286
+#: .././config.py:6288
 msgid "System command, based on all FFmpeg options in this window:"
 msgstr ""
 
-#: .././config.py:6317
+#: .././config.py:6319
 msgid "Show fewer FFmpeg options"
 msgstr ""
 
-#: .././config.py:6319
+#: .././config.py:6321
 msgid "Show more FFmpeg options"
 msgstr ""
 
-#: .././config.py:6329
+#: .././config.py:6331
 msgid "Import current FFmpeg options into this window"
 msgstr ""
 
-#: .././config.py:6344
+#: .././config.py:6346
 msgid "Completely reset all FFmpeg options to their default values"
 msgstr ""
 
-#: .././config.py:6360
+#: .././config.py:6362
 msgid "Add to end of filename:"
 msgstr ""
 
-#: .././config.py:6370
+#: .././config.py:6372
 msgid "If regex matches filename:"
 msgstr ""
 
-#: .././config.py:6384
+#: .././config.py:6386
 msgid "...then apply substitution:"
 msgstr ""
 
-#: .././config.py:6397
+#: .././config.py:6399
 msgid ""
 "If the video/audio file is renamed, also rename the thumbnail (but not vice-"
 "versa)"
 msgstr ""
 
-#: .././config.py:6408
+#: .././config.py:6410
 msgid "Change file extension:"
 msgstr ""
 
-#: .././config.py:6422
+#: .././config.py:6424
 msgid "After changing the file extension, delete the original file"
 msgstr ""
 
-#: .././config.py:6448
+#: .././config.py:6450
 msgid "_Settings"
 msgstr ""
 
-#: .././config.py:6455
+#: .././config.py:6457
 msgid "Source file"
 msgstr ""
 
-#: .././config.py:6462
+#: .././config.py:6464
 msgid "Downloaded video/audio"
 msgstr ""
 
-#: .././config.py:6471
+#: .././config.py:6473
 msgid "with audio"
 msgstr ""
 
-#: .././config.py:6484
+#: .././config.py:6486
 msgid "Video thumbnail"
 msgstr ""
 
-#: .././config.py:6503
+#: .././config.py:6505
 msgid "Output file"
 msgstr ""
 
-#: .././config.py:6630
+#: .././config.py:6632
 msgid "Audio bitrate"
 msgstr ""
 
-#: .././config.py:6644
+#: .././config.py:6646
 msgid "How to set the quality"
 msgstr ""
 
-#: .././config.py:6649
+#: .././config.py:6651
 msgid ""
 "FFmpeg always encodes according to a Rate Factor that specifies the quality "
 "of the result."
 msgstr ""
 
-#: .././config.py:6652
+#: .././config.py:6654
 msgid ""
 "Instead of directly specifying the Rate Factor, an average bit rate can be "
 "specified. FFmpeg will then determine the optimal Rate Factor in a first "
 "pass."
 msgstr ""
 
-#: .././config.py:6656
+#: .././config.py:6658
 msgid ""
 "In fact the first pass is only used for determining the Rate Factor, no "
 "other data is carried over into the second pass."
 msgstr ""
 
-#: .././config.py:6659
+#: .././config.py:6661
 msgid ""
 "Specifying an average bitrate but running only one pass is possible, but not "
 "recommended. FFmpeg would then encode the beginning of the video with a "
@@ -4408,1915 +4412,1923 @@ msgid ""
 "eventually reach the target bitrate."
 msgstr ""
 
-#: .././config.py:6672
+#: .././config.py:6674
 msgid "Manual rate factor"
 msgstr ""
 
-#: .././config.py:6681
+#: .././config.py:6683
 msgid "Determine from target bitrate (2-Pass)"
 msgstr ""
 
-#: .././config.py:6691
+#: .././config.py:6693
 msgid "Rate factor"
 msgstr ""
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Lossless"
 msgstr ""
 
-#: .././config.py:6703
+#: .././config.py:6705
 msgid "Large file"
 msgstr ""
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Bad quality"
 msgstr ""
 
-#: .././config.py:6725
+#: .././config.py:6727
 msgid "Small file"
 msgstr ""
 
-#: .././config.py:6732
+#: .././config.py:6734
 msgid "Name of dummy file"
 msgstr ""
 
-#: .././config.py:6736
+#: .././config.py:6738
 msgid "A dummy file is created during the first pass."
 msgstr ""
 
-#: .././config.py:6740
+#: .././config.py:6742
 msgid "Use the output file"
 msgstr ""
 
-#: .././config.py:6741
+#: .././config.py:6743
 msgid "Dummy"
 msgstr ""
 
-#: .././config.py:6742
+#: .././config.py:6744
 msgid "/dev/null (Linux)"
 msgstr ""
 
-#: .././config.py:6743
+#: .././config.py:6745
 msgid "NUL (MS Windows)"
 msgstr ""
 
-#: .././config.py:6755
+#: .././config.py:6757
 msgid "Patience preset"
 msgstr ""
 
-#: .././config.py:6760
+#: .././config.py:6762
 msgid "Ultra fast"
 msgstr ""
 
-#: .././config.py:6761
+#: .././config.py:6763
 msgid "Super fast"
 msgstr ""
 
-#: .././config.py:6762
+#: .././config.py:6764
 msgid "Very fast"
 msgstr ""
 
-#: .././config.py:6763 .././config.py:6832
+#: .././config.py:6765 .././config.py:6863
 msgid "Faster"
 msgstr ""
 
-#: .././config.py:6764
+#: .././config.py:6766
 msgid "Fast"
 msgstr ""
 
-#: .././config.py:6765
-msgid "Medium (default)"
-msgstr ""
-
-#: .././config.py:6766
-#, python-format
-msgid "Slow (file about 5-10% smaller than medium)"
-msgstr ""
-
 #: .././config.py:6767
-#, python-format
-msgid "Slower (file about 15% smaller than medium)"
+msgid "Medium (default)"
 msgstr ""
 
 #: .././config.py:6768
 #, python-format
+msgid "Slow (file about 5-10% smaller than medium)"
+msgstr ""
+
+#: .././config.py:6769
+#, python-format
+msgid "Slower (file about 15% smaller than medium)"
+msgstr ""
+
+#: .././config.py:6770
+#, python-format
 msgid "Very slow (file about 17% smaller than medium)"
 msgstr ""
 
-#: .././config.py:6826
+#: .././config.py:6781
+msgid "GPU encoding"
+msgstr ""
+
+#: .././config.py:6797
+msgid "Hardware acceleration"
+msgstr ""
+
+#: .././config.py:6857
 msgid "Palette:"
 msgstr ""
 
-#: .././config.py:6833
+#: .././config.py:6864
 msgid "Uses dithering to a standard palette provided by FFmpeg"
 msgstr ""
 
-#: .././config.py:6834
+#: .././config.py:6865
 msgid "Can cause dithering artefacts and slight banding"
 msgstr ""
 
-#: .././config.py:6843
+#: .././config.py:6874
 msgid "Better"
 msgstr ""
 
-#: .././config.py:6844
+#: .././config.py:6875
 msgid "Determines an optimized palette for the video"
 msgstr ""
 
-#: .././config.py:6845
+#: .././config.py:6876
 msgid "Uses two passes and a temporary file for the palette"
 msgstr ""
 
-#: .././config.py:6898
+#: .././config.py:6929
 msgid ""
 "This merges a video and audio file with the same name into a single video "
 "file,\n"
 "using the extension specified in the File tab"
 msgstr ""
 
-#: .././config.py:6939
+#: .././config.py:6970
 msgid "The thumbnail's format can be changed in the File tab"
 msgstr ""
 
-#: .././config.py:6954
+#: .././config.py:6985
 msgid "_Optimisations"
 msgstr ""
 
-#: .././config.py:6960
+#: .././config.py:6991
 msgid ""
 "Optimise for fast seeking (shorter keyframe interval, about 10% larger file)"
 msgstr ""
 
-#: .././config.py:6968
+#: .././config.py:6999
 msgid "Input video is a high-quality movie"
 msgstr ""
 
-#: .././config.py:6974
+#: .././config.py:7005
 msgid "Input video is an animated movie"
 msgstr ""
 
-#: .././config.py:6980
+#: .././config.py:7011
 msgid "Input video contains film grain"
 msgstr ""
 
-#: .././config.py:6986
+#: .././config.py:7017
 msgid "Input video is an image slideshow"
 msgstr ""
 
-#: .././config.py:6992
+#: .././config.py:7023
 msgid "Optimise for really weak CPU playback devices"
 msgstr ""
 
-#: .././config.py:6999
+#: .././config.py:7030
 msgid "Optimise for really old devices (requires rate factor above 0)"
 msgstr ""
 
-#: .././config.py:7010
+#: .././config.py:7041
 msgid ""
 "Move headers to beginning of file (so it can play while still downloading)"
 msgstr ""
 
-#: .././config.py:7018
+#: .././config.py:7049
 msgid "Fast encoding and low latency streaming"
 msgstr ""
 
-#: .././config.py:7024
+#: .././config.py:7055
 msgid "Limit bitrate (Mbit/s)"
 msgstr ""
 
-#: .././config.py:7041
+#: .././config.py:7072
 msgid "Assuming a receiving buffer (seconds)"
 msgstr ""
 
-#: .././config.py:7119
+#: .././config.py:7150
 msgid "List of videos to be processed"
 msgstr ""
 
-#: .././config.py:7138 .././media.py:88
+#: .././config.py:7169 .././media.py:88
 msgid "Video"
 msgstr ""
 
-#: .././config.py:7138
+#: .././config.py:7169
 msgid "Thumbnail"
 msgstr ""
 
-#: .././config.py:7181
+#: .././config.py:7212
 msgid "Remove video from list"
 msgstr ""
 
-#: .././config.py:7647
+#: .././config.py:7678
 msgid ""
 "Fewer FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
 msgstr ""
 
-#: .././config.py:7657
+#: .././config.py:7688
 msgid "Show more FFmpeg options (when window re-opens)"
 msgstr ""
 
-#: .././config.py:7674
+#: .././config.py:7705
 msgid ""
 "More FFmpeg options will be visible when you click the 'Apply' or 'Reset' "
 "buttons (or when you close and then re-open the window)"
 msgstr ""
 
-#: .././config.py:7684
+#: .././config.py:7715
 msgid "Show fewer FFmpeg options (when window re-opens)"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:8135 .././config.py:8752 .././config.py:9176
-#: .././config.py:9663 .././config.py:10464
+#: .././config.py:8166 .././config.py:8783 .././config.py:9207
+#: .././config.py:9694 .././config.py:10495
 msgid "_General"
 msgstr ""
 
-#: .././config.py:8138 .././config.py:8755 .././config.py:9179
-#: .././config.py:9668
+#: .././config.py:8169 .././config.py:8786 .././config.py:9210
+#: .././config.py:9699
 msgid "General properties"
 msgstr ""
 
-#: .././config.py:8164
+#: .././config.py:8195
 msgid "Set the file (if this is the wrong one)"
 msgstr ""
 
-#: .././config.py:8184
+#: .././config.py:8215
 msgid "Always simulate download of this video"
 msgstr ""
 
-#: .././config.py:8207
+#: .././config.py:8238
 msgid "Video has been downloaded"
 msgstr ""
 
-#: .././config.py:8228
+#: .././config.py:8259
 msgid "Video is marked as unwatched"
 msgstr ""
 
-#: .././config.py:8249
+#: .././config.py:8280
 msgid "Video is archived"
 msgstr ""
 
-#: .././config.py:8256
+#: .././config.py:8287
 msgid "Video is bookmarked"
 msgstr ""
 
-#: .././config.py:8263
+#: .././config.py:8294
 msgid "Receive time"
 msgstr ""
 
-#: .././config.py:8277
+#: .././config.py:8308
 msgid "Video is favourite"
 msgstr ""
 
-#: .././config.py:8284
+#: .././config.py:8315
 msgid "Video is in waiting list"
 msgstr ""
 
-#: .././config.py:8316
+#: .././config.py:8347
 msgid "Livestream properties"
 msgstr ""
 
-#: .././config.py:8321
+#: .././config.py:8352
 msgid "Livestream status"
 msgstr ""
 
-#: .././config.py:8332
+#: .././config.py:8363
 msgid "Waiting to start"
 msgstr ""
 
-#: .././config.py:8334
+#: .././config.py:8365
 msgid "Stream has started"
 msgstr ""
 
-#: .././config.py:8336
+#: .././config.py:8367
 msgid "Not a livestream"
 msgstr ""
 
-#: .././config.py:8339
+#: .././config.py:8370
 msgid "Livestream message"
 msgstr ""
 
-#: .././config.py:8354
+#: .././config.py:8385
 msgid "Video is pre-recorded"
 msgstr ""
 
-#: .././config.py:8361
+#: .././config.py:8392
 msgid "Livestream actions"
 msgstr ""
 
-#: .././config.py:8370
+#: .././config.py:8401
 msgid "When the livestream starts, show a desktop notification"
 msgstr ""
 
-#: .././config.py:8379
+#: .././config.py:8410
 msgid "When the livestream starts, play an alarm"
 msgstr ""
 
-#: .././config.py:8389
+#: .././config.py:8420
 msgid "When the livestream starts, open it in the system's web browser"
 msgstr ""
 
-#: .././config.py:8401
+#: .././config.py:8432
 msgid "When the livestream starts, begin downloading it immediately"
 msgstr ""
 
-#: .././config.py:8412 .././config.py:13782
+#: .././config.py:8443 .././config.py:13813
 msgid "When a livestream stops, download it (overwriting any earlier file)"
 msgstr ""
 
-#: .././config.py:8428
+#: .././config.py:8459
 msgid "_Description"
 msgstr ""
 
-#: .././config.py:8432
+#: .././config.py:8463
 msgid "Video description"
 msgstr ""
 
-#: .././config.py:8453 .././config.py:8959
+#: .././config.py:8484 .././config.py:8990
 msgid "Errors / Warnings"
 msgstr ""
 
-#: .././config.py:8459
+#: .././config.py:8490
 msgid "Error messages produced the last time this video was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8474
+#: .././config.py:8505
 msgid ""
 "Warning messages produced the last time this video was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8517
+#: .././config.py:8548
 msgid "Select the correct video/audio file"
 msgstr ""
 
-#: .././config.py:8543
+#: .././config.py:8574
 msgid ""
 "The replacement video/audio file must be in the same channel, playlist or "
 "folder"
 msgstr ""
 
-#: .././config.py:8561
+#: .././config.py:8592
 msgid "You must select a valid video/audio file"
 msgstr ""
 
-#: .././config.py:8629
+#: .././config.py:8660
 msgid "Channel properties"
 msgstr ""
 
-#: .././config.py:8632
+#: .././config.py:8663
 msgid "Playlist properties"
 msgstr ""
 
-#: .././config.py:8773
+#: .././config.py:8804
 msgid "Always simulate download of videos in this channel"
 msgstr ""
 
-#: .././config.py:8775
+#: .././config.py:8806
 msgid "Always simulate download of videos in this playlist"
 msgstr ""
 
-#: .././config.py:8785
+#: .././config.py:8816
 msgid "Disable checking/downloading for this channel"
 msgstr ""
 
-#: .././config.py:8787
+#: .././config.py:8818
 msgid "Disable checking/downloading for this playlist"
 msgstr ""
 
-#: .././config.py:8797
+#: .././config.py:8828
 msgid "This channel is marked as a favourite"
 msgstr ""
 
-#: .././config.py:8799
+#: .././config.py:8830
 msgid "This playlist is marked as a favourite"
 msgstr ""
 
-#: .././config.py:8809
+#: .././config.py:8840
 msgid "Total videos"
 msgstr ""
 
-#: .././config.py:8833
+#: .././config.py:8864
 msgid "Favourite videos"
 msgstr ""
 
-#: .././config.py:8845
+#: .././config.py:8876
 msgid "Downloaded videos"
 msgstr ""
 
-#: .././config.py:8867 .././config.py:9408 .././config.py:11646
+#: .././config.py:8898 .././config.py:9439 .././config.py:11677
 msgid "_History"
 msgstr ""
 
-#: .././config.py:8872 .././config.py:9413 .././config.py:11653
+#: .././config.py:8903 .././config.py:9444 .././config.py:11684
 msgid "Download history"
 msgstr ""
 
-#: .././config.py:8886 .././config.py:9427 .././config.py:11667
+#: .././config.py:8917 .././config.py:9458 .././config.py:11698
 msgid "Draw"
 msgstr ""
 
-#: .././config.py:8914
+#: .././config.py:8945
 msgid "_RSS feed"
 msgstr ""
 
-#: .././config.py:8917
+#: .././config.py:8948
 msgid "RSS feed"
 msgstr ""
 
-#: .././config.py:8923
+#: .././config.py:8954
 msgid ""
 "If Tartube cannot detect the channel's RSS feed, you can enter the URL here"
 msgstr ""
 
-#: .././config.py:8928
+#: .././config.py:8959
 msgid ""
 "If Tartube cannot detect the playlist's RSS feed, you can enter the URL here"
 msgstr ""
 
-#: .././config.py:8933
+#: .././config.py:8964
 msgid "(The feed is used to detect livestreams on compatible websites)"
 msgstr ""
 
-#: .././config.py:8965
+#: .././config.py:8996
 msgid ""
 "Error messages produced the last time this channel was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8970
+#: .././config.py:9001
 msgid ""
 "Error messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8988
+#: .././config.py:9019
 msgid ""
 "Warning messages produced the last time this channel was checked/downloaded"
 msgstr ""
 
-#: .././config.py:8993
+#: .././config.py:9024
 msgid ""
 "Warning messages produced the last time this playlist was checked/downloaded"
 msgstr ""
 
-#: .././config.py:9059
+#: .././config.py:9090
 msgid "Folder properties"
 msgstr ""
 
-#: .././config.py:9196
+#: .././config.py:9227
 msgid "Always simulate download of videos"
 msgstr ""
 
-#: .././config.py:9203
+#: .././config.py:9234
 msgid "Disable checking/downloading for this folder"
 msgstr ""
 
-#: .././config.py:9210
+#: .././config.py:9241
 msgid "This folder is marked as a favourite"
 msgstr ""
 
-#: .././config.py:9217
+#: .././config.py:9248
 msgid "This folder is hidden"
 msgstr ""
 
-#: .././config.py:9224
+#: .././config.py:9255
 msgid "This folder can't be deleted by the user"
 msgstr ""
 
-#: .././config.py:9231
+#: .././config.py:9262
 msgid "This is a system-controlled folder"
 msgstr ""
 
-#: .././config.py:9238
+#: .././config.py:9269
 msgid "Only videos can be added to this folder"
 msgstr ""
 
-#: .././config.py:9245
+#: .././config.py:9276
 msgid "All contents deleted when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:9259 .././config.py:11475
+#: .././config.py:9290 .././config.py:11506
 msgid "_Statistics"
 msgstr ""
 
-#: .././config.py:9264 .././config.py:11482
+#: .././config.py:9295 .././config.py:11513
 msgid "Statistics"
 msgstr ""
 
-#: .././config.py:9285 .././config.py:11503
+#: .././config.py:9316 .././config.py:11534
 msgid "Downloaded"
 msgstr ""
 
-#: .././config.py:9329
+#: .././config.py:9360
 msgid "Sub-folders"
 msgstr ""
 
-#: .././config.py:9351
+#: .././config.py:9382
 msgid "Recalculate"
 msgstr ""
 
-#: .././config.py:9522
+#: .././config.py:9553
 msgid "Scheduled download"
 msgstr ""
 
-#: .././config.py:9673 .././config.py:12515
+#: .././config.py:9704 .././config.py:12546
 msgid "Scheduled download name"
 msgstr ""
 
-#: .././config.py:9685
+#: .././config.py:9716
 msgid "Download mode"
 msgstr ""
 
-#: .././config.py:9690
+#: .././config.py:9721
 msgid "Check channels, playlist and folders"
 msgstr ""
 
-#: .././config.py:9691
+#: .././config.py:9722
 msgid "Download channels, playlists and folders"
 msgstr ""
 
-#: .././config.py:9692
+#: .././config.py:9723
 msgid "Perform a custom download"
 msgstr ""
 
-#: .././config.py:9703 .././config.py:12481
+#: .././config.py:9734 .././config.py:12512
 msgid "Start mode"
 msgstr ""
 
-#: .././config.py:9708
+#: .././config.py:9739
 msgid "Perform this download at regular intervals"
 msgstr ""
 
-#: .././config.py:9709
+#: .././config.py:9740
 msgid "Perform this download when Tartube starts"
 msgstr ""
 
-#: .././config.py:9710
+#: .././config.py:9741
 msgid "Disable this scheduled download"
 msgstr ""
 
-#: .././config.py:9722
+#: .././config.py:9753
 msgid "Time between scheduled downloads"
 msgstr ""
 
-#: .././config.py:9766
+#: .././config.py:9797
 msgid "If another scheduled download is running:"
 msgstr ""
 
-#: .././config.py:9773
+#: .././config.py:9804
 msgid "Add channels, playlists and folders to the end of the queue"
 msgstr ""
 
-#: .././config.py:9779
+#: .././config.py:9810
 msgid "Add channels, playlists and folders to the beginning of the queue"
 msgstr ""
 
-#: .././config.py:9786
+#: .././config.py:9817
 msgid "Do nothing, just wait until the next scheduled download time"
 msgstr ""
 
-#: .././config.py:9801
+#: .././config.py:9832
 msgid "This scheduled download takes priority over others"
 msgstr ""
 
-#: .././config.py:9804
+#: .././config.py:9835
 msgid "Other scheduled downloads won't start until this one is finished"
 msgstr ""
 
-#: .././config.py:9813
+#: .././config.py:9844
 msgid ""
 "Ignore time-saving preferences, and check/download the whole channel/"
 "playlist/folder"
 msgstr ""
 
-#: .././config.py:9821
+#: .././config.py:9852
 msgid "Shut down Tartube when this scheduled download has finished"
 msgstr ""
 
-#: .././config.py:9839
+#: .././config.py:9870
 msgid "Media to download"
 msgstr ""
 
-#: .././config.py:9845
+#: .././config.py:9876
 msgid "Check/download everything"
 msgstr ""
 
-#: .././config.py:9853
+#: .././config.py:9884
 msgid "Only check/download the media below"
 msgstr ""
 
-#: .././config.py:9867
+#: .././config.py:9898
 msgid ""
 "Hint: you can drag and drop channels, playlists and your own folders here"
 msgstr ""
 
-#: .././config.py:9926
+#: .././config.py:9957
 msgid "Remove"
 msgstr ""
 
-#: .././config.py:10230
+#: .././config.py:10261
 msgid "System preferences"
 msgstr ""
 
-#: .././config.py:10483
+#: .././config.py:10514
 msgid "_Language"
 msgstr ""
 
-#: .././config.py:10488
+#: .././config.py:10519
 msgid "Language preferences"
 msgstr ""
 
-#: .././config.py:10493
+#: .././config.py:10524
 msgid "Language"
 msgstr ""
 
-#: .././config.py:10529
+#: .././config.py:10560
 msgid "_Stability"
 msgstr ""
 
-#: .././config.py:10539
+#: .././config.py:10570
 msgid "Gtk library"
 msgstr ""
 
-#: .././config.py:10544
+#: .././config.py:10575
 msgid "Current version of the system's Gtk library"
 msgstr ""
 
-#: .././config.py:10559
+#: .././config.py:10590
 msgid "Gtk stability"
 msgstr ""
 
-#: .././config.py:10598
+#: .././config.py:10629
 msgid ""
 "Tartube uses the Gtk graphics library. This library is notoriously "
 "unreliable and may even causes crashes."
 msgstr ""
 
-#: .././config.py:10605
+#: .././config.py:10636
 msgid ""
 "By default, some cosmetic features are disabled (for example, in the Videos "
 "tab, the list of videos is not updated until the end of a download "
 "operation)."
 msgstr ""
 
-#: .././config.py:10613
+#: .././config.py:10644
 msgid ""
 "If you think that your system Gtk has been fixed (or if you want to test Gtk "
 "stability), you can re-enable the cosmetic features."
 msgstr ""
 
-#: .././config.py:10623
+#: .././config.py:10654
 msgid "Disable some cosmetic features to prevent crashes and other issues"
 msgstr ""
 
-#: .././config.py:10641
+#: .././config.py:10672
 msgid "_Modules"
 msgstr ""
 
-#: .././config.py:10646
+#: .././config.py:10677
 msgid "Module availability"
 msgstr ""
 
-#: .././config.py:10652
+#: .././config.py:10683
 msgid "feedparser module is available (required for detecting livestreams)"
 msgstr ""
 
-#: .././config.py:10661
+#: .././config.py:10692
 msgid "matplotlib module is available (draws graphs)"
 msgstr ""
 
-#: .././config.py:10669
+#: .././config.py:10700
 msgid "moviepy module is available (finds the length of videos, if unknown)"
 msgstr ""
 
-#: .././config.py:10679
+#: .././config.py:10710
 msgid "playsound module is available (sound an alarm when a livestream starts)"
 msgstr ""
 
-#: .././config.py:10689
+#: .././config.py:10720
 msgid ""
 "XDG module is available (saves the config file in the standard location)"
 msgstr ""
 
-#: .././config.py:10699
+#: .././config.py:10730
 msgid ""
 "Notify module is available (shows desktop notifications; Linux/*BSD only)"
 msgstr ""
 
-#: .././config.py:10709
+#: .././config.py:10740
 msgid "Module preferences"
 msgstr ""
 
-#: .././config.py:10715
+#: .././config.py:10746
 msgid ""
 "Use 'moviepy' module to get a video's duration, if not known (may be slow)"
 msgstr ""
 
-#: .././config.py:10727
+#: .././config.py:10758
 msgid "Timeout applied when moviepy checks a video file"
 msgstr ""
 
-#: .././config.py:10752
+#: .././config.py:10783
 msgid "_Debugging"
 msgstr ""
 
-#: .././config.py:10760
+#: .././config.py:10791
 msgid "Debugging preferences"
 msgstr ""
 
-#: .././config.py:10766
+#: .././config.py:10797
 msgid ""
 "Debug messages are only visible in the terminal window (these settings are "
 "not saved)"
 msgstr ""
 
-#: .././config.py:10773
+#: .././config.py:10804
 msgid "Enable application debug messages (code in mainapp.py)"
 msgstr ""
 
-#: .././config.py:10782 .././config.py:10802
+#: .././config.py:10813 .././config.py:10833
 msgid "...but don't show timer debug messages"
 msgstr ""
 
-#: .././config.py:10793
+#: .././config.py:10824
 msgid "Enable main winddow debug messages (code in mainwin.py)"
 msgstr ""
 
-#: .././config.py:10813
+#: .././config.py:10844
 msgid "Enabled downloader debug messages (code in downloads.py)"
 msgstr ""
 
-#: .././config.py:10856
+#: .././config.py:10887
 msgid ""
 "Debugging messages are also visible if an empty file called debug.txt exists "
 "here:"
 msgstr ""
 
-#: .././config.py:10901
+#: .././config.py:10932
 msgid "_Device"
 msgstr ""
 
-#: .././config.py:10906
+#: .././config.py:10937
 msgid "Device preferences"
 msgstr ""
 
-#: .././config.py:10911
+#: .././config.py:10942
 msgid "Size of device (in Mb)"
 msgstr ""
 
-#: .././config.py:10923
+#: .././config.py:10954
 msgid "Free space on device (in Mb)"
 msgstr ""
 
-#: .././config.py:10935
+#: .././config.py:10966
 msgid "Warn user if disk space is less than"
 msgstr ""
 
-#: .././config.py:10953
+#: .././config.py:10984
 msgid "Halt downloads if disk space is less than"
 msgstr ""
 
-#: .././config.py:10992
+#: .././config.py:11023
 msgid "Configuration preferences"
 msgstr ""
 
-#: .././config.py:10997
+#: .././config.py:11028
 msgid "Tartube configuration file loaded from:"
 msgstr ""
 
-#: .././config.py:11016
+#: .././config.py:11047
 msgid "D_atabase"
 msgstr ""
 
-#: .././config.py:11022
+#: .././config.py:11053
 msgid "Database preferences"
 msgstr ""
 
-#: .././config.py:11027
+#: .././config.py:11058
 msgid "Tartube data folder"
 msgstr ""
 
-#: .././config.py:11039
+#: .././config.py:11070
 msgid "Add new database"
 msgstr ""
 
-#: .././config.py:11041
+#: .././config.py:11072
 msgid "Change to a different data folder"
 msgstr ""
 
-#: .././config.py:11048
+#: .././config.py:11079
 msgid "Check and repair database"
 msgstr ""
 
-#: .././config.py:11051
+#: .././config.py:11082
 msgid "Check for inconsistencies, and repair them"
 msgstr ""
 
-#: .././config.py:11056
+#: .././config.py:11087
 msgid "Recent data folders"
 msgstr ""
 
-#: .././config.py:11070
+#: .././config.py:11101
 msgid "Switch to the selected data folder"
 msgstr ""
 
-#: .././config.py:11080
+#: .././config.py:11111
 msgid "Forget"
 msgstr ""
 
-#: .././config.py:11083
+#: .././config.py:11114
 msgid "Remove the selected data folder from the list"
 msgstr ""
 
-#: .././config.py:11092
+#: .././config.py:11123
 msgid "Forget all"
 msgstr ""
 
-#: .././config.py:11095
+#: .././config.py:11126
 msgid "Forget every folder in this list (except the current one)"
 msgstr ""
 
-#: .././config.py:11108
+#: .././config.py:11139
 msgid "Move the selected folder up the list"
 msgstr ""
 
-#: .././config.py:11116
+#: .././config.py:11147
 msgid "Move the selected folder down the list"
 msgstr ""
 
-#: .././config.py:11144
+#: .././config.py:11175
 msgid ""
 "On startup, load the first database on the list (not the most recently-use "
 "one)"
 msgstr ""
 
-#: .././config.py:11154
+#: .././config.py:11185
 msgid "If one database is in use, try to load others"
 msgstr ""
 
-#: .././config.py:11162
+#: .././config.py:11193
 msgid "Add new data directories to this list"
 msgstr ""
 
-#: .././config.py:11201
+#: .././config.py:11232
 msgid "_Backups"
 msgstr ""
 
-#: .././config.py:11205
+#: .././config.py:11236
 msgid "Backup preferences"
 msgstr ""
 
-#: .././config.py:11210
+#: .././config.py:11241
 msgid ""
 "When saving a database file, Tartube makes a backup copy of it (in case "
 "something goes wrong)"
 msgstr ""
 
-#: .././config.py:11219
+#: .././config.py:11250
 msgid "Delete the backup file as soon as the save procedure is finished"
 msgstr ""
 
-#: .././config.py:11229
+#: .././config.py:11260
 msgid "Keep the backup file, replacing any previous backup file"
 msgstr ""
 
-#: .././config.py:11240
+#: .././config.py:11271
 msgid ""
 "Make a new backup file once per day, after the day's first save procedure"
 msgstr ""
 
-#: .././config.py:11251
+#: .././config.py:11282
 msgid "Make a new backup file for every save procedure"
 msgstr ""
 
-#: .././config.py:11300
+#: .././config.py:11331
 msgid "Automatic video deletion preferences"
 msgstr ""
 
-#: .././config.py:11305
+#: .././config.py:11336
 msgid "Automatically delete downloaded videos after this many days"
 msgstr ""
 
-#: .././config.py:11319
+#: .././config.py:11350
 msgid "...but only delete videos which have been watched"
 msgstr ""
 
-#: .././config.py:11343
+#: .././config.py:11374
 msgid "Video matching preferences"
 msgstr ""
 
-#: .././config.py:11348
+#: .././config.py:11379
 msgid "When matching videos on the filesystem:"
 msgstr ""
 
-#: .././config.py:11354
+#: .././config.py:11385
 msgid "The video names must match exactly"
 msgstr ""
 
-#: .././config.py:11361
+#: .././config.py:11392
 msgid "The first # characters must match exactly"
 msgstr ""
 
-#: .././config.py:11375
+#: .././config.py:11406
 msgid "Ignore the last # characters; the remaining name must match exactly"
 msgstr ""
 
-#: .././config.py:11421
+#: .././config.py:11452
 msgid "_Temporary folders"
 msgstr ""
 
-#: .././config.py:11427
+#: .././config.py:11458
 msgid "Temporary folder preferences"
 msgstr ""
 
-#: .././config.py:11432
+#: .././config.py:11463
 msgid "Empty temporary folders when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:11441
+#: .././config.py:11472
 msgid "(N.B. Temporary folders are always emptied when Tartube starts up)"
 msgstr ""
 
-#: .././config.py:11449
+#: .././config.py:11480
 msgid "Open temporary folders (on the desktop) when Tartube shuts down"
 msgstr ""
 
-#: .././config.py:11487
+#: .././config.py:11518
 msgid "The Tartube database contains:"
 msgstr ""
 
-#: .././config.py:11547
+#: .././config.py:11578
 msgid "Custom folders"
 msgstr ""
 
-#: .././config.py:11570
+#: .././config.py:11601
 msgid "Calculate"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:11696
+#: .././config.py:11727
 msgid "_Windows"
 msgstr ""
 
-#: .././config.py:11719
+#: .././config.py:11750
 msgid "_Main window"
 msgstr ""
 
-#: .././config.py:11725
+#: .././config.py:11756
 msgid "Main window preferences"
 msgstr ""
 
-#: .././config.py:11730
+#: .././config.py:11761
 msgid "Remember the size of the main window when shutting down"
 msgstr ""
 
-#: .././config.py:11738
+#: .././config.py:11769
 msgid "Also remember the position of main window sliders"
 msgstr ""
 
-#: .././config.py:11755
+#: .././config.py:11786
 msgid "Don't show the main window toolbar"
 msgstr ""
 
-#: .././config.py:11763
+#: .././config.py:11794
 msgid "Don't show labels in the main window toolbar"
 msgstr ""
 
-#: .././config.py:11781
+#: .././config.py:11812
 msgid ""
 "Replace stock icons with custom icons (in case stock icons are not visible)"
 msgstr ""
 
-#: .././config.py:11791
+#: .././config.py:11822
 msgid "Show tooltips for videos, channels, playlists and folders"
 msgstr ""
 
-#: .././config.py:11799
+#: .././config.py:11830
 msgid "Show errors/warnings in tooltips (but not in the Videos tab)"
 msgstr ""
 
-#: .././config.py:11817
+#: .././config.py:11848
 msgid "Disable the 'Download all' buttons in the toolbar and the Videos Tab"
 msgstr ""
 
-#: .././config.py:11828
+#: .././config.py:11859
 msgid "In the Progress Tab, hide finished videos / channels / playlists"
 msgstr ""
 
-#: .././config.py:11837
+#: .././config.py:11868
 msgid "In the Progress Tab, show results in reverse order"
 msgstr ""
 
-#: .././config.py:11845
+#: .././config.py:11876
 msgid "When Tartube starts, automatically open the Classic Mode tab"
 msgstr ""
 
-#: .././config.py:11859
+#: .././config.py:11890
 msgid ""
 "In the Classic Mode Tab, when adding URLs, remove duplicates rather than "
 "retaining them"
 msgstr ""
 
-#: .././config.py:11873
+#: .././config.py:11904
 msgid "In the Errors/Warnings Tab, don't reset the tab text when it is clicked"
 msgstr ""
 
-#: .././config.py:11896
+#: .././config.py:11927
 msgid "Video Index (left side of the Videos Tab)"
 msgstr ""
 
-#: .././config.py:11902
+#: .././config.py:11933
 msgid "Show smaller icons in the Video Index"
 msgstr ""
 
-#: .././config.py:11912
+#: .././config.py:11943
 msgid ""
 "In the Video Index, show detailed statistics about the videos in each "
 "channel / playlist / folder"
 msgstr ""
 
-#: .././config.py:11923
+#: .././config.py:11954
 msgid ""
 "After clicking on a folder, automatically expand/collapse the tree around it"
 msgstr ""
 
-#: .././config.py:11934
+#: .././config.py:11965
 msgid "Expand the whole tree, not just the level beneath the clicked folder"
 msgstr ""
 
-#: .././config.py:11955
+#: .././config.py:11986
 msgid "Video Catalogue (right side of the Videos Tab)"
 msgstr ""
 
-#: .././config.py:11962
+#: .././config.py:11993
 msgid "Show 'today' and 'yesterday' as the date, when possible"
 msgstr ""
 
-#: .././config.py:11972
+#: .././config.py:12003
 msgid "Draw a frame around each video"
 msgstr ""
 
-#: .././config.py:11982
+#: .././config.py:12013
 msgid "Draw status icons for each video"
 msgstr ""
 
-#: .././config.py:11991
+#: .././config.py:12022
 msgid "Thumbnail size (when videos are displayed on a grid)"
 msgstr ""
 
-#: .././config.py:12019
+#: .././config.py:12050
 msgid "Show livestreams with a different background colour"
 msgstr ""
 
-#: .././config.py:12027
+#: .././config.py:12058
 msgid "Use same background colours for livestream and debut videos"
 msgstr ""
 
-#: .././config.py:12055
+#: .././config.py:12086
 msgid "_Drag"
 msgstr ""
 
-#: .././config.py:12059
+#: .././config.py:12090
 msgid "Drag and drop preferences"
 msgstr ""
 
-#: .././config.py:12065
+#: .././config.py:12096
 msgid "When dragging and dropping videos to an external application..."
 msgstr ""
 
-#: .././config.py:12071
+#: .././config.py:12102
 msgid "Transfer the video's full file path"
 msgstr ""
 
-#: .././config.py:12079
+#: .././config.py:12110
 msgid "Transfer the video's source URL"
 msgstr ""
 
-#: .././config.py:12087
+#: .././config.py:12118
 msgid "Transfer the video's name"
 msgstr ""
 
-#: .././config.py:12095
+#: .././config.py:12126
 msgid "Transfer the thumbnail's full file path"
 msgstr ""
 
-#: .././config.py:12111
+#: .././config.py:12142
 msgid "_System tray"
 msgstr ""
 
-#: .././config.py:12117
+#: .././config.py:12148
 msgid "System tray preferences"
 msgstr ""
 
-#: .././config.py:12122
+#: .././config.py:12153
 msgid "Show icon in system tray"
 msgstr ""
 
-#: .././config.py:12131
+#: .././config.py:12162
 msgid "Close to the tray, rather than closing the application"
 msgstr ""
 
-#: .././config.py:12157
+#: .././config.py:12188
 msgid "D_ialogues"
 msgstr ""
 
-#: .././config.py:12163
+#: .././config.py:12194
 msgid "Dialogue window preferences"
 msgstr ""
 
-#: .././config.py:12168
+#: .././config.py:12199
 msgid "When adding channels/playlists, keep the dialogue window open"
 msgstr ""
 
-#: .././config.py:12178
+#: .././config.py:12209
 msgid "When the dialogue window opens, add URLs from the system clipboard"
 msgstr ""
 
-#: .././config.py:12206
+#: .././config.py:12237
 msgid "_Errors/Warnings"
 msgstr ""
 
-#: .././config.py:12214
+#: .././config.py:12245
 msgid "Errors/Warnings tab preferences"
 msgstr ""
 
-#: .././config.py:12219
+#: .././config.py:12250
 msgid "Show Tartube error messages"
 msgstr ""
 
-#: .././config.py:12227
+#: .././config.py:12258
 msgid "Show Tartube warning messages"
 msgstr ""
 
-#: .././config.py:12235
+#: .././config.py:12266
 msgid "Show server error messages"
 msgstr ""
 
-#: .././config.py:12246
+#: .././config.py:12277
 msgid "Show server warning messages"
 msgstr ""
 
-#: .././config.py:12258
+#: .././config.py:12289
 msgid "Downloader error/warning preferences"
 msgstr ""
 
-#: .././config.py:12263
+#: .././config.py:12294
 msgid "TRANSLATOR'S NOTE: These error messages are always in English"
 msgstr ""
 
-#: .././config.py:12267
+#: .././config.py:12298
 msgid "Ignore 'Child process exited with non-zero code' errors"
 msgstr ""
 
-#: .././config.py:12276
+#: .././config.py:12307
 msgid ""
 "Ignore 'Unable to download video data' and 'Unable to extract video data' "
 "errors"
 msgstr ""
 
-#: .././config.py:12286
+#: .././config.py:12317
 msgid "Ignore 'Did not get any data blocks' errors"
 msgstr ""
 
-#: .././config.py:12295
+#: .././config.py:12326
 msgid "Ignore 'Requested formats are incompatible for merge' warnings"
 msgstr ""
 
-#: .././config.py:12304
+#: .././config.py:12335
 msgid "Ignore 'No video formats found' errors"
 msgstr ""
 
-#: .././config.py:12312
+#: .././config.py:12343
 msgid "Ignore 'There are no annotations to write' warnings"
 msgstr ""
 
-#: .././config.py:12320
+#: .././config.py:12351
 msgid "Ignore 'Video doesn't have subtitles' warnings"
 msgstr ""
 
-#: .././config.py:12336
+#: .././config.py:12367
 msgid "_Websites"
 msgstr ""
 
-#: .././config.py:12344
+#: .././config.py:12375
 msgid "YouTube error/warning preferences"
 msgstr ""
 
-#: .././config.py:12349
+#: .././config.py:12380
 msgid "Ignore YouTube copyright errors"
 msgstr ""
 
-#: .././config.py:12357
+#: .././config.py:12388
 msgid "Ignore YouTube age-restriction errors"
 msgstr ""
 
-#: .././config.py:12365
+#: .././config.py:12396
 msgid "Ignore YouTube deletion by uploader errors"
 msgstr ""
 
-#: .././config.py:12373
+#: .././config.py:12404
 msgid "Ignore YouTube payment errors"
 msgstr ""
 
-#: .././config.py:12382
+#: .././config.py:12413
 msgid "General preferences"
 msgstr ""
 
-#: .././config.py:12388
+#: .././config.py:12419
 msgid ""
 "Ignore any errors/warnings which match lines in this list (applies to all "
 "websites)"
 msgstr ""
 
-#: .././config.py:12402
+#: .././config.py:12433
 msgid "These are ordinary strings"
 msgstr ""
 
-#: .././config.py:12409
+#: .././config.py:12440
 msgid "These are regular expressions (regexes)"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:12438
+#: .././config.py:12469
 msgid "_Scheduling"
 msgstr ""
 
-#: .././config.py:12455
+#: .././config.py:12486
 msgid "_Start"
 msgstr ""
 
-#: .././config.py:12461
+#: .././config.py:12492
 msgid "Scheduled download preferences"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Priority"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Whole"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "Shutdown"
 msgstr ""
 
-#: .././config.py:12482
+#: .././config.py:12513
 msgid "D/L All"
 msgstr ""
 
-#: .././config.py:12483
+#: .././config.py:12514
 msgid "Join mode"
 msgstr ""
 
-#: .././config.py:12537 .././config.py:14468 .././config.py:14733
+#: .././config.py:12568 .././config.py:14499 .././config.py:14764
 msgid "Edit"
 msgstr ""
 
-#: .././config.py:12564 .././config.py:14504 .././config.py:14769
+#: .././config.py:12595 .././config.py:14535 .././config.py:14800
 msgid "Delete"
 msgstr ""
 
-#: .././config.py:12632
+#: .././config.py:12663
 msgid "S_top"
 msgstr ""
 
-#: .././config.py:12638
+#: .././config.py:12669
 msgid "Scheduled stop preferences"
 msgstr ""
 
-#: .././config.py:12643
+#: .././config.py:12674
 msgid "Stop all download operations after this much time"
 msgstr ""
 
-#: .././config.py:12691
+#: .././config.py:12722
 msgid "Stop all download operations after this many videos"
 msgstr ""
 
-#: .././config.py:12718
+#: .././config.py:12749
 msgid "Stop all download operations after this much disk space"
 msgstr ""
 
-#: .././config.py:12761
+#: .././config.py:12792
 msgid ""
 "N.B. Disk space is estimated. This setting does not apply to simulated "
 "downloads"
 msgstr ""
 
-#: .././config.py:12799
+#: .././config.py:12830
 msgid "_Performance"
 msgstr ""
 
-#: .././config.py:12807
+#: .././config.py:12838
 msgid "Performance limits"
 msgstr ""
 
-#: .././config.py:12812
+#: .././config.py:12843
 msgid "Limit simultaneous downloads to"
 msgstr ""
 
-#: .././config.py:12830
+#: .././config.py:12861
 msgid "Limit download speed to"
 msgstr ""
 
-#: .././config.py:12856
+#: .././config.py:12887
 msgid "Overriding video format options, limit video resolution to"
 msgstr ""
 
-#: .././config.py:12878
+#: .././config.py:12909
 msgid "Time-saving settings"
 msgstr ""
 
-#: .././config.py:12884
+#: .././config.py:12915
 msgid ""
 "Stop checking/downloading a channel/playlist when it starts sending videos "
 "you already have"
 msgstr ""
 
-#: .././config.py:12895
+#: .././config.py:12926
 msgid "Stop after this many videos (when checking)"
 msgstr ""
 
-#: .././config.py:12910
+#: .././config.py:12941
 msgid "Stop after this many videos (when downloading)"
 msgstr ""
 
-#: .././config.py:12941
+#: .././config.py:12972
 msgid "P_references"
 msgstr ""
 
-#: .././config.py:12949
+#: .././config.py:12980
 msgid "URL flexibility preferences"
 msgstr ""
 
-#: .././config.py:12956
+#: .././config.py:12987
 msgid ""
 "If a video's URL represents a channel/playlist, not a video, don't download "
 "it"
 msgstr ""
 
-#: .././config.py:12965
+#: .././config.py:12996
 msgid "...or, download multiple videos into the containing folder"
 msgstr ""
 
-#: .././config.py:12975
+#: .././config.py:13006
 msgid "...or, create a new channel, and download the videos into that"
 msgstr ""
 
-#: .././config.py:12986
+#: .././config.py:13017
 msgid "...or, create a new playlist, and download the videos into that"
 msgstr ""
 
-#: .././config.py:13018
+#: .././config.py:13049
 msgid "Missing video preferences"
 msgstr ""
 
-#: .././config.py:13024
+#: .././config.py:13055
 msgid ""
 "Add videos which have been removed from a channel/playlist to the Missing "
 "Videos folder"
 msgstr ""
 
-#: .././config.py:13035
+#: .././config.py:13066
 msgid "Only add videos that were uploaded within this many days"
 msgstr ""
 
-#: .././config.py:13076
+#: .././config.py:13107
 msgid "Invidious mirror"
 msgstr ""
 
-#: .././config.py:13082
+#: .././config.py:13113
 msgid "To find an updated list of Invidious mirrors, use any search engine!"
 msgstr ""
 
-#: .././config.py:13095 .././config.py:13407
+#: .././config.py:13126 .././config.py:13438
 msgid "Type the exact text that replaces youtube.com e.g."
 msgstr ""
 
-#: .././config.py:13121
+#: .././config.py:13152
 msgid "Download operation preferences"
 msgstr ""
 
-#: .././config.py:13127
+#: .././config.py:13158
 msgid "Automatically update downloader before every download operation"
 msgstr ""
 
-#: .././config.py:13139
+#: .././config.py:13170
 msgid "Automatically save files at the end of all operations"
 msgstr ""
 
-#: .././config.py:13149
+#: .././config.py:13180
 msgid "For simulated downloads, don't check a video in a folder more than once"
 msgstr ""
 
-#: .././config.py:13160
+#: .././config.py:13191
 msgid "If a download stalls, restart it after this many minutes"
 msgstr ""
 
-#: .././config.py:13181
+#: .././config.py:13212
 msgid "If a network problem is detected, restart the download immediately"
 msgstr ""
 
-#: .././config.py:13193
+#: .././config.py:13224
 msgid "Maximum restarts after a stalled download (0 for no maximum)"
 msgstr ""
 
-#: .././config.py:13234
+#: .././config.py:13265
 msgid ""
 "Allow downloader to create its own archive file (so deleted videos are not "
 "re-downloaded)"
 msgstr ""
 
-#: .././config.py:13245
+#: .././config.py:13276
 msgid ""
 "Also create an archive file when downloading from the Classic Mode tab (not "
 "recommended)"
 msgstr ""
 
-#: .././config.py:13256
+#: .././config.py:13287
 msgid "When checking videos, apply a 60-second timeout"
 msgstr ""
 
-#: .././config.py:13266
+#: .././config.py:13297
 msgid ""
 "Convert .webp thumbnails into .jpg thumbnails (using FFmpeg) after "
 "downloading them"
 msgstr ""
 
-#: .././config.py:13283
+#: .././config.py:13314
 msgid "_Custom"
 msgstr ""
 
-#: .././config.py:13288
+#: .././config.py:13319
 msgid "Custom download preferences"
 msgstr ""
 
-#: .././config.py:13294
+#: .././config.py:13325
 msgid ""
 "In custom downloads, download each video independently of its channel or "
 "playlist"
 msgstr ""
 
-#: .././config.py:13305
+#: .././config.py:13336
 msgid ""
 "In custom downloads, apply a delay after each video/channel/playlist is "
 "download"
 msgstr ""
 
-#: .././config.py:13315
+#: .././config.py:13346
 msgid "Maximum delay to apply (in minutes)"
 msgstr ""
 
-#: .././config.py:13332
+#: .././config.py:13363
 msgid "Minimum delay to apply (in minutes; randomises the actual delay)"
 msgstr ""
 
-#: .././config.py:13355
+#: .././config.py:13386
 msgid "In custom downloads, obtain a YouTube video from the original website"
 msgstr ""
 
-#: .././config.py:13365
+#: .././config.py:13396
 msgid "In custom downloads, obtain the video from HookTube rather than YouTube"
 msgstr ""
 
-#: .././config.py:13377
+#: .././config.py:13408
 msgid ""
 "In custom downloads, obtain the video from Invidious rather than YouTube"
 msgstr ""
 
-#: .././config.py:13389
+#: .././config.py:13420
 msgid ""
 "In custom downloads, obtain the video from the YouTube front-end specified "
 "below"
 msgstr ""
 
-#: .././config.py:13489
+#: .././config.py:13520
 msgid "Livestream preferences (compatible websites only)"
 msgstr ""
 
-#: .././config.py:13495
+#: .././config.py:13526
 msgid "Detect livestreams announced within this many days"
 msgstr ""
 
-#: .././config.py:13510
+#: .././config.py:13541
 msgid "How often to check the status of livestreams (in minutes)"
 msgstr ""
 
-#: .././config.py:13529
+#: .././config.py:13560
 msgid "Check more frequently when a livestream is due to start"
 msgstr ""
 
-#: .././config.py:13572
+#: .././config.py:13603
 msgid "Broadcast preferences (compatible websites only)"
 msgstr ""
 
-#: .././config.py:13579
+#: .././config.py:13610
 msgid ""
 "Use Youtube Stream Capture to download broadcasting livestreams (requires "
 "aria2)"
 msgstr ""
 
-#: .././config.py:13589
+#: .././config.py:13620
 msgid "Timeout after this many minutes of inactivity"
 msgstr ""
 
-#: .././config.py:13603
+#: .././config.py:13634
 msgid "Number of restarts after a timeout"
 msgstr ""
 
-#: .././config.py:13618
+#: .././config.py:13649
 msgid ""
 "Bypass usual limits on simultaneous downloads, so that all broadcasts can be "
 "downloaded"
 msgstr ""
 
-#: .././config.py:13659
+#: .././config.py:13690
 msgid "_Proxies"
 msgstr ""
 
-#: .././config.py:13665
+#: .././config.py:13696
 msgid "Proxies"
 msgstr ""
 
-#: .././config.py:13672
+#: .././config.py:13703
 msgid ""
 "During a download operation, Tartube will cycle betwween the proxies in this "
 "list"
 msgstr ""
 
-#: .././config.py:13693
+#: .././config.py:13724
 msgid "_Actions"
 msgstr ""
 
-#: .././config.py:13702
+#: .././config.py:13733
 msgid "Livestream actions (can be toggled for individual videos)"
 msgstr ""
 
-#: .././config.py:13709
+#: .././config.py:13740
 msgid "(currently disabled on MS Windows)"
 msgstr ""
 
-#: .././config.py:13714
+#: .././config.py:13745
 msgid "When a livestream starts, show a desktop notification"
 msgstr ""
 
-#: .././config.py:13728
+#: .././config.py:13759
 msgid "When a livestream starts, sound an alarm"
 msgstr ""
 
-#: .././config.py:13751
+#: .././config.py:13782
 msgid "Plays the selected sound effect"
 msgstr ""
 
-#: .././config.py:13758
+#: .././config.py:13789
 msgid "When a livestream starts, open it in the system's web browser"
 msgstr ""
 
-#: .././config.py:13770
+#: .././config.py:13801
 msgid "When a livestream starts, begin downloading it immediately"
 msgstr ""
 
-#: .././config.py:13796
+#: .././config.py:13827
 msgid "Desktop notification preferences"
 msgstr ""
 
-#: .././config.py:13803
+#: .././config.py:13834
 msgid "Show a dialogue window at the end of an operation"
 msgstr ""
 
-#: .././config.py:13828
+#: .././config.py:13859
 msgid "Don't notify the user at the end of an operation"
 msgstr ""
 
-#: .././config.py:13882
+#: .././config.py:13913
 msgid "_Forks"
 msgstr ""
 
-#: .././config.py:13888
+#: .././config.py:13919
 msgid "Forks of youtube-dl"
 msgstr ""
 
-#: .././config.py:13917
-msgid "Use youtube-dlc"
+#: .././config.py:13948
+msgid "Use yt-dlp"
 msgstr ""
 
-#: .././config.py:13946
+#: .././config.py:13977
 msgid "Use youtube-dl"
 msgstr ""
 
-#: .././config.py:13974
+#: .././config.py:14005
 msgid "Use a different fork of youtube-dl:"
 msgstr ""
 
-#: .././config.py:14051
+#: .././config.py:14082
 msgid "_File paths"
 msgstr ""
 
-#: .././config.py:14058
+#: .././config.py:14089
 msgid "Downloader file paths"
 msgstr ""
 
-#: .././config.py:14064
+#: .././config.py:14095
 msgid "Path to the executable"
 msgstr ""
 
 #. (Signal connect appears below)
-#: .././config.py:14070 .././config.py:14218 .././config.py:14259
-#: .././config.py:14329 .././config.py:20068
+#: .././config.py:14101 .././config.py:14249 .././config.py:14290
+#: .././config.py:14360 .././config.py:20098
 msgid "Use default path"
 msgstr ""
 
-#: .././config.py:14075 .././config.py:20080
+#: .././config.py:14106 .././config.py:20110
 msgid "Use local path"
 msgstr ""
 
-#: .././config.py:14079
+#: .././config.py:14110
 msgid "Use custom path"
 msgstr ""
 
-#: .././config.py:14087 .././config.py:20094
+#: .././config.py:14118 .././config.py:20124
 msgid "Use PyPI path"
 msgstr ""
 
-#: .././config.py:14138
+#: .././config.py:14169
 msgid "Command for update operations"
 msgstr ""
 
-#: .././config.py:14186
+#: .././config.py:14217
 msgid "_FFmpeg / AVConv"
 msgstr ""
 
-#: .././config.py:14194
+#: .././config.py:14225
 msgid "Post-processing file paths"
 msgstr ""
 
-#: .././config.py:14199
+#: .././config.py:14230
 msgid ""
 "You only need to set these paths if Tartube cannot find FFmpeg / AVConv "
 "automatically"
 msgstr ""
 
-#: .././config.py:14206
+#: .././config.py:14237
 msgid "Path to the FFmpeg executable"
 msgstr ""
 
-#: .././config.py:14233
+#: .././config.py:14264
 msgid "Install from main menu"
 msgstr ""
 
-#: .././config.py:14247
+#: .././config.py:14278
 msgid "Path to the AVConv executable"
 msgstr ""
 
-#: .././config.py:14274
+#: .././config.py:14305
 msgid "Not supported on MS Windows"
 msgstr ""
 
-#: .././config.py:14297
+#: .././config.py:14328
 msgid "_Stream Capture"
 msgstr ""
 
-#: .././config.py:14305
+#: .././config.py:14336
 msgid "Youtube Stream Capture file path"
 msgstr ""
 
-#: .././config.py:14310
+#: .././config.py:14341
 msgid ""
 "Tartube includes a copy of this script, but you can use a different copy, if "
 "you want"
 msgstr ""
 
-#: .././config.py:14317
+#: .././config.py:14348
 msgid "Path to the YT Stream Capture executable"
 msgstr ""
 
-#: .././config.py:14375
+#: .././config.py:14406
 msgid "_Download options"
 msgstr ""
 
-#: .././config.py:14382
+#: .././config.py:14413
 msgid "List of download options managers"
 msgstr ""
 
-#: .././config.py:14402
+#: .././config.py:14433
 msgid "Classic Mode"
 msgstr ""
 
-#: .././config.py:14403
+#: .././config.py:14434
 msgid "Applied to media"
 msgstr ""
 
-#: .././config.py:14477 .././config.py:14742
+#: .././config.py:14508 .././config.py:14773
 msgid "Export"
 msgstr ""
 
-#: .././config.py:14486 .././config.py:14751
+#: .././config.py:14517 .././config.py:14782
 msgid "Clone"
 msgstr ""
 
-#: .././config.py:14495
+#: .././config.py:14526
 msgid "Use in Classic Mode tab"
 msgstr ""
 
-#: .././config.py:14520 .././config.py:14785
+#: .././config.py:14551 .././config.py:14816
 msgid "Refresh list"
 msgstr ""
 
-#: .././config.py:14601
+#: .././config.py:14632
 msgid "_Preferences"
 msgstr ""
 
-#: .././config.py:14608
+#: .././config.py:14639
 msgid "Download options preferences"
 msgstr ""
 
-#: .././config.py:14614
+#: .././config.py:14645
 msgid ""
 "When applying download options to something, clone the general download "
 "options"
 msgstr ""
 
-#: .././config.py:14625
+#: .././config.py:14656
 msgid "After downloading a video, destroy its download options"
 msgstr ""
 
-#: .././config.py:14642
+#: .././config.py:14673
 msgid "_FFmpeg options"
 msgstr ""
 
-#: .././config.py:14649
+#: .././config.py:14680
 msgid "List of FFmpeg options managers"
 msgstr ""
 
-#: .././config.py:14669
+#: .././config.py:14700
 msgid "Current"
 msgstr ""
 
-#: .././config.py:14760
+#: .././config.py:14791
 msgid "Use these options"
 msgstr ""
 
 #. Add this tab...
-#: .././config.py:14851
+#: .././config.py:14882
 msgid "O_utput"
 msgstr ""
 
-#: .././config.py:14870
+#: .././config.py:14901
 msgid "_Output Tab"
 msgstr ""
 
-#: .././config.py:14878
+#: .././config.py:14909
 msgid "Output Tab preferences"
 msgstr ""
 
-#: .././config.py:14883
+#: .././config.py:14914
 msgid "Display downloader system commands in the Output Tab"
 msgstr ""
 
-#: .././config.py:14892
+#: .././config.py:14923
 msgid "Display output from downloader's STDOUT in the Output Tab"
 msgstr ""
 
-#: .././config.py:14901 .././config.py:15063
+#: .././config.py:14932 .././config.py:15094
 msgid "...but don't write each video's JSON data"
 msgstr ""
 
-#: .././config.py:14912 .././config.py:15074
+#: .././config.py:14943 .././config.py:15105
 msgid "...but don't write each video's download progress"
 msgstr ""
 
-#: .././config.py:14931
+#: .././config.py:14962
 msgid "Display output from downloader's STDERR in the Output Tab"
 msgstr ""
 
-#: .././config.py:14940
+#: .././config.py:14971
 msgid "Limit the size of Output Tab pages to"
 msgstr ""
 
-#: .././config.py:14961
+#: .././config.py:14992
 msgid "Empty pages in the Output Tab at the start of every operation"
 msgstr ""
 
-#: .././config.py:14971
+#: .././config.py:15002
 msgid ""
 "Show a summary of active threads (changes are applied when Tartube restarts)"
 msgstr ""
 
-#: .././config.py:14983
+#: .././config.py:15014
 msgid "During an update operation, automatically switch to the Output tab"
 msgstr ""
 
-#: .././config.py:14994
+#: .././config.py:15025
 msgid "During a refresh operation, show all matching videos in the Output Tab"
 msgstr ""
 
-#: .././config.py:15005
+#: .././config.py:15036
 msgid "...also show all non-matching videos"
 msgstr ""
 
-#: .././config.py:15034
+#: .././config.py:15065
 msgid "_Terminal window"
 msgstr ""
 
-#: .././config.py:15040
+#: .././config.py:15071
 msgid "Terminal window preferences"
 msgstr ""
 
-#: .././config.py:15045
+#: .././config.py:15076
 msgid "Write downloader system commands to the terminal window"
 msgstr ""
 
-#: .././config.py:15054
+#: .././config.py:15085
 msgid "Write output from downloader's STDOUT to the terminal window"
 msgstr ""
 
-#: .././config.py:15096
+#: .././config.py:15127
 msgid "Write output from downloader's STDERR to the terminal window"
 msgstr ""
 
-#: .././config.py:15115
+#: .././config.py:15146
 msgid "_Both"
 msgstr ""
 
-#: .././config.py:15120
+#: .././config.py:15151
 msgid ""
 "Special preferences (applies to both the Output Tab and the terminal window)"
 msgstr ""
 
-#: .././config.py:15127
+#: .././config.py:15158
 msgid "Downloader writes verbose output (youtube-dl debugging mode)"
 msgstr ""
 
-#: .././config.py:15136
+#: .././config.py:15167
 msgid "Youtube Stream Capture writes verbose output"
 msgstr ""
 
-#: .././config.py:16053
+#: .././config.py:16084
 msgid "Are you sure you want to create a new database at this location?"
 msgstr ""
 
-#: .././config.py:16160
+#: .././config.py:16191
 msgid "Are you sure you want to forget this database?"
 msgstr ""
 
-#: .././config.py:16195
+#: .././config.py:16226
 msgid "Are you sure you want to forget all databases except the current one?"
 msgstr ""
 
-#: .././config.py:16399
+#: .././config.py:16430
 msgid "No database exists at this location:"
 msgstr ""
 
-#: .././config.py:16401
+#: .././config.py:16432
 msgid "Do you want to create a new one?"
 msgstr ""
 
-#: .././config.py:17041
+#: .././config.py:17072
 msgid "The current options manager cannot be deleted"
 msgstr ""
 
-#: .././config.py:17049 .././config.py:18049
+#: .././config.py:17080 .././config.py:18080
 msgid "Are you sure you want to delete this options manager?"
 msgstr ""
 
-#: .././config.py:17243 .././config.py:17590 .././config.py:19074
+#: .././config.py:17274 .././config.py:17621 .././config.py:19105
 msgid "The new setting will be applied when Tartube restarts"
 msgstr ""
 
-#: .././config.py:18041
+#: .././config.py:18072
 msgid "The default options manager cannot be deleted"
 msgstr ""
 
-#: .././config.py:18736
+#: .././config.py:18767
 msgid "There is already a scheduled download with that name"
 msgstr ""
 
-#: .././config.py:18783
+#: .././config.py:18814
 msgid "Are you sure you want to delete this scheduled download?"
 msgstr ""
 
-#: .././config.py:18951
+#: .././config.py:18982
 msgid "Please select the AVConv executable"
 msgstr ""
 
-#: .././config.py:18984
+#: .././config.py:19015
 msgid "Please select the FFmpeg executable"
 msgstr ""
 
-#: .././config.py:19017
+#: .././config.py:19048
 msgid "Please select the Youtube Stream Capture executable"
 msgstr ""
 
-#: .././config.py:19807
+#: .././config.py:19837
 msgid "Select the youtube-dl-compatible executable"
 msgstr ""
 
-#: .././config.py:19991
+#: .././config.py:20021
 msgid "Database file not loaded"
 msgstr ""
 
-#: .././config.py:20011
+#: .././config.py:20041
 msgid "Did not try to load the database file"
 msgstr ""
 
-#: .././config.py:20036
+#: .././config.py:20066
 msgid "Database file loaded"
 msgstr ""
 
@@ -6385,97 +6397,97 @@ msgstr ""
 msgid "Cannot download videos in a private folder"
 msgstr ""
 
-#: .././downloads.py:2986 .././downloads.py:5243
+#: .././downloads.py:2986 .././downloads.py:5256
 msgid "Download did not start"
 msgstr ""
 
-#: .././downloads.py:2994 .././downloads.py:5255 .././info.py:364
+#: .././downloads.py:2994 .././downloads.py:5268 .././info.py:364
 #: .././updates.py:278 .././updates.py:476
 msgid "Child process exited with non-zero code: {}"
 msgstr ""
 
-#: .././downloads.py:3108 .././downloads.py:4060
+#: .././downloads.py:3108 .././downloads.py:4072
 msgid ""
 "This video has a URL that points to a channel or a playlist, not a video"
 msgstr ""
 
-#: .././downloads.py:3937 .././downloads.py:3951
+#: .././downloads.py:3949 .././downloads.py:3963
 msgid "Simulated download of:"
 msgstr ""
 
-#: .././downloads.py:3959
+#: .././downloads.py:3971
 msgid "Simulated download of video with unprintable characters"
 msgstr ""
 
 #. This object creates more messages for the Output Tab and/or terminal,
 #. than downloads.VideoDownloader would do, as the output generated by
 #. Youtube Stream Capture is not easy for the user to interpret
-#: .././downloads.py:5134
+#: .././downloads.py:5147
 msgid "Tartube is starting the stream capture..."
 msgstr ""
 
-#: .././downloads.py:5152
+#: .././downloads.py:5165
 msgid "Could not create a destination directory, capture halted"
 msgstr ""
 
-#: .././downloads.py:5173 .././downloads.py:5198
+#: .././downloads.py:5186 .././downloads.py:5211
 msgid "Youtube Stream Capture script not found:"
 msgstr ""
 
-#: .././downloads.py:5247
+#: .././downloads.py:5260
 msgid "Failed to capture the livestream"
 msgstr ""
 
-#: .././downloads.py:5251
+#: .././downloads.py:5264
 msgid "Stream capture terminated"
 msgstr ""
 
-#: .././downloads.py:5261
+#: .././downloads.py:5274
 msgid ""
 "Stream captured terminated without downloading any video segments "
 "(indicating an error with the stream)"
 msgstr ""
 
 #. Capture successful
-#: .././downloads.py:5277
+#: .././downloads.py:5290
 msgid "Stream capture successful"
 msgstr ""
 
 #. Show a confirmation message
-#: .././downloads.py:5307
+#: .././downloads.py:5320
 msgid "Merging file segments..."
 msgstr ""
 
-#: .././downloads.py:5327
+#: .././downloads.py:5340
 msgid "Segment merge did not start"
 msgstr ""
 
-#: .././downloads.py:5338
+#: .././downloads.py:5351
 msgid "Segment merge completed, but path not detected"
 msgstr ""
 
-#: .././downloads.py:5348
+#: .././downloads.py:5361
 msgid "Segment merge completed, but output file not found"
 msgstr ""
 
-#: .././downloads.py:5369
+#: .././downloads.py:5382
 msgid "File moved to:"
 msgstr ""
 
-#: .././downloads.py:5374
+#: .././downloads.py:5387
 msgid "Livestream download is complete"
 msgstr ""
 
-#: .././downloads.py:5379
+#: .././downloads.py:5392
 msgid "Failed to move output file"
 msgstr ""
 
-#: .././downloads.py:5548
+#: .././downloads.py:5561
 #, python-brace-format
 msgid "Stream capture is frozen, trying again (restart #{0})"
 msgstr ""
 
-#: .././downloads.py:5555
+#: .././downloads.py:5568
 msgid "Stream capture is frozen, giving up"
 msgstr ""
 
diff --git a/tartube/tartube b/tartube/tartube
index e9d598c..bf683eb 100644
--- a/tartube/tartube
+++ b/tartube/tartube
@@ -42,8 +42,8 @@ import mainapp
 
 # 'Global' variables
 __packagename__ = 'tartube'
-__version__ = '2.3.097'
-__date__ = '16 Feb 2021'
+__version__ = '2.3.110'
+__date__ = '28 Feb 2021'
 __copyright__ = 'Copyright \xa9 2019-2021 A S Lewis'
 __license__ = """
 Copyright \xa9 2019-2021 A S Lewis.
diff --git a/tartube/updates.py b/tartube/updates.py
index 113d1ad..33b5233 100644
--- a/tartube/updates.py
+++ b/tartube/updates.py
@@ -542,7 +542,7 @@ class UpdateManager(threading.Thread):
 
             stdout (str): The STDOUT message
 
-            downloader (str): The name of the downloader, e.g. 'youtube-dlc'
+            downloader (str): The name of the downloader, e.g. 'yt-dlp'
 
         """
 
diff --git a/tartube/wizwin.py b/tartube/wizwin.py
index 5831db5..b0768a7 100644
--- a/tartube/wizwin.py
+++ b/tartube/wizwin.py
@@ -905,18 +905,18 @@ class SetupWizWin(GenericWizWin):
             0, 0, grid_width, 1,
         )
 
-        # youtube-dlc
+        # yt-dlp
         radiobutton = self.setup_set_downloader_page_add_button(
-            2,                  # Row number
-            '<b>youtube-dlc</b>: <i>' \
-            + self.app_obj.ytdl_fork_descrip_dict['youtube-dlc'] \
+            1,                  # Row number
+            '<b>yt-dlp</b>: <i>' \
+            + self.app_obj.ytdl_fork_descrip_dict['yt-dlp'] \
             + '</i>',
-            _('Use youtube-dlc'),
+            _('Use yt-dlp'),
         )
 
         # youtube-dl
         radiobutton2 = self.setup_set_downloader_page_add_button(
-            1,                  # Row number
+            2,                  # Row number
             '<b>youtube-dl</b>: <i>' \
             + self.app_obj.ytdl_fork_descrip_dict['youtube-dl'] \
             + '</i>',
@@ -937,7 +937,7 @@ class SetupWizWin(GenericWizWin):
         if self.ytdl_fork is None or self.ytdl_fork == 'youtube-dl':
             radiobutton2.set_active(True)
             entry.set_sensitive(False)
-        elif self.ytdl_fork == 'youtube-dlc':
+        elif self.ytdl_fork == 'yt-dlp':
             radiobutton.set_active(True)
             entry.set_sensitive(False)
         else:
@@ -954,7 +954,7 @@ class SetupWizWin(GenericWizWin):
             'toggled',
             self.on_button_ytdl_fork_toggled,
             entry,
-            'youtube-dlc',
+            'yt-dlp',
         )
         radiobutton2.connect(
             'toggled',
@@ -1688,8 +1688,7 @@ class SetupWizWin(GenericWizWin):
 
             entry (Gtk.Entry): Another widget to be updated
 
-            fork_type (str): 'youtube-dlc', 'youtube-dl', or None for any other
-                fork
+            fork_type (str): 'yt-dlp', 'youtube-dl', or None for any other fork
 
         """
 
@@ -1714,7 +1713,7 @@ class SetupWizWin(GenericWizWin):
                 entry.set_text('')
                 entry.set_sensitive(False)
 
-            elif fork_type == 'youtube-dlc':
+            elif fork_type == 'yt-dlp':
 
                 self.ytdl_fork = fork_type
                 entry.set_text('')