ytflashback


Nameytflashback JSON
Version 2.25.0 PyPI version JSON
download
home_pageNone
SummaryA tool for searching YouTube videos by year, helping users find older content that might be buried by YouTube's algorithm
upload_time2025-07-26 22:23:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords archive cli search tui video youtube
VCS
bugtrack_url
requirements google-api-python-client python-dotenv click colorama tabulate textual platformdirs
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 📹 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](https://github.com/Textualize/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

### pip, uv and poetry
```bash
# -- pip -- 
pip install ytflashback

# -- uv -- 
uv pip install ytflashback
# or
uv run --with ytflashback ytflashback

# -- poetry -- 
poetry add ytflashback 
```

### From Source
```bash
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](https://console.cloud.google.com/)
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
```bash
ytflashback-api-key
```

#### Method 2: CLI Flag
```bash
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:
```bash
ytflashback-cli
# Then type: api
```
If using the TUI, simply press `CTRL` + `K`

#### Method 4: Environment Variable
```bash
export YOUTUBE_API_KEY="key-goes-here"
```

## Usage

### TUI Mode (Default)
Launch the terminal interface:
```bash
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
```bash
ytflashback-cli
```

#### Direct Search
```bash
ytflashback-cli -q "python tutorial" -y 2019 -m 25
```

#### CLI Options
```bash
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
```bash
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](LICENSE). 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ytflashback",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "archive, cli, search, tui, video, youtube",
    "author": null,
    "author_email": "Akrm Al-Hakimi <alhakimiakrmj@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f8/ce/fb55f63ce641e541da0a9ce79c87f824a5e669d6698e0b33beb92b2a977e/ytflashback-2.25.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\udcf9 flashback\n\nA 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](https://github.com/Textualize/textual)) and Command Line Interface (CLI).\n\n## Why?\n\nYouTube'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).\n\n## Features\n\n-  **Search by specific year** - Find videos from any year (2005-2025)\n-  **TUI interface** - Modern terminal interface with themes\n-  **CLI mode** - Perfect for scripts and power users\n-  **Easy API key management** - Multiple ways to configure your YouTube API key\n-  **Rich video details** - Title, channel, duration, views, publish date\n-  **Multiple themes** - Dark, light, gruvbox, dracula, nord, and more\n-  **Direct video URLs** - Quick access to watch videos\n\n## Installation\n\n### pip, uv and poetry\n```bash\n# -- pip -- \npip install ytflashback\n\n# -- uv -- \nuv pip install ytflashback\n# or\nuv run --with ytflashback ytflashback\n\n# -- poetry -- \npoetry add ytflashback \n```\n\n### From Source\n```bash\ngit clone https://github.com/cachebag/flashback.git\ncd flashback\npip install -e .\n```\n\n## API Key Setup\n\nYou'll need a free YouTube Data API v3 key:\n\n1. Go to the [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select an existing one\n3. Enable the YouTube Data API v3\n4. Create credentials (API key)\n5. Copy your API key\n\n### How to Configure Your API Key\n\n#### Method 1: Standalone Command\n```bash\nytflashback-api-key\n```\n\n#### Method 2: CLI Flag\n```bash\nytflashback-cli --update-api-key\n# or short form:\nytflashback-cli --api-key\n```\n\n#### Method 3: Interactive Mode\nWhen using the CLI interface, type `api` to update your key:\n```bash\nytflashback-cli\n# Then type: api\n```\nIf using the TUI, simply press `CTRL` + `K`\n\n#### Method 4: Environment Variable\n```bash\nexport YOUTUBE_API_KEY=\"key-goes-here\"\n```\n\n## Usage\n\n### TUI Mode (Default)\nLaunch the terminal interface:\n```bash\nytflashback \n```\n\n-  **Keyboard shortcuts:**\n  - `Ctrl+S` - Search\n  - `Ctrl+C` - Clear search\n  - `Ctrl+T` - Toggle theme\n  - `Ctrl+Shift+K` - Update API key\n  - `Ctrl+Q` - Quit\n  - `F1` - Help\n\n### CLI Mode\nFor command-line usage and scripting:\n\n#### Interactive CLI\n```bash\nytflashback-cli\n```\n\n#### Direct Search\n```bash\nytflashback-cli -q \"python tutorial\" -y 2019 -m 25\n```\n\n#### CLI Options\n```bash\nytflashback-cli --help\n\nOptions:\n  -q, --query TEXT             YouTube search query\n  -y, --year INTEGER           Year to search for videos\n  -m, --max-results INTEGER    Maximum number of results (default: 25)\n  -i, --interactive            Start in interactive mode\n  --update-api-key, --api-key  Update your YouTube API key and exit\n  --help                       Show this message and exit\n```\n\n## API Usage\n\n- YouTube API has a daily quota of 10,000 units\n- Each search uses ~100 units (\u2248100 searches/day)\n- The API is free but rate-limited\n\n## Development\n\n### Setup Development Environment\n```bash\ngit clone https://github.com/cachebag/flashback.git\ncd flashback\npip install -e .\n```\n\n## Contributing\n\nFeel free to submit issues and enhancement requests.\n\n## LICENSE\n\nThis project is open source and available under the [MIT License](LICENSE). \n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A tool for searching YouTube videos by year, helping users find older content that might be buried by YouTube's algorithm",
    "version": "2.25.0",
    "project_urls": {
        "Homepage": "https://github.com/cachebag/flashback",
        "Issues": "https://github.com/cachebag/flashback/issues",
        "Repository": "https://github.com/cachebga/flashback.git"
    },
    "split_keywords": [
        "archive",
        " cli",
        " search",
        " tui",
        " video",
        " youtube"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5aa750b4a70bf0d9f91a08338c110388a53323907f1ff32f1d89754d26122f2c",
                "md5": "c8a7567bff56fb04b980b4b2062bdce3",
                "sha256": "8bbca3001bf0d9bace497b78bec5bbf539c035e47689387815fbfba2da7e4071"
            },
            "downloads": -1,
            "filename": "ytflashback-2.25.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c8a7567bff56fb04b980b4b2062bdce3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 17768,
            "upload_time": "2025-07-26T22:23:54",
            "upload_time_iso_8601": "2025-07-26T22:23:54.232444Z",
            "url": "https://files.pythonhosted.org/packages/5a/a7/50b4a70bf0d9f91a08338c110388a53323907f1ff32f1d89754d26122f2c/ytflashback-2.25.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f8cefb55f63ce641e541da0a9ce79c87f824a5e669d6698e0b33beb92b2a977e",
                "md5": "374520f31f4ce4c7c20c98a16052309f",
                "sha256": "e9b49e3db3a2fecdb88d2bc0e1ebb52734bddabc18db97c8b6db4f105beac105"
            },
            "downloads": -1,
            "filename": "ytflashback-2.25.0.tar.gz",
            "has_sig": false,
            "md5_digest": "374520f31f4ce4c7c20c98a16052309f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 12462,
            "upload_time": "2025-07-26T22:23:55",
            "upload_time_iso_8601": "2025-07-26T22:23:55.464281Z",
            "url": "https://files.pythonhosted.org/packages/f8/ce/fb55f63ce641e541da0a9ce79c87f824a5e669d6698e0b33beb92b2a977e/ytflashback-2.25.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-26 22:23:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cachebag",
    "github_project": "flashback",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "google-api-python-client",
            "specs": []
        },
        {
            "name": "python-dotenv",
            "specs": []
        },
        {
            "name": "click",
            "specs": []
        },
        {
            "name": "colorama",
            "specs": []
        },
        {
            "name": "tabulate",
            "specs": []
        },
        {
            "name": "textual",
            "specs": []
        },
        {
            "name": "platformdirs",
            "specs": []
        }
    ],
    "lcname": "ytflashback"
}
        
Elapsed time: 1.78133s