Skip to main content

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:

  1. Go to the Google Cloud Console
  2. Create a new project or select an existing one
  3. Enable the YouTube Data API v3
  4. Create credentials (API key)
  5. 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 - Search
  • Ctrl+C - Clear search
  • Ctrl+T - Toggle theme
  • Ctrl+Shift+K - Update API key
  • Ctrl+Q - Quit
  • F1 - 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

ytflashback-2.0.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ytflashback-2.0.0-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

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

Hashes for ytflashback-2.0.0.tar.gz
Algorithm Hash digest
SHA256 18c7494ff0463d1af539d7d385a7ef6719fee076d98e2a94e5407e3eac0211f2
MD5 3c337eaf7f090162cf58c159b90a1a9f
BLAKE2b-256 62c10c07bf1663059681eebd4c05ce3cac4c4f1232cf94aa09a554e73a87c7c9

See more details on using hashes here.

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

Hashes for ytflashback-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44141fe5586bc8e3831e89ec11f027a0e4d93882df266d8e0b9a1507022509e5
MD5 e82b333bf8121ddf783a3ad7b8ae489e
BLAKE2b-256 131a5b53f19f58ac1edbbb57da525677d758bd4a3e6a4eab0a0312b3a430b19f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page