{"id":35788110,"url":"https://github.com/spacesoda/youtube2txt","last_synced_at":"2026-01-21T09:08:29.881Z","repository":{"id":331828545,"uuid":"1127539961","full_name":"SPACESODA/youtube2txt","owner":"SPACESODA","description":"youtube2txt / YouTube to TXT / YouTube Transcript Grabber — a tool to extract clean transcripts from any YouTube video!","archived":false,"fork":false,"pushed_at":"2026-01-14T08:07:10.000Z","size":693,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-16T18:45:46.526Z","etag":null,"topics":["caption","localhost","subtitle","transcript","youtube"],"latest_commit_sha":null,"homepage":"https://spacesoda.github.io/youtube2txt/","language":"JavaScript","has_issues":false,"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/SPACESODA.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":"2026-01-04T05:03:22.000Z","updated_at":"2026-01-14T08:07:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SPACESODA/youtube2txt","commit_stats":null,"previous_names":["spacesoda/youtube2txt"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/SPACESODA/youtube2txt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPACESODA%2Fyoutube2txt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPACESODA%2Fyoutube2txt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPACESODA%2Fyoutube2txt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPACESODA%2Fyoutube2txt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SPACESODA","download_url":"https://codeload.github.com/SPACESODA/youtube2txt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPACESODA%2Fyoutube2txt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28561842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["caption","localhost","subtitle","transcript","youtube"],"created_at":"2026-01-07T07:21:09.562Z","updated_at":"2026-01-19T05:00:44.391Z","avatar_url":"https://github.com/SPACESODA.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# youtube2txt\n\n**youtube2txt** (YouTube Transcript Grabber) — A robust, locally-hosted tool to extract clean transcripts from any YouTube video. It runs on your own machine to bypass YouTube's IP blocks on public proxies, ensuring high reliability by using the powerful `yt-dlp` engine under the hood.\n\n\u003e [!IMPORTANT]\n\u003e This tool must run locally to avoid YouTube IP blocks. It uses your own IP, which YouTube trusts, so transcript fetches are far more reliable.\n\n\u003cbr\u003e\n\n## Features\n\n- **Reliable Fetching**: Uses `yt-dlp` binaries to handle YouTube's latest anti-bot measures.\n- **Multi-language Transcripts**: Fetch transcripts in different available languages when provided by YouTube.\n- **Instant Copy/Download**: One-click copy to clipboard or download as `.txt` for LLM use.\n\n### What is yt-dlp?\n\n[yt-dlp](https://github.com/yt-dlp/yt-dlp) is an open-source command-line tool for extracting info and media from YouTube and many other sites. Here, it powers transcript fetching and handles YouTube's anti-bot measures more reliably than typical web crawlers.\n\n\u003cbr\u003e\n\n## How to Use\n\n### Method 1:  Desktop App (recommended)\nDownload the latest installer from GitHub Releases and launch the app. It starts the local server in the background. No Node or Python required.\n\nClick the tray **app icon** to open the **menu** and launch the browser UI. ( If port 3000 is busy, the app picks the next available port automatically. )\n\nUpdates are delivered through the app via GitHub Releases.\n\n### Method 2: Local Install by \"quickstart\" (recommended)\n1. Install **Node.js 20+** (includes npm): https://nodejs.org/\n2. On **macOS/Linux**, install **Python 3**: https://www.python.org/downloads/\n3. From the repo folder (use `cd`), run:\n    ```bash\n    npm run quickstart\n    ```\nThis runs a preflight check, installs dependencies, and starts the server.\n\n### Method 3: Local Install Manually\n```bash\nnpm install\nnpm start\n```\n**To Restart:** If you need to stop or restart the server, simply press `Ctrl + C` in your terminal to stop it, then run `npm start` again.  \n**To Check:** If you want to check dependencies, run:\n```bash\nnpm run doctor\n```\n\n### Method 4: Docker\nIf you already use Docker, you can run it without local Node/npm installs.  \nRequires Docker Desktop (or Docker Engine + Compose v2).\n```bash\ndocker compose up --build\n```\n\n\u003cbr\u003e\n\n## Configuration \u0026 Troubleshooting\n\n### Using the latest UI\nAccess the tool at `http://localhost:3000`, or use the hosted page which includes the latest UI updates:\n- **GitHub Pages**: [https://spacesoda.github.io/youtube2txt/](https://spacesoda.github.io/youtube2txt/)\n- **Auto-connect to Local Server**: [https://spacesoda.github.io/youtube2txt/?apiBase=http://localhost:3000](https://spacesoda.github.io/youtube2txt/?apiBase=http://localhost:3000)\n\n### Optional Environment Variables\n- `YTDLP_PATH`: Use an existing `yt-dlp` binary from a custom path.\n- `YTDLP_COOKIES`: Path to a cookies file for YouTube (helps with rate limits).\n- `HOST`: Override the server host (default is 0.0.0.0).\n- `PORT`: Override the server port (default is 3000).\n\n### Per-project Node Version\nTo keep Node isolated and avoid conflicts with other projects:\n- **nvm (macOS/Linux)**: run `nvm install` then `nvm use` (this repo includes `.nvmrc`).\n- **nvm-windows**: https://github.com/coreybutler/nvm-windows\n- **Volta (macOS/Windows/Linux)**: https://volta.sh (this repo pins Node 20 via `package.json`).\n\n### Troubleshooting\n- `node: command not found` or `npm not found`: install Node.js 20+ from https://nodejs.org/\n- `python3: command not found` or `Python was not found`: install Python 3 (macOS/Linux only).\n- `EACCES` or `EPERM`: permissions issue. Avoid sudo; try deleting `node_modules` and re-running.\n- `EADDRINUSE`: port 3000 is busy. Run with `PORT=3001 npm start`.\n- `npm ERR! network`: network or proxy issue. Try again or switch networks.\n\n\u003cbr\u003e\n\n## Building and Releasing\n\n### Build the App\nTo build the desktop app for your OS, install dependencies and run the build from the repo root:\n```bash\nnvm use\nnpm install\nnpm test\nnpm run dist\n```\nBuild artifacts are written to `dist/`. The installer target depends on the OS you build on (macOS DMG, Windows NSIS, Linux AppImage).\n\n### Publishing a Release\nTo publish a new release with app files reliably included, use the following commands:\n```bash\ngit tag v1.2.6\ngit push origin v1.2.6\n```\n\n\u003cbr\u003e\n\n## License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspacesoda%2Fyoutube2txt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspacesoda%2Fyoutube2txt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspacesoda%2Fyoutube2txt/lists"}