From ab835c8667a624746c2c5ea207ca097f9b7303ff Mon Sep 17 00:00:00 2001 From: luisgulo Date: Fri, 2 Jun 2023 17:07:42 +0200 Subject: [PATCH] Subida a Gitea --- .directory | 2 + .gitignore | 17 +++ .hidden/CHANGELOG | 3 + .icon.png | Bin 0 -> 25037 bytes .project | 25 ++++ .src/FMain.class | 116 ++++++++++++++++++ .src/FMain.form | 44 +++++++ README.md | 0 ...me-application-vnd.rn-realmedia-secure.png | Bin 0 -> 4665 bytes 9 files changed, 207 insertions(+) create mode 100644 .directory create mode 100644 .gitignore create mode 100644 .hidden/CHANGELOG create mode 100644 .icon.png create mode 100644 .project create mode 100644 .src/FMain.class create mode 100644 .src/FMain.form create mode 100644 README.md create mode 100644 gnome-mime-application-vnd.rn-realmedia-secure.png diff --git a/.directory b/.directory new file mode 100644 index 0000000..06dab1c --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=./.icon.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..06e26c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +#---- Gambas files to ignore (v5) +*.gambas +.lock +*~ +core +core.* +vgcore +vgcore.* +.kdbg* +.*.prof +.lang/*.pot +.gambas/* +.settings +.startup +.list +.info +#---- diff --git a/.hidden/CHANGELOG b/.hidden/CHANGELOG new file mode 100644 index 0000000..f74659b --- /dev/null +++ b/.hidden/CHANGELOG @@ -0,0 +1,3 @@ +* Tue Jan 31 2023 luisgulo 1.0.0 +- Version Inicial + diff --git a/.icon.png b/.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2f8b58c613748873068dc8748b2b897f589cf614 GIT binary patch literal 25037 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 Lkgt=q{QQ3as6^Rb literal 0 HcmV?d00001 diff --git a/.project b/.project new file mode 100644 index 0000000..7d6e337 --- /dev/null +++ b/.project @@ -0,0 +1,25 @@ +# Gambas Project File 3.0 +Title=Download Video +Startup=FMain +Icon=gnome-mime-application-vnd.rn-realmedia-secure.png +Version=1.0.0 +Component=gb.image +Component=gb.gui +Component=gb.form +Description="Aplicacion para extraer VIDEOS de una URL.\nHace uso de yt-dlp_linux" +Authors="LuisGuLo" +TabSize=2 +Translate=1 +Language=es_ES +Maintainer=luisgulo +Vendor=SoloConLinux +Address=luisgulo@gmail.com +Url=https://repositorio.soloconlinux.org.es +License=General Public License +PackageName=downvideo-1.0.0 +Packager=1 +Systems=debian +Menus=debian:"Applications/Video" +Categories=debian:"Video" +Groups=debian:"video" +ExtraDependencies=debian:"ytdlplinux\t\t" diff --git a/.src/FMain.class b/.src/FMain.class new file mode 100644 index 0000000..cff7ac6 --- /dev/null +++ b/.src/FMain.class @@ -0,0 +1,116 @@ +' Gambas class file + +' Gambas class file + +'' Instalar para todos los usuarios +' sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl +' sudo chmod 755 /usr/local/bin/youtube-dl +'' Tambien se puede usar solo para usuario local (en ruta privada) +'' Para actualizarlo: youtube-dl --update + +'' Forma de uso (incluye imagen en audio) +' youtube-dl https://soundcloud.com/grupo/cancion --embed-thumbnail + +Public hProceso As Process + +Public Sub Form_Open() + Me.Title = "DownVideo - version " & Application.Version + Giro.Visible = False + Giro.Stop + ' Definimos la shell para llamadas... + System.Shell = "/bin/bash" + CompruebaDL() + labelProcesando.Text = "" +End + + +Public Sub Form_Drop() + Dim cadenaDrag As String + If Drag.Format = "text/unicode" Then + 'Borramos caracteres NULL (\x00) del codigo UNICODE recibido + cadenaDrag = Replace(Drag.Paste("text/unicode"), "\x00", "") + txtURL.Text = cadenaDrag + Else + Message.Title = ("URL no válida") + Message.Warning(("Solo puede arrastrar y soltar una URL") & gb.CrLf & ("Si tiene algún problema, pruebe a cortar y pegar la dirección")) + Endif +End + +Public Sub botonDescargar_Click() + Dim NombreFichero As String + 'Crear la carpeta SoundClouding + Shell "mkdir -p " & User.Home & "/SoundClouding" Wait + + ' Desactivamos para evitar pulsar más de una vez a los nerviosos + botonDescargar.Enabled = False + + If txtURL.Text <> "" + ' Mostramos que estamos haciendo algo... + labelProcesando.Text = ("Chequeando URL y ficheros multimedia...") + ' Obtener el nombre de fichero + Shell "echo -ne $(youtube-dl " & txtURL.Text & " --get-filename)" To NombreFichero + If NombreFichero = "" + Message.Title = ("Error en URL") + Message.Error(("La URL indicada no se puede procesar para extraer vídeo")) + txtURL.Text = "" + Else + Dim MejorFormato As String + ' Shell "echo -ne $(youtube-dl -F " & txtURL.Text & " | grep best |awk '{print $1}')" To MejorFormato + labelProcesando.Text = ("Descargando Vídeo") + txtGira.Visible = True + Wait 0.1 + ' Descargamos MUSICA e incluimos la imagen de la caratula embebida + hProceso = Shell ("cd " & User.Home & "/SoundClouding ; yt-dlp_linux -f mp4/bestvideo --embed-thumbnail " & txtURL.Text) For Read As "Proceso" + Do While hProceso.State = Process.Running + Select Case txtGira.Text + Case "|" + txtGira.Text = "/" + Case "/" + txtGira.Text = "-" + Case "-" + txtGira.Text = "\\" + Case "\\" + txtGira.Text = "|" + Case Else + txtGira.Text = "|" + End Select + Wait 0.1 + Loop + txtGira.Visible = False + labelProcesando.Text = "Descarga finalizada en: " & User.Home & "/SoundClouding" & gb.CrLf & NombreFichero + 'Message.Title = ("Descarga finalizada") + 'Message.Info(("Se ha descargado el audio/música en: ") & User.Home & "/SoundClouding" & gb.CrLf & " → " & NombreFichero) + txtURL.Text = "" + txtSalida.Text = "" + Shell "notify-send -t 3000 '" & "DownMusic:\n\nVídeo descargado correctamente'" Wait + Endif + Else + Message.Title = ("URL no válida") + Message.Warning(("Puede arrastrar y soltar una URL") & gb.CrLf & ("Si tiene algún problema, pruebe a cortar y pegar la dirección")) + Endif + ' Reactivamos el boton + botonDescargar.Enabled = True + labelProcesando.Text = "" +End + +Public Sub Proceso_Read() + Dim sline As String + sline = Read #Last, Lof(Last) + txtSalida.Text = sline +End + + +Public Function CompruebaDL() + ' Comprobamos si existe youtube-dl (VERSION ) + Dim Resultado As String + Shell "yt-dlp_linux --version 1>/dev/null 2>/dev/null; echo -n $?" To Resultado + If Resultado <> "0" + Message.Title = ("Error yt-dlp_linux") + Message.Error(("No se ha localizado la herramienta externa yt-dlp_linux") & gb.CrLf & ("* Debe instalarlo desde su gestor de paquetes")) + Quit + Endif +End + + + + diff --git a/.src/FMain.form b/.src/FMain.form new file mode 100644 index 0000000..2fa5f94 --- /dev/null +++ b/.src/FMain.form @@ -0,0 +1,44 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,76,25) + Drop = True + Icon = Picture["gnome-mime-application-vnd.rn-realmedia-secure.png"] + Resizable = False + { Giro Spinner + MoveScaled(48,9,8,8) + Visible = False + } + { LabelURL Label + MoveScaled(1,0,74,4) + Text = ("Arrastre la URL del Audio/Música, o Cortar y Pegar en el recuadro de texto:") + } + { txtURL TextBox + MoveScaled(1,4,74,4) + ToolTip = ("Arrastre aquí la URL de SoundCloud") + } + { labelProcesando Label + MoveScaled(2,10,45,8) + Alignment = Align.TopLeft + } + { txtSalida Label + MoveScaled(1,18,74,6) + Border = Border.Plain + } + { botonDescargar ToolButton + MoveScaled(57,9,18,8) + Font = Font["Bold"] + ToolTip = ("Descargar Música") + Text = ("Descargar") + Picture = Picture["gnome-mime-application-vnd.rn-realmedia-secure.png"] + Border = True + } + { txtGira Label + MoveScaled(48,9,8,8) + Visible = False + Font = Font["Bold,+4"] + Foreground = Color.Red + Text = ("|") + Alignment = Align.Center + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/gnome-mime-application-vnd.rn-realmedia-secure.png b/gnome-mime-application-vnd.rn-realmedia-secure.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a87b5bde679512114a1a83e8528757b87e201a GIT binary patch literal 4665 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 literal 0 HcmV?d00001