TOOL ^: Tools

Internet Archival Guide

sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp sudo chmod a+rx /usr/local/bin/yt-dlp

intermediate updated 2026-08-10

Linux

sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp sudo chmod a+rx /usr/local/bin/yt-dlp

Mac

brew install yt-dlp

Keep updated (run regularly)

yt-dlp -U


> [!important]+ ffmpeg is required
> `fas:TriangleExclamation`
> yt-dlp uses ffmpeg to merge video and audio streams. Install from [ffmpeg.org](https://ffmpeg.org/download.html). On Windows, place `ffmpeg.exe` in the **same folder** as `yt-dlp.exe`.

**Core yt-dlp commands:**

```bash
# Download best quality (auto format selection)
yt-dlp https://www.youtube.com/watch?v=VIDEOID

# List all available formats first
yt-dlp -F https://www.youtube.com/watch?v=VIDEOID

# Download best MP4 with merged audio+video (most compatible)
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" https://www.youtube.com/watch?v=VIDEOID

# Download with metadata, thumbnail, and subtitles
yt-dlp --write-description --write-info-json --write-thumbnail --write-subs https://www.youtube.com/watch?v=VIDEOID

# Download audio only as MP3
yt-dlp -x --audio-format mp3 https://www.youtube.com/watch?v=VIDEOID

# Download entire channel (skip already-downloaded, continue on errors)
yt-dlp --ignore-errors --continue https://www.youtube.com/c/CHANNELNAME

# Download entire channel with full metadata + organised output
yt-dlp --ignore-errors --continue \
  --write-description --write-info-json \
  --write-thumbnail --write-subs \
  --output "%(uploader)s/%(upload_date)s-%(title)s.%(ext)s" \
  https://www.youtube.com/c/CHANNELNAME

# Download autogenerated subtitles (great for text-searching streams)
yt-dlp --write-auto-subs --sub-format vtt https://www.youtube.com/watch?v=VIDEOID

# Download a specific time segment only
yt-dlp --download-sections "*01:30-05:45" https://www.youtube.com/watch?v=VIDEOID

# Download a live stream as it happens
yt-dlp --live-from-start https://www.youtube.com/watch?v=LIVEID

[!tip]+ Bot Detection Bypass Methods fas:Lightbulb When YouTube shows “Sign in to confirm you’re not a bot”:

# Method 1: Use cookies from your logged-in browser
yt-dlp --cookies-from-browser firefox https://www.youtube.com/watch?v=VIDEOID

# Method 2: Spoof the Android client
yt-dlp --extractor-args "youtube:player_client=android" https://www.youtube.com/watch?v=VIDEOID

# Method 3: Combine both (most reliable)
yt-dlp --cookies-from-browser firefox --extractor-args "youtube:player_client=android,web" https://www.youtube.com/watch?v=VIDEOID

Other platform downloads:

# Twitter/X videos
yt-dlp https://x.com/user/status/TWEETID

# Twitch VOD
yt-dlp https://www.twitch.tv/videos/VODID

# Twitch clip
yt-dlp https://clips.twitch.tv/CLIPNAME

# TikTok individual video
yt-dlp https://www.tiktok.com/@user/video/VIDEOID

# Instagram post (requires cookies)
yt-dlp --cookies-from-browser firefox https://www.instagram.com/p/POSTID/

# Facebook video (requires cookies)
yt-dlp --cookies-from-browser firefox https://www.facebook.com/video/VIDEOID

# Twitter Space → optimised MP3
yt-dlp -x --audio-format mp3 --audio-quality 64K https://twitter.com/i/spaces/SPACEID

# Spotify podcast episode
yt-dlp https://open.spotify.com/episode/EPISODEID

ffmpeg — Video Processing fas:Terminal

[!info]+ ffmpeg Overview fas:Terminal Essential standalone tool for re-encoding, compressing, splitting, and converting video files. Required by yt-dlp.

  1. Converts any format to universally compatible H.264 MP4
  2. GPU-accelerated encoding via NVENC (NVIDIA)
  3. Lossless stream copy cuts and metadata embedding

Universal re-encode to H.264 MP4 (works on ANY input format):

ffmpeg -hwaccel auto -i YOUR_INPUT_FILE.anything \
  -c:v libx264 \
  -pix_fmt yuv420p \
  -profile:v baseline \
  -level 3.0 \
  -crf 22 \
  -preset medium \
  -c:a aac \
  -strict experimental \
  -movflags +faststart \
  -threads 0 \
  output.mp4

[!info]+ CRF Quality Guide ris:FileList

  1. CRF 18 = near-lossless — use for archival masters
  2. CRF 22 = good quality — default for most archiving
  3. CRF 28 = smaller file, visible quality loss — throwaway clips only
  4. Lower number = better quality + larger file size

With downscaling to 720p (reduces file size significantly):

ffmpeg -hwaccel auto -i input.mp4 \
  -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 \
  -crf 22 -vf scale=-2:720 -preset medium \
  -c:a aac -strict experimental -movflags +faststart -threads 0 \
  output.mp4

Replace 720 with 1080, 480, or 360 as needed. The -2 ensures width is divisible by 2 (required for MP4).

GPU-accelerated encoding (NVIDIA NVENC):

ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -cq 22 -c:a aac output.mp4
# Note: use -cq (not -crf) for NVENC constant quality mode

Split large video into 1-hour chunks:

ffmpeg -hwaccel auto -i input.mp4 \
  -c copy -map 0 \
  -segment_time 01:00:00 \
  -f segment \
  -reset_timestamps 1 \
  -movflags +faststart \
  -threads 0 \
  output%03d.mp4
# Produces output000.mp4, output001.mp4, etc.

Quick lossless cut (no re-encode, very fast):

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:05:00 -c copy output.mp4

Embed metadata/chapters into a downloaded video:

ffmpeg -i input.mp4 -i metadata.txt -map_metadata 1 -c copy output.mp4

[!tip]+ Video Size Strategy fas:Lightbulb

  1. Under 200MB → upload directly, no processing needed
  2. 200MB–400MB → re-encode at 720p first, usually gets under 200MB
  3. 400MB+ → re-encode first, then split if still too large
  4. Never split without re-encoding first — don’t upload large unoptimised chunks
  5. Audio quality matters more than video — reduce resolution before touching audio bitrate

Online Video Archiving (No Command Line) ris:GlobalLine

ToolURLNotes
PreserveTubepreservetube.comYouTube up to ~2 hours. Has a UserScript for a YouTube button.
Cobaltcobalt.toolsYouTube, Twitter, TikTok, Instagram. ~100 min limit.
Twitter Video DLtwittervideodownloader.comSimple Twitter/X downloads, no install.
YouTube Multi DLyoutubemultidownloader.netBulk download multiple YouTube videos.
Filmotfilmot.comFinds unlisted and deleted YouTube videos by searching auto-captions.
Tartubegithub.com/axcore/tartubeGUI wrapper for yt-dlp — cross-platform.
Handbrakehandbrake.frGUI video compressor (ffmpeg/x264 wrapper). RF 20–22 recommended.

Part 3 — Screenshots & Full-Page Captures ris:Eye

Platform Quick Reference

PlatformMethodShortcut
WindowsSnipping ToolWin + Shift + S
Windows (advanced)ShareXgetsharex.com — blur, annotate, upload
macOSFull screenCmd + Shift + 3
macOSSelect areaCmd + Shift + 4
macOSSpecific windowCmd + Shift + 4 then Space
iPhone (old)Power + HomeSaves to Camera Roll
iPhone (new)Power + Vol UpSaves to Camera Roll
FirefoxBuilt-inRight-click → Take Screenshot → Save Full Page
Chrome/BraveDevToolsF12Ctrl+Shift+P → “Capture full size screenshot”

[!tip]+ Firefox Developer Console Screenshots fas:Terminal Press Shift + F2 to open the developer toolbar, then:

screenshot --fullpage                  # saves to Downloads
screenshot --fullpage --clipboard      # copies to clipboard
screenshot --fullpage myfilename       # saves with custom name
screenshot --fullpage --delay 3        # 3 second delay before capture

[!tip]+ PNG Compression — Reduce File Size Before Uploading fas:Lightbulb

  1. pngquant (CLI): pngquant --quality=65-80 screenshot.png
  2. Squoosh (browser): squoosh.app
  3. TinyPNG (browser): tinypng.com

Part 4 — Platform-Specific Archiving ris:Radar

Twitter / X

[!warning]+ Twitter/X requires login for most content — breaks most archivers ris:Radar Methods in order of reliability:

  1. Nitter mirror → archive.today: Replace twitter.com/x.com with nitter.poast.org, feed to archive.ph
  2. GhostArchive directly on x.com URL — works intermittently
  3. Thread Reader for multi-tweet threads: https://threadreaderapp.com/thread/TWEETID → archive the Thread Reader URL on archive.ph (static HTML, archives perfectly)
  4. yt-dlp for videos: yt-dlp https://x.com/user/status/TWEETID
  5. Twint for bulk account archiving (partially broken): github.com/twintproject/twint
  6. Megalodon — currently best for archiving individual X/Twitter page URLs

[!danger]+ Facebook Image Download URLs Contain Your Identity Token fas:Skull Facebook image download URLs contain an identifying token that can be traced back to your account. Always rename the file or copy-paste the image rather than downloading directly.


Reddit

[!info]+ Reddit Archiving ris:FileList

  1. Always use old.reddit.com URLs — reddit.comold.reddit.com. archive.today handles old Reddit layout far better.
  2. Unddit for deleted posts/comments: replace reddit.com with unddit.com in any URL → unddit.com
  3. Full user post history: use PRAW (Python Reddit API Wrapper) to iterate profile pages and submit each to archive.today. See scripts/reddit_archive_user.py.

Discord

[!info]+ DiscordChatExporter — Standard Discord archiving tool ris:ShareBox Exports Discord servers, channels, and DMs to HTML (with images), JSON, CSV, or TXT. GUI + CLI versions.

  1. Requires your Discord auth token (browser DevTools → Network tab → Authorization header)
  2. GUI version is straightforward; CLI supports bulk and automated export
# CLI bulk export of an entire server
DiscordChatExporter.Cli exportguild --guild SERVERID --token YOUR_TOKEN --output ./export/ --format HtmlDark

[!warning]+ Discord CDN URLs Expire ris:Radar cdn.discordapp.com image URLs are publicly accessible without login, but Discord periodically rotates/expires them. Archive immediately after finding them.


Instagram

[!info]+ Instagram Archiving Methods ris:GlobalLine Instagram requires login for most content. Working methods:

  1. View profiles without account: picuki.com, imgsed.com, dumpor.com → then feed URL to archive.today
  2. Download posts/reels: Instaloader (instaloader profile USERNAME), JDownloader, SnapInsta, igram.io
  3. Stories (disappear after 24h — archive immediately): Instaloader with --stories flag (requires login)
  4. With yt-dlp (requires cookies): yt-dlp --cookies-from-browser firefox https://www.instagram.com/p/POSTID/

[!danger]+ Instagram Screenshot Self-Doxx Warning fas:Skull Instagram embeds your avatar and username into the comment field UI. Crop or redact your username from every Instagram screenshot before posting.


TikTok

# Individual video (works)
yt-dlp https://www.tiktok.com/@user/video/VIDEOID

[!warning]+ yt-dlp profile scraping is broken for TikTok ris:Radar Individual videos still work. For profile-level scraping, use Geranium’s scraper-helper or Cobalt.


YouTube (Special Cases)

# Age-restricted (requires logged-in cookies)
yt-dlp --cookies-from-browser chrome https://www.youtube.com/watch?v=VIDEOID

# Full channel backup with metadata + organised directory structure
yt-dlp --ignore-errors --continue \
  --write-description --write-info-json \
  --write-thumbnail --write-subs \
  --output "%(uploader)s/%(upload_date)s-%(title)s.%(ext)s" \
  https://www.youtube.com/c/CHANNELNAME

[!tip]+ Finding Deleted/Unlisted YouTube Videos fas:Lightbulb Filmot indexes YouTube subtitle data including from removed videos. Search by keywords to find videos no longer publicly visible — extremely useful for tracking deleted content.

[!info]+ YouTube Comment Archiving ris:FileList No third-party site currently preserves full comment sections. Use the YouTube Data API v3 (free API key) to download all comments from a video programmatically. See scripts/youtube_comment_archiver.py.


Other Platforms

[!info]+ Platform Reference Table ris:FileList

PlatformTool / Method
Twitch VODsyt-dlp https://www.twitch.tv/videos/VODID
Twitch Clipsyt-dlp https://clips.twitch.tv/CLIPNAME
Twitch Liveyt-dlp https://www.twitch.tv/CHANNELNAME
Steamsteamid.io to get numeric ID; archive both vanity + /profiles/76561... URLs
DeviantArtRipMe (requires Java JDK) — archives entire galleries
Tumblrarchive.today handles NSFW blogs; original-posts-only: studiomoh.com/fun/tumblr_originals
4chan4plebs.org — permanent archive. Threads 404 fast — archive immediately. Also archive the 4plebs link itself on archive.today.
Gabgarc — Gab API scraper (fork of twarc), requires Gab login
Blueskyarchive.today works well with Bluesky URLs currently
AO3 / FFNFanFictionDownloader — downloads with full metadata (URL, timestamp, author)
Spotify / Podcastsyt-dlp https://open.spotify.com/episode/EPISODEID (some require logged-in session)
Facebook Videosyt-dlp --cookies-from-browser firefox https://www.facebook.com/video/VIDEOID (click through content warning first)

Part 5 — Bulk & Automated Archiving fas:ClipboardList

[!info]+ Batch Submit URLs to Wayback Machine fas:Terminal

# Submit a list of URLs from a file
cat urls.txt | xargs -I{} curl -s "https://web.archive.org/save/{}"

See scripts/batch_archive.sh for a rate-limited, logged version of this.

[!info]+ Internet Archive CLI fas:Terminal Official CLI for uploading files directly to the Internet Archive.

pip install internetarchive
ia upload IDENTIFIER /path/to/file

[!info]+ Bellingcat Auto Archiver ris:Radar Professional-grade automated archiving. Takes URLs from spreadsheets, Telegram, or other sources and archives to archive.org, Google Drive, S3, etc. with verification metadata. Used by journalists and OSINT researchers.

[!info]+ Archiving Entire Wikis and Forums fas:Terminal

# HTTrack (recommended — handles link rewriting automatically)
httrack https://wiki.example.com -O ./local_mirror/ -r6

# wget (alternative)
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://wiki.example.com

For large-scale professional crawls: Heritrix — the Internet Archive’s own open-source crawler.

[!info]+ Download an Existing Wayback Machine Snapshot Locally fas:Terminal

gem install wayback_machine_downloader
wayback_machine_downloader http://example.com

# Specify a date range
wayback_machine_downloader http://example.com --from 20200101 --to 20201231

Part 6 — OSINT & Account Finding ris:Radar

ToolURLUse For
Sherlockgithub.com/sherlock-project/sherlockUsername search across 300+ social media sites
Maigretgithub.com/soxoj/maigretMore comprehensive than Sherlock, shows profile info
Filmotfilmot.comFind unlisted/deleted YouTube videos via subtitle search
vacbanned.comvacbanned.comNames associated with VAC-banned Steam accounts
SteamID.iosteamid.ioConvert Steam vanity URLs to permanent numeric IDs
# Sherlock
python3 sherlock username

# Maigret (more detailed, more sites)
python3 -m maigret username

Part 7 — File Hosting for Large Files ris:ShareBox

[!tip]+ File Hosting Priority Order fas:Lightbulb

  1. On-site upload — always preferred. Use your platform’s native upload (e.g. 200MB limit on most forums).
  2. MEGA (mega.nz) — widely accepted off-site host. Large files, free tier.
  3. Internet Archive (archive.org/upload) — free, unlimited, permanent. Best for large video files.
  4. multiup.io (multiup.io) — upload once, mirrors automatically to multiple file hosts. Redundant links.

Avoid: Any single-purpose file hosts, social media embeds, or link shorteners. They disappear.


Part 8 — Un-Redacting & Recovering Obscured Content ris:Eye

Recovering Poorly Redacted Text

[!tip]+ Text Hidden Under a Black Bar (Image Editor Method) fas:Lightbulb If text was redacted with a black rectangle placed over it (not burned in):

  1. Open in GIMP, Photoshop, or even MS Paint
  2. Try Levels or Curves adjustment — drag input levels to extremes
  3. Try Contrast at maximum
  4. If the black bar is a separate layer (common in quick edits), select and delete the layer

Recovering Deleted Content ris:Radar

MethodWhere to Look
Google Cachecache:https://example.com/page (being phased out, sometimes works)
Wayback Machinehttps://web.archive.org/web/*/example.com/page
Unddit (Reddit)Replace reddit.com with unddit.com
Filmot (YouTube)Search deleted video titles/content at filmot.com
Google snippetsSearch for the title — results show text excerpts even when cache is gone

Many archiving tasks require authenticated sessions. The cleanest method is exporting cookies from your browser.

[!info]+ Exporting Cookies with yt-dlp (Automatic) fas:Terminal yt-dlp can pull cookies directly from your browser — no manual export needed:

yt-dlp --cookies-from-browser firefox URL
yt-dlp --cookies-from-browser chrome URL
yt-dlp --cookies-from-browser brave URL

[!info]+ Manual Cookie Export (Netscape Format) fas:Terminal For tools that require a cookies.txt file:

  1. Install the Get cookies.txt LOCALLY extension in Firefox or Chrome
  2. Navigate to the site while logged in
  3. Click the extension → export → save as cookies.txt
  4. Use with: yt-dlp --cookies cookies.txt URL

[!warning]+ Cookie Security ris:Radar

  1. Never share your cookies.txt file — it grants full session access to your accounts
  2. Delete exported cookie files after use
  3. Use throwaway accounts for archiving sensitive content

Part 10 — Expanded: VTT Subtitle Processing ris:FileList

Auto-generated subtitles from yt-dlp are invaluable for searching long videos and streams.

# Download auto-generated subtitles alongside video
yt-dlp --write-auto-subs --sub-format vtt https://www.youtube.com/watch?v=VIDEOID

# Download subtitles only (no video)
yt-dlp --skip-download --write-auto-subs --sub-format vtt https://www.youtube.com/watch?v=VIDEOID

See scripts/vtt_to_text.py for a script that converts .vtt files to searchable plaintext.


Complete Tool Reference fas:ClipboardList

Web Archiving

ToolURLBest For
archive.todayarchive.phPrimary web page archiving
GhostArchiveghostarchive.orgBackup archiver, LinkedIn, Facebook
Megalodonmegalodon.jpJapanese archiver, good Twitter backup
Wayback Machineweb.archive.orgFinding old archives — not primary
Perma.ccperma.ccLegal-grade citations
archiveweb.pagearchiveweb.pageLocal WARC archives of JS-heavy sites
Browsertrixbrowsertrix.comAutomated high-fidelity crawling
monolithgithub.com/Y2Z/monolithSingle-file local HTML archive
HTTrackhttrack.comFull site mirror with link rewriting

Video Downloading

ToolURLBest For
yt-dlpgithub.com/yt-dlp/yt-dlpEverything
ffmpegffmpeg.orgRe-encoding, splitting, converting
PreserveTubepreservetube.comEasy YouTube archiving online
Cobaltcobalt.toolsQuick multi-platform downloads
Tartubegithub.com/axcore/tartubeyt-dlp GUI
Handbrakehandbrake.frGUI video compression
Filmotfilmot.comFind deleted/unlisted YouTube videos
Twitter Video DLtwittervideodownloader.comTwitter/X videos without tools

OSINT

ToolURLBest For
Sherlockgithub.com/sherlock-project/sherlockUsername enumeration across 300+ sites
Maigretgithub.com/soxoj/maigretComprehensive username + profile OSINT
Filmotfilmot.comDeleted YouTube video discovery
SteamID.iosteamid.ioSteam vanity URL → permanent ID

Lessons Learned fas:Lightbulb

  1. Redundancy is everything. A single archiver is a single point of failure. Submit every important page to at least archive.today AND one backup (GhostArchive or Megalodon). Services die, get pressured, or get acquired.
  2. Old interfaces archive better. old.reddit.com vs new Reddit, Nitter vs Twitter.com — JavaScript-heavy modern UIs break archivers. Always prefer the legacy URL when one exists.
  3. Cookies solve most login walls. yt-dlp’s --cookies-from-browser flag handles age restrictions, rate limits, and member-only content without manual token extraction.
  4. Audio > video when cutting file size. When you need to reduce a video for upload, drop resolution (1080p → 720p) before touching audio bitrate. Compressed audio is noticeably worse; compressed video is not.
  5. Archive the archive. External archive links (4plebs, Wayback, etc.) can themselves go down. If something is critical, archive the archive URL on archive.today too.

References fas:BookOpen

  1. yt-dlp GitHub
  2. ffmpeg Official Download
  3. archive.today / archive.ph
  4. GhostArchive
  5. Megalodon
  6. Wayback Machine
  7. Perma.cc
  8. archiveweb.page (Webrecorder)
  9. Browsertrix Crawler
  10. monolith
  11. SingleFile Firefox Extension
  12. HTTrack
  13. DiscordChatExporter
  14. Instaloader
  15. Sherlock
  16. Maigret
  17. Filmot — YouTube subtitle search
  18. Bellingcat Auto Archiver
  19. Internet Archive CLI
  20. Heritrix Web Crawler
  21. Thread Reader App
  22. Unddit — deleted Reddit posts
  23. SteamID.io
  24. Cobalt Downloader
  25. PreserveTube
  26. Tartube
  27. ShareX
  28. Handbrake
  29. RipMe
  30. Twint
  31. YouTube Data API v3
  32. 4plebs
  33. garc — Gab scraper
  34. Nitter mirror
  35. webvtt-py
  36. multiup.io
  37. MEGA
  38. Squoosh

#Archival #OSINT #Tools #Cheatsheet #yt-dlp #ffmpeg #WebArchiving #VideoDownloading #ContentRecovery