{"id":15201637,"url":"https://github.com/bitArtisan1/CapScript-Youtube-Subtitle-Search-Tool","last_synced_at":"2025-10-28T18:32:01.592Z","repository":{"id":260232263,"uuid":"669578030","full_name":"bitArtisan1/CapScript","owner":"bitArtisan1","description":"CapScript is a Python console script that allows you to search for specific words or phrases within the captions (subtitles) or transcripts in multiple languages of YouTube videos","archived":false,"fork":false,"pushed_at":"2024-08-06T17:38:57.000Z","size":378,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T17:35:09.364Z","etag":null,"topics":["caption-bot","captions","python","script","search","subtitles","transcripts","words","youtube","youtube-api","youtube-bot","youtube-channel","youtube-video"],"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/bitArtisan1.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}},"created_at":"2023-07-22T18:22:43.000Z","updated_at":"2024-12-16T17:10:41.000Z","dependencies_parsed_at":"2024-10-30T09:35:33.216Z","dependency_job_id":"b315d134-7fb0-4a64-bfa2-910d83779e99","html_url":"https://github.com/bitArtisan1/CapScript","commit_stats":null,"previous_names":["bitartisan1/capscript","git-aamar/capscript"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitArtisan1%2FCapScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitArtisan1%2FCapScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitArtisan1%2FCapScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitArtisan1%2FCapScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitArtisan1","download_url":"https://codeload.github.com/bitArtisan1/CapScript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238700523,"owners_count":19515947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["caption-bot","captions","python","script","search","subtitles","transcripts","words","youtube","youtube-api","youtube-bot","youtube-channel","youtube-video"],"created_at":"2024-09-28T03:20:24.390Z","updated_at":"2025-10-28T18:32:01.575Z","avatar_url":"https://github.com/bitArtisan1.png","language":"Python","funding_links":["https://ko-fi.com/D1D11CZNM1"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ko-fi.com/D1D11CZNM1\"\u003e\n    \u003cimg src=\"https://ko-fi.com/img/githubbutton_sm.svg\" alt=\"Support me on Ko-fi\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n  \n# 🎬 CapScript Pro: Advanced YouTube Caption Search \u0026 Clip Tool\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Python Version\" src=\"https://img.shields.io/badge/python-3.8+-red.svg\"\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-GPLv3-green.svg\"\u003e \n  \u003ca href=\"https://github.com/bitArtisan1/CapScript-Pro/releases\"\u003e\n    \u003cimg alt=\"Latest Release\" src=\"https://img.shields.io/github/v/release/bitArtisan1/CapScript-Pro\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**CapScript Pro is a comprehensive desktop application for searching, viewing, and processing YouTube video captions, featuring an integrated transcript viewer, clip downloader, video list creator, and renderer.**\n\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/7e262078-666a-4057-9db7-41c5b5aec8ce\" alt=\"Image Description\" width=700px\u003e\n  \u003c/p\u003e\n\n---\n\n## 📖 Table of Contents\n- [✨ Overview](#-overview)\n- [🌟 Core Features](#-core-features)\n- [🛠️ Prerequisites](#️-prerequisites)\n- [🚀 Installation \u0026 Usage](#-installation--usage)\n  - [Method 1: Pre-built Executable](#method-1-using-the-pre-built-executable-recommended-for-most-users)\n  - [Method 2: Running from Source](#method-2-running-from-source-for-developers-or-users-who-prefer-python)\n  - [Command-Line Interface (CLI)](#command-line-interface-cli-usage)\n- [🔑 Obtaining a YouTube Data API Key](#-obtaining-a-youtube-data-api-key)\n- [🆔 Finding a YouTube Channel ID](#-finding-a-youtube-channel-id)\n- [📝 Notes](#-notes)\n- [📜 License](#-license)\n- [❤️ Support Me](#️-support-me)\n- [🐛 Issues \u0026 Feature Requests](#-issues--feature-requests)\n\n---\n\n## ✨ Overview\nCapScript Pro, built with Python and PySide6, extends beyond simple caption searching. It offers an integrated transcript viewer with a synchronized video player, a clip downloader, a video list creator, and a clip rendering tool. This powerful suite allows users to efficiently find specific content within YouTube videos, extract relevant segments, and manage video lists.\n  \n## 🌟 Core Features\n-   **🖥️ Intuitive GUI**: Modern user interface with a collapsible sidebar and custom title bar.\n-   **🔍 Advanced Caption Search**: By Channel ID or multiple Video IDs (direct input or `.txt` file), with keyword/phrase and language specification. Includes real-time progress and logging.\n-   **📺 Integrated Transcript Viewer**: Load search results or standalone transcript files. Clickable timestamps synchronize with an **embedded YouTube video player** for instant playback.\n-   **✂️ Clip Downloader**: Download short video clips around matched timestamps using `yt-dlp` and `ffmpeg`. Features **automatic download and setup** of these dependencies.\n-   **➕ Video List Creator**: Discover videos by channel, date range, or title keywords. View thumbnails and **drag \u0026 drop YouTube URLs** to add videos. Save lists for use in the Search tab.\n-   **🎞️ Clip Renderer**: Concatenate multiple downloaded clips into a single video file using `ffmpeg`, with progress updates.\n-   **🔑 API Key Management**: Securely save your YouTube Data API key locally, with an option to show/hide the key.\n-   **🔗 Dependency Management**: Automatically checks for and offers to download `yt-dlp` and `ffmpeg`.\n-   **📁 Organized Output**: Saves results into structured folders (`transcripts`, `transcripts/clips`, `video_lists`).\n-   **⚙️ Developer \u0026 Automation Support**: Includes a powerful **Command-Line Interface (CLI)** for scripting and automated tasks.\n\n---\n\n## 🛠️ Prerequisites (FOR DEVELOPER USE ONLY, NOT REQUIRED FOR RELEASES)\n1.  **Python**: Version 3.8+ recommended. [Download Python](https://www.python.org/downloads/).\n2.  **Python Libraries**:\n    ```bash\n    pip install PySide6 google-api-python-client google-auth-httplib2 google-auth-oauthlib youtube-transcript-api requests\n    ```\n    *(Or install from `requirements.txt`: `pip install -r requirements.txt`)*\n---\n\n## 🚀 Installation \u0026 Usage\n\nCapScript Pro can be run in two main ways:\n\n### **Method 1: Using the Pre-built Executable (Recommended for most users)**\n\n1.  **Download the Latest Release**:\n    *   Navigate to the **[Releases page](https://github.com/bitArtisan1/CapScript-Pro/releases)**.\n    *   Download the `CapScriptPro.exe` file (or a `.zip` archive containing it).\n2.  **Run the Application**:\n    *   Place the executable (and any accompanying files/folders if from a zip) in a directory.\n    *   Run `CapScriptPro.exe`.\n3.  **API Key Configuration**:\n    *   On first launch, go to the **Search** tab, enter your YouTube Data API key, and click \"**Save Key**\". It's stored locally in `preferences.ini`.\n\n### **Method 2: Running from Source (For developers or users who prefer Python)**\n\n1.  **Clone the Repository**:\n    ```bash\n    git clone https://github.com/bitArtisan1/CapScript-Pro.git\n    cd CapScript-Pro\n    ```\n2.  **Install Dependencies**:\n    ```bash\n    pip install -r requirements.txt \n    ```\n3.  **API Key Configuration \u0026 Run**:\n    *   Launch by running: `python gui_main.py`\n    *   Configure the API key in the **Search** tab as described in Method 1.\n4.  **Run the GUI Application**:\n    ```bash\n    python gui_main.py\n    ```\n---\n\n### **Command-Line Interface (CLI) Usage**\n\nFor automation or command-line preference, use `cli.py`.\n\n**Running the CLI:**\nNavigate to the project directory and execute:\n```bash\npython cli.py [ARGUMENTS]\n```\n\n**Key CLI Arguments:**\n*   `--api-key YOUR_API_KEY`: (Optional) Provide API key directly.\n*   `--save-api-key`: (Optional) Saves the `--api-key` to `preferences.ini`.\n*   `--search-type {channel,video}`: **(Required)**\n*   `--keyword \"YOUR_SEARCH_TERM\"`: **(Required)**\n*   `--language LANG_CODE`: (Optional, default: \"en\")\n*   `--output-dir PATH_TO_DIR`: (Optional, default: \"transcripts\")\n*   **For `--search-type channel`**:\n    *   `--channel-id CHANNEL_ID`: **(Required)**\n    *   `--max-results NUMBER`: (Optional, default: 10)\n*   **For `--search-type video`**:\n    *   `--video-ids \"ID1,ID2\" OR path/to/ids.txt`: **(Required)**\n\n**CLI Example:**\nSearch the last 5 videos of a channel for \"python tutorial\":\n```bash\npython cli.py --search-type channel --channel-id \"UCxxxxxxxxxxxxxxxxxxxxxx\" --keyword \"python tutorial\" --language \"en\" --max-results 5 --api-key \"YOUR_API_KEY\" --save-api-key\n```\nSearch specific video IDs for \"data science\":\n```bash\npython cli.py --search-type video --video-ids \"dQw4w9WgXcQ,anotherVideoID\" --keyword \"data science\"\n```\nThe CLI shares `preferences.ini` with the GUI if run from the same root.\n\n---\n\n## 🔑 Obtaining a YouTube Data API Key\n1.  Go to the [Google Developer Console](https://console.cloud.google.com/) and create a new project.\n2.  Navigate to \"APIs \u0026 Services\" \u003e \"Dashboard\", click \"+ ENABLE APIS AND SERVICES\", search for \"YouTube Data API v3\", and enable it.\n3.  Go to \"Credentials\" \u003e \"Create Credentials\" \u003e \"API key\".\n4.  **Restrict API Key (Recommended)** for security.\n\n---\n\n## 🆔 Finding a YouTube Channel ID\n1.  Go to the YouTube channel in your browser.\n2.  The Channel ID is often in the URL: `https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxxxxxx`.\n3.  If not, right-click page \u003e \"View Page Source\" or \"Inspect\". Search (`Ctrl+F` or `Cmd+F`) for `channelId` or `externalId`.\n\n---\n\n## 📝 Notes\n-   `preferences.ini` (in application root) stores API key and UI settings.\n-   Downloaded `yt-dlp.exe` and `ffmpeg.exe` are in a local `bin` folder.\n-   Default output folders: `transcripts`, `transcripts/clips`, `video_lists`.\n-   Videos without captions in the selected language are skipped.\n-   **Important**: Respect YouTube Data API quotas.\n\n---\n\n## 📜 License\n\nThis project is licensed under the GNU-GPL-v3.0 License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## ❤️ Support Me\nIf you find CapScript Pro useful, consider supporting by:\n-   ⭐ Starring the repository on GitHub\n-   🗣️ Sharing the tool\n-   💡 Providing feedback and suggestions\n-   ➕ Following for more updates\n  \n\u003ca href=\"https://ko-fi.com/D1D11CZNM1\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/ba118768-9054-416f-b7b2-adaa69a53434\" alt=\"Support me on Ko-fi\" width=\"200\" /\u003e\n\u003c/a\u003e\n\n---\n\n## 🏷️ Tags for Discovery\nKeywords to help users find CapScript Pro:\n\n`YouTube SEO`, `Video Content Strategy`, `Content Repurposing`, `Video Clipping Tool`, `Transcription Software`, `YouTube Channel Growth`, `Video Marketing`, `Python Video Utilities`, `Open Source Video Projects`, `Multimedia Tools`, `YouTube Caption Search`, `YouTube Transcript Viewer`, `YouTube Clip Downloader`, `Subtitle Search Tool`, `Closed Caption Finder`, `Timestamped Captions`, `Batch Video Processing`, `Automated Video Downloads`, `Video Keyword Search`, `yt-dlp GUI`, `ffmpeg GUI`, `Desktop Application`, `Python YouTube Tool`\n\n---\n\n## 🐛 Issues \u0026 Feature Requests\n\u003cp align=\"center\"\u003e\n  For any issues or feature requests, please \u003ca href=\"https://github.com/bitArtisan1/CapScript-Pro/issues\"\u003eopen an issue on GitHub\u003c/a\u003e. Happy coding!\n\u003c/p\u003e\n  \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/36a3e590-bad2-463d-a25e-f56d65c26761\" alt=\"octodance\" width=\"100\" height=\"100\" /\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FbitArtisan1%2FCapScript-Youtube-Subtitle-Search-Tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FbitArtisan1%2FCapScript-Youtube-Subtitle-Search-Tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FbitArtisan1%2FCapScript-Youtube-Subtitle-Search-Tool/lists"}