From 6c0d505217658c82a49e248cd4ea19ba6763e933 Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 22:47:25 -0300 Subject: [PATCH 1/7] Borrar archivo de Licencia --- LICENSE | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 LICENSE diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 9119f07..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 zereft01 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. From a8011cb6bc2e5b9b1496233c1a5bf71667e8c1da Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 22:52:58 -0300 Subject: [PATCH 2/7] =?UTF-8?q?feat(instalador):=20simplificar=20instalaci?= =?UTF-8?q?=C3=B3n=20solo=20para=20sistemas=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Se eliminó el soporte para Termux. - Ahora la instalación es únicamente para sistemas Linux con soporte a /usr/local/bin. - yt-dlp se descarga desde la última release oficial de GitHub usando curl. - Se mejoró la gestión de permisos y la verificación de ejecución con sudo/root. - Se limpiaron mensajes, colores y el flujo del script. - Se agregó confirmación antes de proceder con la instalación. --- Install.sh | 87 +++++++++++++++++++++++++----------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) diff --git a/Install.sh b/Install.sh index 288e6ea..6f2885e 100644 --- a/Install.sh +++ b/Install.sh @@ -1,55 +1,50 @@ -clear +#!/bin/bash + +# Verificar si es root o sudo +if [[ $EUID -ne 0 ]]; then + echo -e "\033[1;31mEste script debe ejecutarse como root o usando sudo.\033[0m" + exit 1 +fi + +# Colores lineas="===================================" -red='\033[1;31m' +red='\033[1;31m' green='\033[1;32m' -yellow='\033[1;33m' -blue='\033[1;34m' -magenta='\033[1;35m' cyan='\033[1;36m' +blue='\033[1;34m' reset='\033[0m' -printf $red -echo " +# Banner +clear +echo -e "${red} ╻┏┓╻┏━┓╺┳╸┏━┓╻ ╻ ┏━┓╻ ╻ ┃┃┗┫┗━┓ ┃ ┣━┫┃ ┃ ┗━┓┣━┫ ╹╹ ╹┗━┛ ╹ ╹ ╹┗━╸┗━╸╹┗━┛╹ ╹ +${reset}" + +# Confirmación +echo -e "${red}Estas por instalar las herramientas necesarias para usar YouDownload en Linux.${reset}" +read -p "¿Deseas continuar? (s/n): " confirm + +if [[ $confirm != [Ss] ]]; then + echo -e "${blue}Cancelando instalación...${reset}" + exit 0 +fi + +# Proceso de instalación +echo -e "${cyan}${lineas}" +echo "Actualizando repositorios..." +apt update -y && apt upgrade -y + +echo "Instalando dependencias: ffmpeg y curl..." +apt install -y ffmpeg curl + +echo "Descargando yt-dlp más reciente..." +curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp +chmod a+rx /usr/local/bin/yt-dlp + +chmod +x YouDownload -" -printf $reset -printf $red -echo "Estas por instalar las herramientas necesarias para usar YouDownload" -read -p "Selecciona tu sistema: -[1]Termux -[2]Ubuntu -[3]Salir " os -printf $reset - - -case $os in - [Tt]ermux|1) - printf $green - echo $lineas - pkg update -y - apt update -y - apt install ffmpeg - apt install python - pip install yt-dlp - chmod +x YouDownload - echo "Instalación finalizada. Para iniciar la herramienta ejecuta ./YouDownload" - printf $reset - ;; - [Uu]buntu|2) - printf $cyan - echo $lineas - sudo apt install ffmpeg - sudo apt install yt-dlp - chmod +x YouDownload - echo "Instalación finalizada. Para iniciar la herramienta ejecuta ./YouDownload" - printf $reset - ;; - [3]|*) - printf $blue - echo $lineas - echo " Bye" - echo $lineas -esac +echo -e "${green}✅ Instalación finalizada.${reset}" +echo -e "${green}Para iniciar la herramienta ejecuta: ./YouDownload${reset}" +echo -e "${cyan}${lineas}${reset}" From 255131f5f48b1135e1d2dba3c5d6991477414e52 Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 22:54:51 -0300 Subject: [PATCH 3/7] Cambiar de nombre el Programa a YouDownloadMusic --- Install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Install.sh b/Install.sh index 6f2885e..b4c026f 100644 --- a/Install.sh +++ b/Install.sh @@ -23,7 +23,7 @@ echo -e "${red} ${reset}" # Confirmación -echo -e "${red}Estas por instalar las herramientas necesarias para usar YouDownload en Linux.${reset}" +echo -e "${red}Estas por instalar las herramientas necesarias para usar YouDownloadMusic en Linux.${reset}" read -p "¿Deseas continuar? (s/n): " confirm if [[ $confirm != [Ss] ]]; then @@ -43,8 +43,8 @@ echo "Descargando yt-dlp más reciente..." curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp chmod a+rx /usr/local/bin/yt-dlp -chmod +x YouDownload +chmod +x YouDownloadMusic echo -e "${green}✅ Instalación finalizada.${reset}" -echo -e "${green}Para iniciar la herramienta ejecuta: ./YouDownload${reset}" +echo -e "${green}Para iniciar la herramienta ejecuta: ./YouDownloadMusic${reset}" echo -e "${cyan}${lineas}${reset}" From cdc845d3d916374bf611f5ac7297f2a72f567140 Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:00:00 -0300 Subject: [PATCH 4/7] =?UTF-8?q?feat(script):=20mejora=20de=20descarga=20de?= =?UTF-8?q?=20playlists=20y=20actualizaci=C3=B3n=20del=20t=C3=ADtulo=20ASC?= =?UTF-8?q?II?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Se eliminó la opción de descarga de videos, enfocando el script exclusivamente en descarga de música. - Ahora al descargar una playlist se crea automáticamente una carpeta con el nombre de la playlist y dentro se guardan las canciones. - Se actualizó el título del script con un nuevo arte en ASCII. - Se simplificó el menú para hacerlo más claro y directo. - Se mejoró el formato de nombres de archivos con miniaturas embebidas. - Se mantiene la mejor calidad de audio en formato mp3 (audio-quality 0). --- YouDownload | 128 -------------------------------------------- YouDownloadMusic.sh | 73 +++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 128 deletions(-) delete mode 100644 YouDownload create mode 100644 YouDownloadMusic.sh diff --git a/YouDownload b/YouDownload deleted file mode 100644 index e2b90d0..0000000 --- a/YouDownload +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/bash -clear -lineas="====================================" -red='\033[1;31m' -green='\033[1;32m' -yellow='\033[1;33m' -blue='\033[1;34m' -magenta='\033[1;35m' -cyan='\033[1;36m' -reset='\033[0m' -printf $red -v=3.0 -echo $lineas - -echo "╻ ╻┏━┓╻ ╻╺┳┓┏━┓╻ ╻┏┓╻╻ ┏━┓┏━┓╺┳┓ -┗┳┛┃ ┃┃ ┃ ┃┃┃ ┃┃╻┃┃┗┫┃ ┃ ┃┣━┫ ┃┃ - ╹ ┗━┛┗━┛╺┻┛┗━┛┗┻┛╹ ╹┗━╸┗━┛╹ ╹╺┻┛ -" -echo $v -echo $lineas - -printf $green -read -p "Que descargaras : - [1] Música - [2] Video - [3] Salir " arch -printf $reset - -case $arch in - [Cc]ancion|Canción|canción|1) - -printf $red -read -p "Que quieres descargar: - [1] Canción - [2] Playlist - [3] Salir " arch -case $arch in - [Cc]ancion|Canción|canción|1) - echo $lineas - read -p "Pega la URL de la canción _>" Ind - if [ -z $Ind ];then - echo $lineas - echo "No ingresante una url _>" - exit - fi - - sleep 0.5 - echo "Iniciando descarga _>" - yt-dlp -f bestaudio --embed-thumbnail --extract-audio --audio-format mp3 --audio-quality 0 $Ind - sleep 0.5 - echo $lineas - echo "Descarga finalizada, el archivo se encuentra en: _>" - pwd - ;; - [Pp]laylist|2) - read -p "Pega la URL de la playlist _>" Play - if [ -z $Play ];then - echo "No ingresante una url _>" - exit - fi - echo $lineas - sleep 0.5 - echo "Preparando descarga _>" - yt-dlp --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 160K --output "%(title)s.%(ext)s" --yes-playlist $Play - echo $lineas - ;; - [3]|*) - echo $lineas - echo "<_Adiós_>" - echo $lineas -esac - - printf $reset - - - ;; - Vv]ideo|2) -printf $cyan -read -p "Que quieres descargar: - [1] Vídeo - [2] Playlist - [3] Salir " pregunta - -case $pregunta in - [Vv]ideo|1) - echo $lineas - - read -p "Pega la URL del vídeo _> " vi - if [ -z $vi ];then - echo $lineas - echo "No ingresaste una url valida _>" - exit - fi - - sleep 0.5 - echo "Iniciando descarga _> " - yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 $vi - sleep 0.5 - echo $lineas - echo "Descarga finalizada, el archivo se encuentra en: _>" - pwd - ;; - [Pp]laylist|2) - read -p "Pega la URL de la playlist " Play - if [ -z $Play ];then - echo "No ingresante una url valida _>" - exit - fi - echo $lineas - sleep 0.5 - echo "Preparando descarga _>" - yt-dlp -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' $Play - echo $lineas - ;; - [3]|*) - echo $lineas - echo "<_Adiós_>" - echo $lineas -esac - - ;; - [3]|*) - echo $lineas - echo "<_Adiós_>" - echo $lineas -esac - - diff --git a/YouDownloadMusic.sh b/YouDownloadMusic.sh new file mode 100644 index 0000000..77d587b --- /dev/null +++ b/YouDownloadMusic.sh @@ -0,0 +1,73 @@ +#!/bin/bash +clear + +# Colores +red='\033[1;31m' +green='\033[1;32m' +cyan='\033[1;36m' +reset='\033[0m' + +lineas="==================================================================" +version="3.2" + +# Título +printf "$red" +echo "$lineas" +echo " + __ __ ____ _ _ _____ _ +| | |___ _ _| \ ___ _ _ _ ___| |___ ___ _| | |_ _ ___|_|___ +|_ _| . | | | | | . | | | | | | . | .'| . | | | | | |_ -| | _| + |_| |___|___|____/|___|_____|_|_|_|___|__,|___|_|_|_|___|___|_|___| + +" +echo "Version $version" +echo "$lineas" +printf "$reset" + +# Menú +printf "$cyan" +echo "[1] Descargar Canción" +echo "[2] Descargar Playlist" +echo "[3] Salir" +printf "$reset" +read -p "Elige una opción: " opcion + +case $opcion in +1) + read -p "Pega la URL de la canción: " url + if [ -z "$url" ]; then + echo "❌ No ingresaste una URL." + exit 1 + fi + echo "🎧 Descargando canción..." + yt-dlp -f bestaudio \ + --embed-thumbnail \ + --extract-audio --audio-format mp3 \ + --audio-quality 0 \ + --output "%(title)s.%(ext)s" "$url" + echo "✅ Descarga finalizada en: $(pwd)" + ;; + +2) + read -p "Pega la URL de la playlist: " url + if [ -z "$url" ]; then + echo "❌ No ingresaste una URL." + exit 1 + fi + echo "🎶 Descargando playlist..." + yt-dlp --ignore-errors -f bestaudio \ + --embed-thumbnail \ + --extract-audio --audio-format mp3 \ + --audio-quality 0 \ + --yes-playlist \ + --output "%(playlist_title)s/%(title)s.%(ext)s" "$url" + echo "✅ Playlist descargada en: $(pwd)/$(yt-dlp --get-filename -o '%(playlist_title)s' "$url")" + ;; + +3 | *) + echo "$lineas" + echo "👋 Adiós." + echo "$lineas" + exit 0 + ;; +esac From fbc31b4385a44ab1419f1ca99563fa87da3db5d2 Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:04:50 -0300 Subject: [PATCH 5/7] Arreglar Readme --- README.md | 122 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 92 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 3a4c375..dc499c9 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,102 @@ -# YouDownload - Descargar Música y Videos de Youtube y facebook (Ver lista de web disponibles ejecuta yt-dlp --list-extractors. Debes probar en las demas web)desde la terminal linux y android (termux). - #Autor: zereft01 - #Fecha: 15/03/21 - #Descripción: Herramienta para descargar música y videos individuales o Playlist de youtube desde la terminal linux y termux. - #Archivos: YouDownload, Install.sh. - #Contacto: - -Correo: kullia.kg55@gmail.com - -Telegram: https://t.me/zereft +# 🎧 YouDownloadMusic +Descarga música de YouTube en formato MP3, con carátulas y en la mejor calidad, directamente desde la terminal de Linux o Android (Termux). -Instalación: +--- - Clonar repositorio: - git clone https://github.com/zereft01/YouDownload - Abrir carpeta: - cd YouDownload - Instalar dependencias (Seguir instrucciones del script): - bash Install.sh - Ejecutar: - ./YouDownload +## 🚀 Características +* ✅ Descarga canciones o playlists completas de YouTube. +* ✅ Guarda los archivos en formato MP3 con miniatura como portada. +* ✅ Crea automáticamente carpetas con el nombre de la playlist. +* ✅ Interfaz simple desde terminal. +* ✅ Ligero, sin dependencias gráficas. +* ✅ Basado en [`yt-dlp`](https://github.com/yt-dlp/yt-dlp) (fork mejorado de youtube-dl). +--- +## 📦 Requisitos -Seguir instrucciones del script para descargar música o videos. -Si quieres ejecutarlo desde cualquier lugar sin estar dentro de la carpeta debes mover el script a donde estan los binarios: +* **yt-dlp** +* **ffmpeg** (para la conversión a MP3 y carátula) - En termux es: /data/data/com.termux/files/usr/bin - A demas dar permisos de ejeucion asi: chmod +x YouDownload - Con esto solo deberas escribir el nombre (YouDownload) y se ejecutara la herramienta +--- -Dudas, sugerencias, comentarios, etc al correo o telegram -#ACTUALIZACIONES: +## 🛠️ Instalación - Música: descarga portadas (las caratula que tiene cada video). - Video: descargas en maxima calidad. - Se creo script para instalar las dependencias automaticamente (Install.sh). - Cambio de dependecia (youtube-dl) por un fork del mismo (yt-dlp). - Tambien descarga videos de facebook. +1. Clonar el repositorio: + +```bash +git clone https://github.com/Bernard2806/YouDownloadMusic.git +cd YouDownloadMusic +``` + +2. Dar permisos de ejecución: + +```bash +sudo chmod +x YouDownloadMusic.sh +``` + +3. Ejecutar el script: + +```bash +sudo ./YouDownloadMusic.sh +``` + +--- + +## 📂 Estructura de descarga + +* Si descargas una **canción individual**, se guarda en la carpeta actual: + +``` +./NombreCancion.mp3 +``` + +* Si descargas una **playlist**, se crea una carpeta con su nombre y dentro se guardan las canciones: + +``` +./NombrePlaylist/ +├── Cancion1.mp3 +├── Cancion2.mp3 +└── ... +``` + +--- + +## 🔥 Uso + +Simplemente ejecuta el script y seguí las instrucciones del menú: + +``` +[1] Descargar Canción +[2] Descargar Playlist +[3] Salir +``` + +--- + +## 🧠 Nota + +Este script está pensado exclusivamente para descarga de **música** desde YouTube. No soporta descarga de videos. + +--- + +## 💻 Compatible con + +* Linux (Debian, Ubuntu, Arch, Fedora, etc.) + +--- + +## 📜 Licencia + +Este proyecto es de código abierto bajo la licencia [MIT](LICENSE). + +--- + +## 🙌 Créditos + +* Script original de [zereft01](https://github.com/zereft01/YouDownload). +* Adaptado, simplificado y mejorado por Bernard2806. + +--- From 55d2d255c1461bb1d8fb425295024859db05d9ef Mon Sep 17 00:00:00 2001 From: Bernardo <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:05:18 -0300 Subject: [PATCH 6/7] Correguir README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc499c9..15ff4e8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 🎧 YouDownloadMusic -Descarga música de YouTube en formato MP3, con carátulas y en la mejor calidad, directamente desde la terminal de Linux o Android (Termux). +Descarga música de YouTube en formato MP3, con carátulas y en la mejor calidad, directamente desde la terminal de Linux. --- From 1685f1c5fd94808beb677a7d019be5c41af14993 Mon Sep 17 00:00:00 2001 From: Bernard2806 <107374580+Bernard2806@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:23:12 -0300 Subject: [PATCH 7/7] =?UTF-8?q?A=C3=B1adir=20opcion=20de=20top=2010=20canc?= =?UTF-8?q?iones=20:D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YouDownloadMusic.sh | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/YouDownloadMusic.sh b/YouDownloadMusic.sh index 77d587b..f376198 100644 --- a/YouDownloadMusic.sh +++ b/YouDownloadMusic.sh @@ -28,7 +28,8 @@ printf "$reset" printf "$cyan" echo "[1] Descargar Canción" echo "[2] Descargar Playlist" -echo "[3] Salir" +echo "[3] Descargar Top 10 canciones de un canal/artista (YouTube Music)" +echo "[4] Salir" printf "$reset" read -p "Elige una opción: " opcion @@ -64,7 +65,35 @@ case $opcion in echo "✅ Playlist descargada en: $(pwd)/$(yt-dlp --get-filename -o '%(playlist_title)s' "$url")" ;; -3 | *) +3) + read -p "Pega la URL del canal de YouTube Music: " canal_url + if [ -z "$canal_url" ]; then + echo "❌ No ingresaste una URL." + exit 1 + fi + + # Obtener el nombre del canal para usar como carpeta + nombre_canal=$(yt-dlp --get-filename -o '%(uploader)s' "$canal_url" | head -n1 | sed 's/ /_/g') + if [ -z "$nombre_canal" ]; then + nombre_canal="artista" + fi + + mkdir -p "$nombre_canal" + + echo "🎶 Descargando las 10 canciones más escuchadas del canal $nombre_canal..." + yt-dlp -f bestaudio \ + --embed-thumbnail \ + --extract-audio --audio-format mp3 \ + --audio-quality 0 \ + --yes-playlist \ + --playlist-end 10 \ + --output "$nombre_canal/Top_10_%(title)s.%(ext)s" \ + "$canal_url" + + echo "✅ Descarga finalizada en la carpeta: $nombre_canal" + ;; + +4 | *) echo "$lineas" echo "👋 Adiós." echo "$lineas"