Subida a Gitea

This commit is contained in:
luisgulo 2023-06-26 23:24:21 +02:00
commit 63f354035e
14 changed files with 448 additions and 0 deletions

2
.directory Normal file
View file

@ -0,0 +1,2 @@
[Desktop Entry]
Icon=./.icon.png

17
.gitignore vendored Normal file
View file

@ -0,0 +1,17 @@
#---- Gambas files to ignore (v5)
*.gambas
.lock
*~
core
core.*
vgcore
vgcore.*
.kdbg*
.*.prof
.lang/*.pot
.gambas/*
.settings
.startup
.list
.info
#----

28
.hidden/CHANGELOG Normal file
View file

@ -0,0 +1,28 @@
* Mon Jun 26 2023 Luis GuLo <luisgulo@gmail.com> 1.0.16
- Se usa yt-dlp como gestor de descarga. Se busca mejor video en formato mp4
* Sat Jan 07 2023 Luis GuLo <luisgulo@gmail.com> 1.0.11
- Incorpora tiempos de finalización de la descarga
* Fri Nov 12 2021 Luis GuLo <luisgulo@soloconlinux.org.es> 1.0.11
- Se busca la mejor opcion de descarga en velocidad
* Sun Oct 31 2021 Luis GuLo <luisgulo@soloconlinux.org.es> 1.0.10
- Se incluye area de estado, para ver tiempo restante de la descarga
* Thu Jul 02 2020 Luis GuLo <luisgulo@soloconlinux.org.es> 1.0.9
- Ajuste de animacion de progreso
* Sun Jan 05 2020 Luis GuLo <luisgulo@soloconlinux.org.es> 1.0.8
- Ajuste de tamaño. Textos y traduccion
* Sun Dec 29 2019 Luis GuLo <luisgulo@soloconlinux.org.es> 1.0.7
- Permite descargar unicamente el Audio de un vídeo.
- Allows you to download only music
* Sat Oct 26 2019 Luis GuLo <luisgulo@gmail.com> 1.0.6
- Ajuste de traduccion y boton descarga
* Thu Oct 24 2019 Luis GuLo <luisgulo@gmail.com> 1.0.3
- Lanzamiento inicial

BIN
.icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
.lang/en.mo Normal file

Binary file not shown.

95
.lang/en.po Normal file
View file

@ -0,0 +1,95 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: SoundClouding 3.12.2\n"
"PO-Revision-Date: 2020-01-05 13:51 UTC\n"
"Last-Translator: luisgulo <luisgulo@gmail.com>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: .project:1 FMain.form:15
msgid "SoundClouding"
msgstr "-"
#: .project:2
msgid "Descarga a tu biblioteca local audio y vídeo de internet para disfrutarlo desconectado.\nHerramienta gráfica para descarga de audio y vídeo con youtube-dl"
msgstr "Download audio and video to your local library to enjoy it offline.\nGraphic tool for downloading audio and video with youtube-dl"
#: FMain.class:30
msgid "URL no válida"
msgstr "Invalid URL"
#: FMain.class:31
msgid "Si tiene algún problema, pruebe a cortar y pegar la dirección"
msgstr "If you have any problems, try cutting and pasting the address"
#: FMain.class:31
msgid "Solo puede arrastrar y soltar una URL"
msgstr "You can only drag and drop a URL"
#: FMain.class:45
msgid "Chequeando URL y ficheros multimedia..."
msgstr "Checking URL and multimedia files..."
#: FMain.class:49
msgid "Error en URL"
msgstr "URL error"
#: FMain.class:50
msgid "La URL indicada no se puede procesar para extraer audio/vídeo"
msgstr "The indicated URL cannot be processed to extract audio / video"
#: FMain.class:53
msgid "Descargando multimedia (audio/vídeo)"
msgstr "Downloading multimedia (audio/video)"
#: FMain.class:67
msgid "Descarga finalizada"
msgstr "Download finished"
#: FMain.class:68
msgid "Se ha descargado el audio/vídeo en: "
msgstr "The audio / video has been downloaded at:"
#: FMain.class:73
msgid "Puede arrastrar y soltar una URL"
msgstr "You can drag and drop a URL"
#: FMain.class:86
msgid "Error youtube-dl"
msgstr "youtube-dl error"
#: FMain.class:87
msgid "* Debe instalarlo desde su gestor de paquetes"
msgstr "* You must install it from your package manager"
#: FMain.class:87
msgid "* También puede descargarlo desde: https://yt-dl.org/latest/youtube-dl "
msgstr "* You can also download it from: https://yt-dl.org/latest/youtube-dl"
#: FMain.class:87
msgid "No se ha localizado la herramienta externa youtube-dl"
msgstr "* You must install it from your package manager"
#: FMain.form:21
msgid "Arrastre aquí la URL de SoundCloud"
msgstr "Drag the SoundCloud URL here"
#: FMain.form:26
msgid "Arrastre la URL o corte y pegue en el recuadro de texto:"
msgstr "Drag the URL or cut and paste in the text box:"
#: FMain.form:32
msgid "Descargar Música"
msgstr "Download music"
#: FMain.form:33
msgid "Descargar"
msgstr "Download"
#: FMain.form:50
msgid "Extraer sólo la Música/Audio de la descarga"
msgstr "Download only Music/Audio"

BIN
.lang/es_ES.mo Normal file

Binary file not shown.

95
.lang/es_ES.po Normal file
View file

@ -0,0 +1,95 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: SoundClouding 3.12.2\n"
"PO-Revision-Date: 2020-01-05 13:50 UTC\n"
"Last-Translator: luisgulo <luisgulo@gmail.com>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: .project:1 FMain.form:15
msgid "SoundClouding"
msgstr "-"
#: .project:2
msgid "Descarga a tu biblioteca local audio y vídeo de internet para disfrutarlo desconectado.\nHerramienta gráfica para descarga de audio y vídeo con youtube-dl"
msgstr "Descarga a tu biblioteca local audio y vídeo de internet para disfrutarlo desconectado.\nHerramienta gráfica para descarga de audio y vídeo con youtube-dl"
#: FMain.class:30
msgid "URL no válida"
msgstr "URL no válida"
#: FMain.class:31
msgid "Si tiene algún problema, pruebe a cortar y pegar la dirección"
msgstr "Si tiene algún problema, pruebe a cortar y pegar la dirección"
#: FMain.class:31
msgid "Solo puede arrastrar y soltar una URL"
msgstr "Solo puede arrastrar y soltar una URL"
#: FMain.class:45
msgid "Chequeando URL y ficheros multimedia..."
msgstr "Chequeando URL y ficheros multimedia..."
#: FMain.class:49
msgid "Error en URL"
msgstr "Error en URL"
#: FMain.class:50
msgid "La URL indicada no se puede procesar para extraer audio/vídeo"
msgstr "La URL indicada no se puede procesar para extraer audio/vídeo"
#: FMain.class:53
msgid "Descargando multimedia (audio/vídeo)"
msgstr "Descargando multimedia (audio/vídeo)"
#: FMain.class:67
msgid "Descarga finalizada"
msgstr "Descarga finalizada"
#: FMain.class:68
msgid "Se ha descargado el audio/vídeo en: "
msgstr "Se ha descargado el audio/vídeo en:"
#: FMain.class:73
msgid "Puede arrastrar y soltar una URL"
msgstr "Puede arrastrar y soltar una URL"
#: FMain.class:86
msgid "Error youtube-dl"
msgstr "Error youtube-dl"
#: FMain.class:87
msgid "* Debe instalarlo desde su gestor de paquetes"
msgstr "* Debe instalarlo desde su gestor de paquetes"
#: FMain.class:87
msgid "* También puede descargarlo desde: https://yt-dl.org/latest/youtube-dl "
msgstr "* También puede descargarlo desde: https://yt-dl.org/latest/youtube-dl "
#: FMain.class:87
msgid "No se ha localizado la herramienta externa youtube-dl"
msgstr "No se ha localizado la herramienta externa youtube-dl"
#: FMain.form:21
msgid "Arrastre aquí la URL de SoundCloud"
msgstr "Arrastre aquí la URL de SoundCloud"
#: FMain.form:26
msgid "Arrastre la URL o corte y pegue en el recuadro de texto:"
msgstr "Arrastre la URL o corte y pegue en el recuadro de texto:"
#: FMain.form:32
msgid "Descargar Música"
msgstr "Descargar Música"
#: FMain.form:33
msgid "Descargar"
msgstr "Descargar"
#: FMain.form:50
msgid "Extraer sólo la Música/Audio de la descarga"
msgstr "Extraer sólo la Música/Audio de la descarga"

37
.project Normal file
View file

@ -0,0 +1,37 @@
# Gambas Project File 3.0
Title=SoundClouding
Startup=FMain
Icon=icono.png
Version=1.0.16
Component=gb.image
Component=gb.gui
Component=gb.form
Description="SoundClouding es una herramienta gráfica para descarga de audio y vídeo con yt-dlp. \nDescarga a tu biblioteca local vídeo o audio de internet para disfrutarlo desconectado."
Authors="LuisGuLo"
TabSize=2
Translate=1
Language=es_ES
SourcePath=/home/luisgulo/ProyectosGAMBAS/SOURCEs
Maintainer=Luis GuLo
Vendor=LuisGuLo
Address=luisgulo@gmail.com
Url=https://gitea.soloconlinux.org.es/GAMBAS/SoundClouding
License=General Public License
PackageName=soundclouding-1.0.16
PackageVersion=2
CreateEachDirectory=1
Packager=1
Systems=debian,fedora
SameDependencies=1
Menus=debian:"Applications/Sound"
Categories=debian:"AudioVideo"
Groups=debian:"sound"
ExtraDependencies=debian:"youtube-dl\t\t"
Menus=fedora:"Audio Video/Music"
Categories=fedora:"AudioVideo;Music"
Groups=fedora:"Applications/Multimedia"
ExtraDependencies=*:"yt-dlp\t\t"
Tags=Music,Utility
Dependencies=youtube-dl
GambasVersion=3.12
WebSite=httpss://repositorio.soloconlinux.org.es

124
.src/FMain.class Normal file
View file

@ -0,0 +1,124 @@
' Gambas class file
'' Instalar para todos los usuarios
' sudo apt-get -y install yt-dlp
'' Forma de uso (incluye imagen en audio)
' yt-dlp https://soundcloud.com/grupo/cancion --embed-thumbnail
Public hProceso As Process
Public Sub Form_Open()
Me.Title = "SoundClouding - 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
'Message.Info(("Recibido en pegado:" & Drag.Format))
If Drag.Format = "text/plain" Then
'Borramos caracteres NULL (\x00) del codigo UNICODE recibido
'cadenaDrag = Replace(Drag.Paste("text/unicode"), "\x00", "")
cadenaDrag = Replace(Drag.Paste("text/plain"), "\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 $(yt-dlp " & txtURL.Text & " --get-filename)" To NombreFichero
'Shell "echo -ne $(yt-dlp " & txtURL.Text & " -F 2>/dev/null|grep mp4|grep -v 'only'|tail -1|awk '{print $1})" To NombreFichero
Shell "echo -ne $(yt-dlp " & txtURL.Text & " -F 2>/dev/null|grep mp4|grep -v 'only'|tail -1|awk '{print $1}')" To NombreFichero
'Message.Info(("ID de video:" & NombreFichero))
If NombreFichero = ""
Message.Title = ("Error en URL")
Message.Error(("La URL indicada no se puede procesar para extraer audio/vídeo"))
txtURL.Text = ""
Else
Dim MejorFormato As String
'' Obtener el ID del mejor formato MP4
Shell "echo -ne $(yt-dlp -F " & txtURL.Text & " 2>/dev/null|grep mp4|grep -v 'only'|tail -1|awk '{print $1}' )" To MejorFormato
labelProcesando.Text = ("Descargando multimedia (audio/vídeo)")
'Giro.Visible = True
'Giro.Start
'Giro.Refresh
txtGira.Visible = True
Wait 0.1
' Descargamos musica/Video e incluimos la imagen de la caratula embebida
If chkMusica.Value Then
'Shell "cd " & User.Home & "/SoundClouding ; youtube-dl " & txtURL.Text & " --embed-thumbnail -x --audio-format mp3 " Wait
hProceso = Shell ("cd " & User.Home & "/SoundClouding ; yt-dlp " & txtURL.Text & " -x --audio-format mp3 ") For Read As "Proceso"
Else
'Shell "cd " & User.Home & "/SoundClouding ; youtube-dl " & txtURL.Text & " --embed-thumbnail" Wait ' Descargar por ID (-f)
hProceso = Shell ("cd " & User.Home & "/SoundClouding ; yt-dlp -f " & MejorFormato & " " & txtURL.Text) For Read As "Proceso"
Endif
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
'Giro.Stop
'Giro.Visible = False
txtGira.Visible = False
labelProcesando.Text = "Descarga finalizada en: " & User.Home & "/SoundClouding"
Message.Title = ("Descarga finalizada")
Message.Info(("Se ha descargado el audio/vídeo en: ") & User.Home & "/SoundClouding")
txtURL.Text = ""
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 --version 1>/dev/null 2>/dev/null; echo -n $?" To Resultado
If Resultado <> "0"
Message.Title = ("Error yt-dlp")
Message.Error(("No se ha localizado la herramienta externa yt-dlp") & gb.CrLf & ("* Debe instalarlo desde su gestor de paquetes") & gb.CrLf & ("* También puede descargarlo desde: https://yt-dl.org/latest/yt-dlp "))
Quit
Endif
End

50
.src/FMain.form Normal file
View file

@ -0,0 +1,50 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,77,29)
Mouse = Mouse.Pointing
Drop = True
Text = ("SoundClouding")
Icon = Picture["icono.png"]
Resizable = False
{ txtURL TextBox
MoveScaled(1,5,74,4)
ToolTip = ("Arrastre aquí la URL de SoundCloud")
}
{ LabelURL Label
MoveScaled(1,1,74,4)
Text = ("Arrastre la URL o corte y pegue en el recuadro de texto:")
}
{ botonDescargar ToolButton
MoveScaled(57,11,18,8)
Font = Font["Bold"]
ToolTip = ("Descargar Música")
Text = ("Descargar")
Picture = Picture["icono.png"]
Border = True
}
{ Giro Spinner
MoveScaled(48,11,8,8)
Visible = False
}
{ labelProcesando Label
MoveScaled(2,11,45,8)
Alignment = Align.TopLeft
}
{ chkMusica CheckBox
MoveScaled(2,16,45,4)
Text = ("Extraer sólo la Música/Audio de la descarga")
}
{ txtGira Label
MoveScaled(48,11,8,8)
Visible = False
Font = Font["Bold,+4"]
Foreground = Color.Red
Text = ("|")
Alignment = Align.Center
}
{ txtSalida Label
MoveScaled(1,22,74,6)
Border = Border.Plain
}
}

0
README.md Normal file
View file

BIN
icono.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
soundclouding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB