{"id":24975601,"url":"https://github.com/borishrzenjak/yts","last_synced_at":"2026-04-28T08:36:43.109Z","repository":{"id":270838972,"uuid":"911602519","full_name":"BorisHrzenjak/yts","owner":"BorisHrzenjak","description":"A command-line tool to transcribe YouTube videos and generate summaries using Mistral AI.","archived":false,"fork":false,"pushed_at":"2025-01-11T21:21:43.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T21:01:37.719Z","etag":null,"topics":["ai","cli","json","llm","mistral","summary","transcription"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BorisHrzenjak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-01-03T12:03:46.000Z","updated_at":"2025-01-11T21:21:46.000Z","dependencies_parsed_at":"2025-02-03T21:01:19.697Z","dependency_job_id":"eb938a60-bb01-4da3-a041-4b97ac711d86","html_url":"https://github.com/BorisHrzenjak/yts","commit_stats":null,"previous_names":["borishrzenjak/yts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BorisHrzenjak%2Fyts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BorisHrzenjak%2Fyts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BorisHrzenjak%2Fyts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BorisHrzenjak%2Fyts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BorisHrzenjak","download_url":"https://codeload.github.com/BorisHrzenjak/yts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246156025,"owners_count":20732357,"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":["ai","cli","json","llm","mistral","summary","transcription"],"created_at":"2025-02-03T21:00:55.025Z","updated_at":"2026-04-28T08:36:37.915Z","avatar_url":"https://github.com/BorisHrzenjak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YouTube Transcription and Summary Tool (YTS)\n\nA command-line tool to transcribe YouTube videos and generate summaries using Mistral AI.\n\n## Installation\n\n1. Clone the repository\n2. Install the package:\n```bash\nuv pip install -e .\n```\n\n3. Create a `.env` file in the root directory and add your Mistral API key:\n```\nMISTRAL_API_KEY=your_api_key_here\n```\n\n## Usage\n\n```bash\n# Get transcription only\nyts -t \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Get summary only\nyts -s \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Get both transcription and summary\nyts -t -s \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Save results to file (in current directory, default JSON format)\nyts -t -s --save \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Save as text file\nyts -t -s --save --format txt \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Save as markdown file\nyts -t -s --save --format md \"https://youtube.com/watch?v=VIDEO_ID\"\n\n# Save to specific directory\nyts -t -s --save --format md -o path/to/directory \"https://youtube.com/watch?v=VIDEO_ID\"\n```\n\n## Features\n\n- Supports both regular YouTube URLs and YouTube Shorts\n- Uses YouTube's official transcript API for fast and accurate transcriptions\n- Generates concise summaries using Mistral AI's large language model\n- Simple command-line interface\n- Environment variable management for API keys\n- Multiple output formats:\n  - JSON (structured data)\n  - Text (human-readable)\n  - Markdown (formatted documentation)\n- Includes video metadata (title, channel, upload date)\n\n## Output Formats\n\n### JSON Format\n```json\n{\n  \"video_id\": \"VIDEO_ID\",\n  \"title\": \"Video Title\",\n  \"channel\": \"Channel Name\",\n  \"upload_date\": \"YYYYMMDD\",\n  \"timestamp\": \"YYYYMMDD_HHMMSS\",\n  \"transcript\": \"Video transcription...\",\n  \"summary\": \"Video summary...\"\n}\n```\n\n### Text Format\n```\nYouTube Video Transcription and Summary\n========================================\nTitle: Video Title\nChannel: Channel Name\nUpload Date: YYYYMMDD\nVideo ID: VIDEO_ID\n========================================\n\nTranscription:\n----------------------------------------\n[Transcription text]\n\nSummary:\n----------------------------------------\n[Summary text]\n```\n\n### Markdown Format\n```markdown\n# Video Title\n\n## Video Information\n- **Channel:** Channel Name\n- **Upload Date:** YYYYMMDD\n- **Video ID:** VIDEO_ID\n\n## Transcription\n```\n[Transcription text]\n```\n\n## Summary\n[Summary text]\n```\n\nThe files are named in the format: `Video Title_TIMESTAMP.{format}`\nwhere format is one of: json, txt, or md\n\n## Requirements\n\n- Python 3.13 or higher\n- FFmpeg (for audio processing)\n- Mistral AI API key","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborishrzenjak%2Fyts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborishrzenjak%2Fyts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborishrzenjak%2Fyts/lists"}