О проекте
РЕКОМЕНДУЮ использовать другую версию проекта сохранения аудио из ютуб-видео py-savemp3youtube-cmdbot
py-savemp3youtube-bot - телеграмм бот получает ссылку на видео ютуба и возвращает звуковую дорожку видео.
-
получение ссылки на видео ютуба -> на выходе пользователю возвращается звуковая дорожка видео (файлы в формате mp3)
-
mp3 файл делятся на несколько каждый длительностью 60 минут
-
администратор бота только один пользователь
-
администратор может выполнять следующие действия: добавить пользователя по id, удалить пользователя из доступа к данному боту, информация о тех пользователях кто имеет доступ
-
каждый пользователь может удалить все mp3 файлы которые хранятся на сервере где работает бот
-
pip3 install python-dotenv pip3 install Telethon pip3 install requests
или просто выполняем
pip install -r requirements.txt
-
установить программы для работы
-
youtube-dl - кроссплатформенный свободный проект с открытым исходным кодом на Python - для работы с видео ютуба. Для ознакомления можно прочитать статью.
Для установки на убунту:
sudo -H pip3 install --upgrade youtube-dl
-
mp3splt - для разбивания аудофайлов различных форматов без декодинга.
Для установки на убунту:
apt install mp3splt
-
-
.env
TLG_APP_API_ID=123456 # APP API ID get from https://my.telegram.org TLG_APP_API_HASH=fdgdfgdgdfgdfgd # APP API HASH get from https://my.telegram.org TLG_APP_NAME=app # APP NAME get from https://my.telegram.org I_BOT_TOKEN=12345:fdgdfgdfgdfdfgdfg # TOKEN Bot drom BotFather TLG_ADMIN_ID_CLIENT=12568999 # id administarator bot TLG_PROXY_SERVER = server # адрес MTProxy Telegram TLG_PROXY_PORT = 555 # порт MTProxy Telegram TLG_PROXY_KEY=sf23231231 # secret key MTProxy Telegram
-
db_user_allow.txt - текстовый файл в котором указываются id пользователей которые имеют доступ к боту (за исключением администратора бота)
python start_bot_async.py
в папке /etc/systemd/system/ создадим файл start-youtube-audio.service
Содержимое файла:
[Unit]
Description=Youtube video to audio
After=network.target
[Service]
ExecStart=путь до скрипта запуска программы
[Install]
WantedBy=default.target
выполним команды
systemctl daemon-reload
systemctl enable start-youtube-audio.service
systemctl start start-youtube-audio.service
-
скопировать всю программу в папку на компьютере например в папку tlg-youtube2audio/app:
-
сохранить файл Dockerfile в папке tlg-youtube2audio:
ENV TZ=Europe/Moscow RUN apt-get update && apt-get install -y python3 && apt-get install -y python3-pip RUN DEBIAN_FRONTEND=noninteractive apt-get install -y youtube-dl && apt-get install -y mp3splt RUN pip3 install python-dotenv && pip3 install Telethon && pip3 install requests WORKDIR /home/app #VOLUME /home/app COPY app /home/app CMD ["python3", "start_bot_async.py"]
-
в папку tlg-youtube2audio/cfg файлы конфигурации проекта:
- .env
- db_user_allow.txt
-
Создание образа контейнера
docker build --tag=tlgyoutube2audio .
- Запуск docker контейнера (после завершения работы контейнера)
docker run -it --rm -v "/полный_путь_до_проекта/tlg-youtube2audio/cfg/.env:/home/app/.env" -v "/полный_путь_до_проекта/tlg-youtube2audio/cfg/d
b_user_allow.txt:/home/app/db_user_allow.txt" tlgyoutube2audio
youtube-dl --extract-audio --audio-format mp3 <video URL>
mp3splt -t 59.0 -d имя_папки_для_выходного_файла имя_входного_файла