diff --git a/.gitignore b/.gitignore
index a80c30ba..f8fefbfb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,6 @@ data1/
 data2/
 data3/
 output/
+
+# vim
+*.sw?
diff --git a/Dockerfile b/Dockerfile
index 7d422628..e147e56e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
 # This is the Dockerfile for ArchiveBox, it bundles the following dependencies:
-#     python3, ArchiveBox, curl, wget, git, chromium, youtube-dl, single-file
+#     python3, ArchiveBox, curl, wget, git, chromium, youtube-dl, yt-dlp, single-file
 # Usage:
 #     docker build . -t archivebox --no-cache
 #     docker run -v "$PWD/data":/data archivebox init
diff --git a/README.md b/README.md
index 46427e04..039dd6bb 100644
--- a/README.md
+++ b/README.md
@@ -87,7 +87,7 @@ ls ./archive/*/index.json                 # or browse directly via the filesyste
 - [**Free & open source**](https://github.com/ArchiveBox/ArchiveBox/blob/master/LICENSE), doesn't require signing up online, stores all data locally
 - [**Powerful, intuitive command line interface**](https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#CLI-Usage) with [modular optional dependencies](#dependencies) 
 - [**Comprehensive documentation**](https://github.com/ArchiveBox/ArchiveBox/wiki), [active development](https://github.com/ArchiveBox/ArchiveBox/wiki/Roadmap), and [rich community](https://github.com/ArchiveBox/ArchiveBox/wiki/Web-Archiving-Community)
-- [**Extracts a wide variety of content out-of-the-box**](https://github.com/ArchiveBox/ArchiveBox/issues/51): [media (youtube-dl), articles (readability), code (git), etc.](#output-formats)
+- [**Extracts a wide variety of content out-of-the-box**](https://github.com/ArchiveBox/ArchiveBox/issues/51): [media (youtube-dl or yt-dlp), articles (readability), code (git), etc.](#output-formats)
 - [**Supports scheduled/realtime importing**](https://github.com/ArchiveBox/ArchiveBox/wiki/Scheduled-Archiving) from [many types of sources](#input-formats)
 - [**Uses standard, durable, long-term formats**](#saves-lots-of-useful-stuff-for-each-imported-link) like HTML, JSON, PDF, PNG, and WARC
 - [**Usable as a oneshot CLI**](https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#CLI-Usage), [**self-hosted web UI**](https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#UI-Usage), [Python API](https://docs.archivebox.io/en/latest/modules.html) (BETA), [REST API](https://github.com/ArchiveBox/ArchiveBox/issues/496) (ALPHA), or [desktop app](https://github.com/ArchiveBox/electron-archivebox) (ALPHA)
@@ -469,7 +469,7 @@ Inside each Snapshot folder, ArchiveBox save these different types of extractor
   - **DOM Dump:** `output.html` DOM Dump of the HTML after rendering using headless chrome
 - **Article Text:** `article.html/json` Article text extraction using Readability & Mercury
 - **Archive.org Permalink:** `archive.org.txt` A link to the saved site on archive.org
-- **Audio & Video:** `media/` all audio/video files + playlists, including subtitles & metadata with youtube-dl
+- **Audio & Video:** `media/` all audio/video files + playlists, including subtitles & metadata with youtube-dl (or yt-dlp)
 - **Source Code:** `git/` clone of any repository found on GitHub, Bitbucket, or GitLab links
 - _More coming soon! See the [Roadmap](https://github.com/ArchiveBox/ArchiveBox/wiki/Roadmap)..._
 
@@ -529,7 +529,7 @@ To achieve high fidelity archives in as many situations as possible, ArchiveBox
 - `node` & `npm` (for readability, mercury, and singlefile)
 - `wget` (for plain HTML, static files, and WARC saving)
 - `curl` (for fetching headers, favicon, and posting to Archive.org)
-- `youtube-dl` (for audio, video, and subtitles)
+- `youtube-dl` or `yt-dlp` (for audio, video, and subtitles)
 - `git` (for cloning git repos)
 - and more as we grow...
 
diff --git a/archivebox/config.py b/archivebox/config.py
index 9744cd16..4d839805 100644
--- a/archivebox/config.py
+++ b/archivebox/config.py
@@ -203,7 +203,8 @@ CONFIG_SCHEMA: Dict[str, ConfigDefaultDict] = {
         'SINGLEFILE_BINARY':        {'type': str,   'default': lambda c: bin_path('single-file')},
         'READABILITY_BINARY':       {'type': str,   'default': lambda c: bin_path('readability-extractor')},
         'MERCURY_BINARY':           {'type': str,   'default': lambda c: bin_path('mercury-parser')},
-        'YOUTUBEDL_BINARY':         {'type': str,   'default': 'youtube-dl'},
+        #'YOUTUBEDL_BINARY':         {'type': str,   'default': 'youtube-dl'},
+        'YOUTUBEDL_BINARY':         {'type': str,   'default': 'yt-dlp'},
         'NODE_BINARY':              {'type': str,   'default': 'node'},
         'RIPGREP_BINARY':           {'type': str,   'default': 'rg'},
         'CHROME_BINARY':            {'type': str,   'default': None},
diff --git a/archivebox/extractors/__init__.py b/archivebox/extractors/__init__.py
index ce2ff365..2f5b3b73 100644
--- a/archivebox/extractors/__init__.py
+++ b/archivebox/extractors/__init__.py
@@ -1,6 +1,7 @@
 __package__ = 'archivebox.extractors'
 
 import os
+import sys
 from pathlib import Path
 
 from typing import Optional, List, Iterable, Union
diff --git a/archivebox/extractors/media.py b/archivebox/extractors/media.py
index 1b093e8a..17e7a6a6 100644
--- a/archivebox/extractors/media.py
+++ b/archivebox/extractors/media.py
@@ -72,6 +72,7 @@ def save_media(link: Link, out_dir: Optional[Path]=None, timeout: int=MEDIA_TIME
         timer.end()
 
     # add video description and subtitles to full-text index
+    # Let's try a few different 
     index_texts = [
         text_file.read_text(encoding='utf-8').strip()
         for text_file in (
diff --git a/bin/setup.sh b/bin/setup.sh
index 5f4b4103..37d7937c 100755
--- a/bin/setup.sh
+++ b/bin/setup.sh
@@ -91,9 +91,9 @@ echo "    This is a helper script which installs the ArchiveBox dependencies on
 echo "    You may be prompted for a sudo password in order to install the following:"
 echo ""
 echo "        - archivebox"
-echo "        - python3, pip, nodejs, npm    (languages used by ArchiveBox, and its extractor modules)"
-echo "        - curl, wget, git, youtube-dl  (used for extracting title, favicon, git, media, and more)"
-echo "        - chromium                     (skips this if any Chrome/Chromium version is already installed)"
+echo "        - python3, pip, nodejs, npm    	     (languages used by ArchiveBox, and its extractor modules)"
+echo "        - curl, wget, git, youtube-dl, yt-dlp  (used for extracting title, favicon, git, media, and more)"
+echo "        - chromium                             (skips this if any Chrome/Chromium version is already installed)"
 echo ""
 echo "    If you'd rather install these manually as-needed, you can find detailed documentation here:"
 echo "        https://github.com/ArchiveBox/ArchiveBox/wiki/Install"
@@ -115,7 +115,7 @@ if which apt-get > /dev/null; then
     fi
     echo
     echo "[+] Installing ArchiveBox system dependencies using apt..."
-    sudo apt-get install -y git python3 python3-pip python3-distutils wget curl youtube-dl ffmpeg git nodejs npm ripgrep
+    sudo apt-get install -y git python3 python3-pip python3-distutils wget curl youtube-dl yt-dlp ffmpeg git nodejs npm ripgrep
     sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb libgbm-dev || sudo apt-get install -y chromium || sudo apt-get install -y chromium-browser || true
     sudo apt-get install -y archivebox
     sudo apt-get --only-upgrade install -y archivebox
diff --git a/etc/ArchiveBox.conf.default b/etc/ArchiveBox.conf.default
index 982a1931..03048a42 100644
--- a/etc/ArchiveBox.conf.default
+++ b/etc/ArchiveBox.conf.default
@@ -55,7 +55,7 @@
 # CURL_BINARY = curl
 # GIT_BINARY = git
 # WGET_BINARY = wget
-# YOUTUBEDL_BINARY = youtube-dl
+# YOUTUBEDL_BINARY = yt-dlp
 # CHROME_BINARY = chromium
 
 # CHROME_USER_DATA_DIR="~/.config/google-chrome/Default"
diff --git a/setup.py b/setup.py
index a9d8a509..346d3b62 100755
--- a/setup.py
+++ b/setup.py
@@ -42,6 +42,7 @@ INSTALL_REQUIRES = [
     "django-extensions>=3.0.3",
     "dateparser>=1.0.0",
     "youtube-dl>=2021.04.17",
+    "yt-dlp>=2021.4.11",
     "python-crontab>=2.5.1",
     "croniter>=0.3.34",
     "w3lib>=1.22.0",
diff --git a/stdeb.cfg b/stdeb.cfg
index 6664c6c7..571d4245 100644
--- a/stdeb.cfg
+++ b/stdeb.cfg
@@ -5,7 +5,7 @@ Package3: archivebox
 Suite: focal
 Suite3: focal
 Build-Depends: debhelper, dh-python, python3-all, python3-pip, python3-setuptools, python3-wheel, python3-stdeb
-Depends3: nodejs, wget, curl, git, ffmpeg, youtube-dl, python3-all, python3-pip, python3-setuptools, python3-croniter, python3-crontab, python3-dateparser, python3-django, python3-django-extensions, python3-django-jsonfield, python3-mypy-extensions, python3-requests, python3-w3lib, ripgrep
+Depends3: nodejs, wget, curl, git, ffmpeg, youtube-dl, yt-dlp, python3-all, python3-pip, python3-setuptools, python3-croniter, python3-crontab, python3-dateparser, python3-django, python3-django-extensions, python3-django-jsonfield, python3-mypy-extensions, python3-requests, python3-w3lib, ripgrep
 X-Python3-Version: >= 3.7
 XS-Python-Version: >= 3.7
 Setup-Env-Vars: DEB_BUILD_OPTIONS=nocheck