Archive and search YouTube channel metadata locally, with a web UI
Project description
tubevault
A tool that fetches and archives video metadata from YouTube channels into a local searchable database. Find any episode by keyword, title, or date — then click the link and watch it on YouTube. Includes a local web UI for browsing and searching in your browser.
Features
- Archive all video metadata from any YouTube channel (title, description, upload date, duration, view count, tags)
- Full-text search across titles and descriptions
- Fast incremental syncing — only fetches new videos on subsequent runs
- Automatic detection of multi-part series (e.g. "Restoration Part 1", "Part 2", …)
- Local web UI with live search (
tubevault serve) - No API key required
- Stores everything locally in a SQLite database
Requirements
- Python 3.10+
- pip or pipx
Installation
From PyPI
pip install tubevault
With pipx (isolated install, no venv management)
pipx install tubevault
From source
git clone https://github.com/danielboston38/yt-archiver.git
cd yt-archiver
pip install -e .
Usage
Add a channel and fetch all metadata
tubevault add "https://www.youtube.com/@adriansdigitalbasement"
This does the initial fetch of all videos on the channel. It may take a few minutes depending on channel size.
Start the web UI
tubevault serve
Opens a local web server at http://127.0.0.1:8000. Browse channels, search videos, explore series — all in your browser. Use --open to auto-open the browser, or --port to change the port.
Search for videos (CLI)
tubevault search "mac classic"
tubevault search "IBM AT repair"
tubevault search 2022
tubevault search "6502" 2021
A bare 4-digit year filters by upload date. Combine with a keyword to narrow by both.
List recent videos
tubevault list
tubevault list --sort view_count
tubevault list --sort title
tubevault list --limit 100 --offset 50
Available sort options: upload_date, view_count, title, duration
Show full details for a video
tubevault info <video_id>
tubevault info "https://www.youtube.com/watch?v=<video_id>"
Sync new videos
# Sync all archived channels
tubevault sync
# Sync a specific channel
tubevault sync "https://www.youtube.com/@adriansdigitalbasement"
Show all archived channels
tubevault channels
Browse multi-part series
# List all detected series
tubevault series
# Show all parts of a specific series
tubevault series "Mac IIci Restoration"
Series are detected automatically from video titles using the pattern Part N (e.g. "Part 1", "Part 2"). If a channel uses different conventions (e.g. "Ep. 1", "#1"), extend _SERIES_RE in tubevault/db.py.
Manually tag a series
tubevault tag-series "Plexus P20" --match "plexus p20"
Finds videos whose titles contain the match text and tags them as a series, ordered by upload date.
Data
The database is stored at ~/.local/share/tubevault/archive.db by default. If an archive.db exists in the current directory it will be used instead (backwards compatibility). Override with the TUBEVAULT_DB environment variable:
TUBEVAULT_DB=/my/custom/path/archive.db tubevault serve
License
GPL-3.0 — see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tubevault-0.2.0.tar.gz.
File metadata
- Download URL: tubevault-0.2.0.tar.gz
- Upload date:
- Size: 55.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a34a0ee08449e21d1e2632a8f5970b763668176fe2574f74086d6a2a329a168
|
|
| MD5 |
68d2e8dad9ec3d674201dfb1d982c733
|
|
| BLAKE2b-256 |
e40f9b22e06647f72be9f7115815a36e3f236e205e503b30a9bf09a1f642bb96
|
File details
Details for the file tubevault-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tubevault-0.2.0-py3-none-any.whl
- Upload date:
- Size: 45.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f1464b0bf8668c3d47c537d33b06f3ef1385aef620e10c128dbce3926b758ac
|
|
| MD5 |
f19728950c154cf1916e41dc881d886c
|
|
| BLAKE2b-256 |
da8f73bb6f3ddc3a40376de6f4883d91b6b579f84c1946216b3cba7f46abd5d1
|