Giter VIP home page Giter VIP logo

ytmp3's Introduction

ytmp3

Telegram bot to download mp3 from youtube using yt-dlp

Per aprendre coses he fet servir chatGPT per fer-me un bot que em faci coses.

Característiques

  • Utilitza Docker, per configurar un entorn amb python3
  • Funciona en Raspberry Pi
  • Imatge base Docker: python:3-alpine

Llibreries

  • Telegram bot: python-telegram-bot [pip]
  • Youtube: yt-dlp [pip]
  • Conversió mp3: ffmpeg [apk]
  • ID3 extract info: mutagen [pip]

Configuració

Crear bot telegram

  • Crea't un bot des de @botfather i aconsegueix un token
  • Edita el fitxer docker-compose.yaml per editar les variables d'entorn
    • TELEGRAM_TOKEN: El token obtingut
    • PODCAST_URL: la ip o hostname des d'on estàs executant la imatge. Serveix per generar el RSS amb el path correcte

Execució Docker

Build

docker compose build

Execution

docker compose up -d

Telegram

Si al xat de telegram amb el bot hi incrustem una url de Youtube, aquest ens mostrarà uns botons per preguntar què hem de fer: En tots els casos

  • Descarrega les cançons
  • Les converteix a MP3
  • Omple el ID3 tag
  • Afegeix el thumbnail, en fa crop perque sigui quadrat i l'afegeix al mp3 [no m'està funcionant sempre]
  • la comanda /rss permet regenerar el rss en cas que hi hagi hagut algun problema

Single

  • Guarda a la carpeta /music/single amb l'estructura music/single/%(title)s.%(ext)s

Playlist

  • Guarda a la carpeta /music amb l'estructura <artist>/<album/<pista> - <Trackname>.mp3

Podcast

  • Guarda a la carpeta /music/podcast podcast/%(title)s.%(ext)s
  • Afegeix aquest fitxer a un rss.xml exposat via nginx per tenir un podcast amb els vídeos que vulguem

ToDo

  • Els thumbnails estan incrustats al mp3. Per la música va bé, però per a generar el RSS de podcasts no. Buscar alternativa
  • Opció per esborrar fitxers. Mirar de fer una app interna al bot en html
  • Crear un fitxer .env per a les variables d'entorn

ytmp3's People

Contributors

parufito avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.