{"id":39401478,"url":"https://github.com/cachebag/flashback","last_synced_at":"2026-01-18T03:24:34.335Z","repository":{"id":306664417,"uuid":"1026858035","full_name":"cachebag/flashback","owner":"cachebag","description":"Find old YouTube gems that the algorithm hides.","archived":false,"fork":false,"pushed_at":"2025-09-14T16:04:26.000Z","size":97,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-14T17:42:14.607Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cachebag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-26T19:04:01.000Z","updated_at":"2025-09-14T17:34:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8268181-c492-49a8-82d1-93dec9feeb7b","html_url":"https://github.com/cachebag/flashback","commit_stats":null,"previous_names":["cachebag/flashback"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cachebag/flashback","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cachebag%2Fflashback","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cachebag%2Fflashback/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cachebag%2Fflashback/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cachebag%2Fflashback/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cachebag","download_url":"https://codeload.github.com/cachebag/flashback/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cachebag%2Fflashback/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28528038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T03:24:34.182Z","updated_at":"2026-01-18T03:24:34.311Z","avatar_url":"https://github.com/cachebag.png","language":"Python","funding_links":[],"categories":["\u003ca name=\"online\"\u003e\u003c/a\u003eOnline search and resources"],"sub_categories":[],"readme":"# 📹 flashback\n\nA 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# Demo\n\n## TUI \n\nhttps://github.com/user-attachments/assets/b87dd093-f1f1-4c66-a75f-876af2fd8d46\n\n\n## CLI\n\nhttps://github.com/user-attachments/assets/cc1ff0cf-8b8b-48f7-8fce-ab78510ac59e\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** - Flags for power users and scripts\n-  **Easy API key management** - Multiple ways to configure your YouTube API key\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  --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 (≈100 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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcachebag%2Fflashback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcachebag%2Fflashback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcachebag%2Fflashback/lists"}