{"id":44384675,"url":"https://github.com/kas-cor/echomskpodcast_nodejs","last_synced_at":"2026-02-12T00:36:44.404Z","repository":{"id":88587226,"uuid":"433204241","full_name":"kas-cor/echomskpodcast_nodejs","owner":"kas-cor","description":"Канал в телеграм @echomskpodcast","archived":false,"fork":false,"pushed_at":"2025-06-27T07:33:49.000Z","size":33784,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-27T08:35:46.202Z","etag":null,"topics":["node-js","sequelize-orm"],"latest_commit_sha":null,"homepage":"https://t.me/echomskpodcast","language":"JavaScript","has_issues":false,"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/kas-cor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"custom":"https://bit.ly/3uVaKEu"}},"created_at":"2021-11-29T21:36:19.000Z","updated_at":"2025-06-27T07:33:52.000Z","dependencies_parsed_at":"2025-01-06T11:22:43.483Z","dependency_job_id":"69319955-78fe-4ff4-a779-fd7fbea70061","html_url":"https://github.com/kas-cor/echomskpodcast_nodejs","commit_stats":null,"previous_names":["kas-cor/echomskpodcast_nodejs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kas-cor/echomskpodcast_nodejs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kas-cor%2Fechomskpodcast_nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kas-cor%2Fechomskpodcast_nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kas-cor%2Fechomskpodcast_nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kas-cor%2Fechomskpodcast_nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kas-cor","download_url":"https://codeload.github.com/kas-cor/echomskpodcast_nodejs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kas-cor%2Fechomskpodcast_nodejs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29351055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["node-js","sequelize-orm"],"created_at":"2026-02-12T00:36:43.490Z","updated_at":"2026-02-12T00:36:44.398Z","avatar_url":"https://github.com/kas-cor.png","language":"JavaScript","funding_links":["https://bit.ly/3uVaKEu"],"categories":[],"sub_categories":[],"readme":"# echomskpodcast\n\nСкрипт для автоматического получения аудио с YouTube каналов и публикации его в Telegram канал через бота.\n\n## Описание\n\n`echomskpodcast` - это Node.js скрипт, предназначенный для автоматизации процесса загрузки аудиоконтента с указанных YouTube каналов и его последующей публикации в Telegram канал. Идеально подходит для создания подкастов или аудио-архивов из YouTube-видео.\n\n## Возможности\n\n-   Автоматическая загрузка аудио с YouTube каналов.\n-   Публикация аудиофайлов в Telegram канал.\n-   Поддержка метаданных (название, исполнитель, обложка).\n-   Гибкая настройка через переменные окружения.\n-   Управление каналами через CLI-команды (добавление, удаление, список).\n-   Сброс статусов и ID видео для повторной обработки.\n\n## Установка\n\n1.  **Клонируйте репозиторий:**\n\n    ```bash\n    git clone https://github.com/kas-cor/echomskpodcast.git\n    cd echomskpodcast\n    ```\n\n2.  **Настройте переменные окружения:**\n\n    Создайте файл `.env` на основе `.env.sample` и заполните его:\n\n    ```bash\n    cp .env.sample .env\n    ```\n\n    Обязательно укажите `TELEGRAM_BOT_TOKEN` (токен вашего бота, добавленного в канал как администратор) и `TELEGRAM_CHANNEL` (имя вашего канала, начиная с `@`).\n\n3.  **Установите зависимости Node.js:**\n\n    ```bash\n    npm install\n    ```\n\n4.  **Установите/обновите `yt-dlp`:**\n\n    ```bash\n    wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux -O ./yt-dlp \u0026\u0026 chmod +x ./yt-dlp\n    ```\n\n5.  **(Опционально) Установка Token PO провайдера (для обхода ограничений YouTube):**\n\n    ```bash\n    docker compose up -d -f docker-compose-potoken.yml\n    ```\n\n6.  **(Опционально) Установка локального сервера Telegram Bot API:**\n\n    ```bash\n    docker compose up -d -f docker-compose-bot-api.yml\n    ```\n\n## Использование\n\nВсе основные операции выполняются через CLI-команды:\n\n-   **Вызов справки:**\n\n    ```bash\n    node main.js help\n    ```\n\n-   **Список каналов:**\n\n    ```bash\n    node main.js list\n    ```\n\n-   **Добавление канала:**\n\n    ```bash\n    node main.js add {channel_id}[|{channel_id}]\n    ```\n    Пример: `node main.js add UC-lHJZR3Gqxm24_Vd_D_EZw`\n\n-   **Удаление канала:**\n\n    ```bash\n    node main.js remove {id}\n    ```\n\n-   **Назначение тега каналу:**\n\n    ```bash\n    node main.js tag {id} {tagName}\n    ```\n\n-   **Сброс всех статусов (для повторной обработки всех каналов):**\n\n    ```bash\n    node main.js reset_all_states\n    ```\n\n-   **Сброс конкретного статуса канала:**\n\n    ```bash\n    node main.js reset_state {id}\n    ```\n\n-   **Сброс ID видео для канала (позволяет повторно загрузить уже обработанные видео):**\n\n    ```bash\n    node main.js reset_ids {id}\n    ```\n\n-   **Запуск скрипта (основной цикл обработки):**\n\n    ```bash\n    node main.js\n    ```\n    или с использованием npm скрипта:\n    ```bash\n    npm run start\n    ```\n\n## Запуск в Docker контейнере\n\nДля запуска всего приложения в Docker:\n\n```bash\ndocker-compose up -d -f docker-compose.yml\n```\n\nДля выполнения команд внутри запущенного Docker контейнера:\n\n```bash\ndocker-compose exec echomskpodcast \u003cкоманда\u003e\n```\n\nНапример (Список каналов):\n\n```bash\ndocker-compose exec echomskpodcast node main.js list\n```\n\n## Вклад\n\nПриветствуются любые вклады! Если у вас есть предложения по улучшению, отчеты об ошибках или вы хотите добавить новые функции, пожалуйста, создавайте [Issue](https://github.com/kas-cor/echomskpodcast/issues) или [Pull Request](https://github.com/kas-cor/echomskpodcast/pulls).\n\n## Лицензия\n\nЭтот проект распространяется под лицензией MIT. Подробности смотрите в файле `LICENSE` (если он есть) или в `package.json`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkas-cor%2Fechomskpodcast_nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkas-cor%2Fechomskpodcast_nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkas-cor%2Fechomskpodcast_nodejs/lists"}