{
  "markdown": "<p align=\"center\">\n  <img src=\"public/assets/banner.png\" width=\"100%\" alt=\"Gemini Watch Banner\" />\n</p>\n\n# Gemini Watch 👁️\n\n**Gemini Watch** is a native, multimodal extension for the [Gemini CLI](https://github.com/google-gemini/gemini-cli) that gives the agent \"eyes\" to watch videos from YouTube, Vimeo, TikTok, or local files.\n\nInstead of relying on heavy MCP servers or complex setups, `gemini-watch` provides a highly optimized pipeline that downloads videos with `yt-dlp`, extracts frames with `ffmpeg`, and transcribes audio natively using Gemini's multimodal capabilities. The Gemini CLI then natively loads these visual and audio cues directly into its multimodal context window to answer any question about the video.\n\n## ✨ Features\n* **Multimodal Visual & Audio Inputs:** Automatically extracts auto-scaled video frames and native audio tracks. It uses the CLI's `read_file` tool to feed both visuals and audio into Gemini's massive multimodal context window.\n* **Multi-Platform Support:** Works flawlessly with YouTube, Vimeo, TikTok, Twitter/X, Twitch, and most `yt-dlp` compatible websites, as well as local video files (`.mp4`, `.mov`, `.mkv`, etc.).\n* **Smart Native Fallback:** Automatically pulls native or auto-generated captions first. If unavailable, it extracts the audio track for Gemini to \"hear\" and transcribe natively—**no external API keys (Whisper/Groq) required.**\n* **Denser Focused Zoom:** Supports focusing on specific timestamps (e.g. `--start 01:00 --end 01:30`) to extract frames at a higher density for detailed analysis of brief moments.\n* **Pure Python Standard Library:** Requires **zero** external Python packages (no pip installs needed outside standard tools).\n* **Setup Wizard:** Includes a built-in preflight checker (`setup.py`) to detect missing binaries in one command.\n\n## 🛠️ Prerequisites\n\nTo use this extension, you must have **Python 3**, **FFmpeg**, and **yt-dlp** installed on your system.\n\n### Install Dependencies:\n* **macOS:**\n  ```bash\n  brew install ffmpeg yt-dlp\n  ```\n* **Windows (via Winget):**\n  ```bash\n  winget install Gyan.FFmpeg\n  winget install yt-dlp.yt-dlp\n  ```\n* **Linux:**\n  ```bash\n  sudo apt install ffmpeg\n  ```\n  (And install `yt-dlp` via your package manager or pipx)\n\n## 📦 Installation\n\nYou can install this extension directly into Gemini CLI using the following command (replace `<your-username>` with your actual GitHub username once published):\n\n```bash\ngemini extensions install https://github.com/sudoax0n/gemini-watch\n```\n\n*Note: If you have cloned this repository locally, you can link it instead:*\n```bash\ngemini extensions link ./gemini-watch\n```\n\n## 🚀 Setup & Config\n\nOnce installed, run the setup wizard to scaffold your environment and configuration files:\n\n```bash\npy scripts/setup.py\n```\n\nThis creates a configuration directory at `~/.config/gemini-watch/` with a `.env` file. While you can still provide a Groq or OpenAI API key for legacy Whisper support, it is no longer required as Gemini now handles audio transcription natively.\n\n## 💻 Usage\n\nDrop a video link or local file path into your Gemini CLI session and ask it a question!\n\n**Example Prompts:**\n* *\"What is happening in this video? [URL]\"*\n* *\"Explain what the speaker is demonstrating at timestamp 02:40: [URL]\"*\n* *\"Analyze the slide shown at the beginning of my local presentation: C:\\Users\\me\\presentation.mp4\"*\n\n### CLI Commands (for development or direct execution):\n```bash\n# Check if binaries and config are ready\npy scripts/setup.py --check\n\n# Watch a video (URL or local file)\npy scripts/watch.py \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n\n# Watch a focused section of a local file\npy scripts/watch.py \"C:\\Users\\me\\clip.mp4\" --start 00:30 --end 01:00\n```\n\n## 🧠 How it Works\n1. When you ask Gemini CLI about a video, the agent reads `GEMINI.md`.\n2. It executes `scripts/watch.py` with your URL/file path (and optional start/end timestamps).\n3. The script downloads the video (if a URL) via `yt-dlp` and uses `ffmpeg` to extract auto-scaled JPEG frames and an audio track.\n4. It fetches captions or falls back to providing the raw audio file for native transcription.\n5. The script outputs a markdown report listing JPEGs and the audio path.\n6. The Gemini agent uses the `read_file` tool to load all frames and the audio file in parallel into its multimodal context, allowing it to \"watch\" and \"listen\" to the video to synthesize a precise answer.\n\n## 🤝 Socials\nFollow me for more Gemini CLI tools and hacks:\n* **X (Twitter):** [@beyondwudan](https://x.com/beyondwudan)\n* **GitHub:** [@sudoax0n](https://github.com/sudoax0n)\n\n## License\n[MIT License](LICENSE)\n",
  "bytes": 4636,
  "sha": "9e2331190273debebbc31d774ce25a08a40793d54fd45ba9781a32caf7910753",
  "repo_slug": "sudoax0n/gemini-watch",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_sudoax0n_gemini_watch_42359eca/readme"
}