A tool for searching YouTube videos by year, helping users find older content that might be buried by YouTube's algorithm
Project description
📹 flashback
A modern YouTube search tool that helps you find older content by searching videos from specific years. Available as both a Terminal User Interface (TUI - Thanks to Textual) and Command Line Interface (CLI).
Why?
YouTube's search filters are notoriously poor, especially when trying to find older content. The algorithm heavily favors newer videos, not surprisingly so, making it nearly impossible to discover gems from years past. This tool solves that problem by allowing you to search for videos from specific years (2005-2025).
Features
- Search by specific year - Find videos from any year (2005-2025)
- TUI interface - Modern terminal interface with themes
- CLI mode - Perfect for scripts and power users
- Easy API key management - Multiple ways to configure your YouTube API key
- Rich video details - Title, channel, duration, views, publish date
- Multiple themes - Dark, light, gruvbox, dracula, nord, and more
- Direct video URLs - Quick access to watch videos
Installation
From PyPI (Recommended)
# -- pip --
pip install ytflashback
# -- uv --
uv pip install ytflashback
# or
uv run --with ytflashback ytflashback
# -- poetry --
poetry add ytflashback
From Source
git clone https://github.com/cachebag/flashback.git
cd flashback
pip install -e .
API Key Setup
You'll need a free YouTube Data API v3 key:
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the YouTube Data API v3
- Create credentials (API key)
- Copy your API key
How to Configure Your API Key
Method 1: Standalone Command
ytflashback-api-key
Method 2: CLI Flag
ytflashback-cli --update-api-key
# or short form:
ytflashback-cli --api-key
Method 3: Interactive Mode
When using the CLI interface, type api to update your key:
ytflashback-cli
# Then type: api
If using the TUI, simply press CTRL + K
Method 4: Environment Variable
export YOUTUBE_API_KEY="key-goes-here"
Usage
TUI Mode (Default)
Launch the terminal interface:
ytflashback
- Keyboard shortcuts:
Ctrl+S- SearchCtrl+C- Clear searchCtrl+T- Toggle themeCtrl+Shift+K- Update API keyCtrl+Q- QuitF1- Help
CLI Mode
For command-line usage and scripting:
Interactive CLI
ytflashback-cli
Direct Search
ytflashback-cli -q "python tutorial" -y 2019 -m 25
CLI Options
ytflashback-cli --help
Options:
-q, --query TEXT YouTube search query
-y, --year INTEGER Year to search for videos
-m, --max-results INTEGER Maximum number of results (default: 25)
-i, --interactive Start in interactive mode
--update-api-key, --api-key Update your YouTube API key and exit
--help Show this message and exit
API Usage
- YouTube API has a daily quota of 10,000 units
- Each search uses ~100 units (≈100 searches/day)
- The API is free but rate-limited
Development
Setup Development Environment
git clone https://github.com/cachebag/flashback.git
cd flashback
pip install -e .
Contributing
Feel free to submit issues and enhancement requests.
LICENSE
This project is open source and available under the MIT License.
Project details
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 ytflashback-2.0.0.tar.gz.
File metadata
- Download URL: ytflashback-2.0.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18c7494ff0463d1af539d7d385a7ef6719fee076d98e2a94e5407e3eac0211f2
|
|
| MD5 |
3c337eaf7f090162cf58c159b90a1a9f
|
|
| BLAKE2b-256 |
62c10c07bf1663059681eebd4c05ce3cac4c4f1232cf94aa09a554e73a87c7c9
|
File details
Details for the file ytflashback-2.0.0-py3-none-any.whl.
File metadata
- Download URL: ytflashback-2.0.0-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44141fe5586bc8e3831e89ec11f027a0e4d93882df266d8e0b9a1507022509e5
|
|
| MD5 |
e82b333bf8121ddf783a3ad7b8ae489e
|
|
| BLAKE2b-256 |
131a5b53f19f58ac1edbbb57da525677d758bd4a3e6a4eab0a0312b3a430b19f
|