{"id":24744826,"url":"https://github.com/yellowgg2/youngs-ytdl","last_synced_at":"2025-10-25T02:34:09.285Z","repository":{"id":163889225,"uuid":"477905323","full_name":"yellowgg2/youngs-ytdl","owner":"yellowgg2","description":"Telegram download bot for Youtube-dl, reddit and etc... ","archived":false,"fork":false,"pushed_at":"2025-09-28T16:11:02.000Z","size":482,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-28T16:27:58.014Z","etag":null,"topics":["docker","docker-compose","golang","nodejs","telegram","telegram-bot","youtube-dl"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/yellowgg2.png","metadata":{"files":{"readme":"README.ko.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":"2022-04-04T23:16:03.000Z","updated_at":"2025-09-20T01:14:52.000Z","dependencies_parsed_at":"2024-03-20T07:25:40.904Z","dependency_job_id":"35a19fab-33c6-40ed-a6f7-1dea3a857562","html_url":"https://github.com/yellowgg2/youngs-ytdl","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/yellowgg2/youngs-ytdl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yellowgg2%2Fyoungs-ytdl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yellowgg2%2Fyoungs-ytdl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yellowgg2%2Fyoungs-ytdl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yellowgg2%2Fyoungs-ytdl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yellowgg2","download_url":"https://codeload.github.com/yellowgg2/youngs-ytdl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yellowgg2%2Fyoungs-ytdl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003901,"owners_count":26083641,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["docker","docker-compose","golang","nodejs","telegram","telegram-bot","youtube-dl"],"created_at":"2025-01-28T02:20:12.343Z","updated_at":"2025-10-10T12:31:16.929Z","avatar_url":"https://github.com/yellowgg2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md)\n\n# YouTube 다운로드 텔레그램 봇\n\nYouTube 및 다양한 미디어 사이트에서 영상/음악을 다운로드할 수 있는 텔레그램 봇입니다. Docker가 설치 가능한 모든 환경에서 사용할 수 있습니다. (리눅스 서버, 시놀로지 NAS 등)\n\n## 목차\n- [주요 기능](#주요기능)\n- [설치](#설치)\n- [환경 설정](#environments)\n- [사용법](#사용법)\n- [업데이트](#업데이트)\n\n## 개요\n\n이 봇은 강력한 미디어 다운로더인 [yt-dlp](https://github.com/yt-dlp/yt-dlp)를 내장하여 사용합니다. 파일명에 `채널 이름`과 `업로드 날짜`를 자동으로 추가하는 기능을 지원합니다.\n\n## 주요기능\n\n### 미디어 다운로드\n- YouTube 및 1000개 이상의 사이트 지원 (Twitter, Instagram, TikTok 등)\n  - [지원 사이트 전체 목록](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)\n- **지원 포맷**: `mp3`, `mp4`, `m4a`, `flac`, `ogg`, `wav`, `webm`\n- URL을 봇에게 전송하면 포맷 선택 버튼이 표시됩니다\n- 선택한 포맷으로 즉시 다운로드가 시작됩니다\n- `setft` 명령으로 기본 포맷을 설정하면 자동 다운로드 (여러 포맷 동시 선택 가능)\n\n  \u003cimg src=\"./screenshots/download_tube.png\" alt=\"drawing\" width=\"300\"/\u003e\n\n### 플레이리스트 다운로드\n\n- `https://www.youtube.com/playlist?list`로 시작하는 URL 자동 인식\n- 플레이리스트의 모든 영상을 순차적으로 다운로드\n- **주의**: 플레이리스트는 반드시 공개 상태여야 함\n- 다운로드 중단: `정지`, `멈춤`, `s`, `stop` 중 하나를 입력\n\n### 사용자 관리 시스템\n\n- `.env` 파일의 `TELEGRAM_ADMIN_USERNAME`에 설정한 사용자가 최초 관리자\n- 관리자가 일반 사용자 또는 추가 관리자를 등록 가능\n\n### 사용자 명령어\n\n| 명령어 | 설명 |\n|--------|------|\n| `/help` | 도움말 표시 |\n| `/allusers` | 등록된 모든 사용자 목록 확인 |\n| `/setft` | 기본 다운로드 포맷 설정 (`none` 선택 시 해제) |\n| `/showft` | 설정된 기본 포맷 확인 |\n| `/ff [검색어]` | 다운로드된 파일 검색 |\n\n  \u003cimg src=\"./screenshots/user_menu.png\" alt=\"drawing\" width=\"300\"/\u003e\n\n### 관리자 명령어\n\n| 명령어 | 설명 |\n|--------|------|\n| `/ahelp` | 관리자 도움말 표시 |\n| `/adduser [ID] [이름] [타입]` | 사용자/관리자 추가 |\n| `/upuser [ID] [이름] [타입]` | 사용자 정보 수정 |\n| `/deluser [ID]` | 사용자 삭제 |\n| `/chtof` | 파일명에 채널 이름 추가 (토글, **전체 사용자 적용**) |\n| `/udtof` | 파일명에 업로드 날짜 추가 (토글, **전체 사용자 적용**) |\n\n  \u003cimg src=\"./screenshots/admin_menu.png\" alt=\"drawing\" width=\"300\"/\u003e\n\n### 파일 삭제 기능\n\n다운로드 완료 메시지에 답장(Reply)으로 다음 중 하나를 입력하면 파일이 삭제됩니다:\n- `지우기`, `삭제`, `d`, `del`, `delete`\n\n  \u003cimg src=\"./screenshots/delete_file.png\" alt=\"drawing\" width=\"300\"/\u003e\n\n## environments\n\n`.env` 파일 설정값\n\n| 변수명 | 설명 | 예시 |\n|--------|------|------|\n| `PUID` | 호스트 사용자 ID (`id -u` 명령으로 확인) | `1000` |\n| `PGID` | 호스트 그룹 ID (`id -g` 명령으로 확인) | `1000` |\n| `TELEGRAM_BOT_API_TOKEN` | BotFather에서 발급받은 봇 토큰 | - |\n| `TELEGRAM_ADMIN_USERNAME` | 관리자 텔레그램 ID (`@` 제외)\u003cbr\u003e예: `@superman` → `superman` | `superman` |\n| `TELEGRAM_ADMIN_DESC` | 관리자 설명 | `수퍼맨` |\n| `TELEGRAM_ADMIN_CHATID` | 오류 알림을 받을 채팅 ID | `11223344` |\n| `DOWNLOAD_PATH` | 다운로드 경로 (호스트) | `./bot/download` |\n| `SEARCH_ROOT_PATH` | 파일 검색 경로 (선택) | `/music` |\n| `BOT_LANG` | 언어 설정 (`ko`: 한국어, `en`: 영어) | `ko` |\n\n## 설치\n\n### 필수 요구사항\n- Docker\n- Docker Compose\n\n### 설치 과정\n\n1. **저장소 복제**\n   ```bash\n   git clone https://github.com/yellowgg2/youngs-ytdl\n   cd youngs-ytdl\n   ```\n\n2. **환경 설정**\n   ```bash\n   cp .env.sample .env\n   # .env 파일을 편집하여 필요한 값 설정\n   ```\n\n3. **봇 실행**\n   ```bash\n   docker compose up -d --build\n   ```\n\n### Synology NAS 사용자를 위한 추가 설정\n\nDS Audio와 연동하려면:\n1. 제어판에서 작업 스케줄러 생성 (부팅 시 실행)\n2. `download-watch.sh` 스크립트 등록\n3. 스크립트 내 `DOWNLOAD_PATH`를 DS Audio 감시 폴더로 변경\n   ```bash\n   DOWNLOAD_PATH=\"/music\"  # DS Audio가 감시하는 경로\n   ```\n\n## 사용법\n\n1. 텔레그램에서 봇 검색 및 시작\n2. YouTube URL을 봇에게 전송\n3. 원하는 포맷 선택 (또는 기본 포맷으로 자동 다운로드)\n4. 다운로드 완료 대기\n\n## 업데이트\n\n### yt-dlp 엔진 업데이트\nyt-dlp의 최신 버전으로 업데이트 (YouTube 변경사항 대응):\n```bash\n# yt-dlp 이미지만 업데이트\ndocker compose pull yt-dlp-service\n```\n\n### 봇 코드 업데이트\n저장소의 최신 코드로 업데이트:\n```bash\n# 최신 코드 가져오기\ngit pull\n\n# 서비스 재빌드 및 재시작\ndocker compose down\ndocker compose up -d --build\n```\n\n### 전체 시스템 업데이트\n모든 구성 요소를 최신 버전으로 업데이트:\n```bash\ngit pull\ndocker compose pull\ndocker compose down\ndocker compose up -d --build\n```\n\n\u003e **팁**: YouTube 다운로드가 실패하는 경우, 대부분 yt-dlp 업데이트로 해결됩니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyellowgg2%2Fyoungs-ytdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyellowgg2%2Fyoungs-ytdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyellowgg2%2Fyoungs-ytdl/lists"}