VManager es una aplicación open-source multiplataforma para recortar, comprimir, convertir y descargar videos o audios de forma rápida y eficiente. Desarrollado en C# con Avalonia UI. Disponible para Windows, Linux y macOS, sin dependencias externas.
Puedes instalar VManager haciendo click en la insignia correspondiente a tu sistema operativo o desde Releases.
- Extrae el contenido
- Ejecuta
VManager.exe - ¡Listo para usar!
Nota: Si te falta .NET Framework, descarga la versión "self-contained".
-
Extrae el contenido:
tar -xzf VManager-linux-x64.tar.gz
-
Ejecuta la aplicación:
./VManager
-
¡Listo para usar!
- Extrae el contenido
- Ejecuta la aplicación
Nota: Todavía no ha sido testeado en esta plataforma.
VManager tiene implementado un sistema de actualizaciones automáticas cada vez que abres la aplicación, por lo que no deberías preocuparte.
Si lo deseas, podes actualizar VManager manualmente ejecutando Updater.
Al ejecutar VManager cada binario embebido se extrae en la carpeta temporal en caso de no disponerlo (se utiliza el binario del sistema cuando sea posible), verifica que no esté corrupto e intenta actualizarlo (excepto ffmpeg y ffprobe) automáticamente. Esto se hace para evitar incompatibilidades de librerías dinámicas en Linux, aunque es irrelevante para Windows o Mac.
No se necesita descargar nada de antemano, pero es recomendable tener la última versión actualizada de FFmpeg en Windows/Mac. En el caso de Linux, FFmpeg ya viene preinstalado y se actualiza automáticamente cuando actualizas el sistema.
-
Abre
Powershell. -
Escribe el comando:
winget install "FFmpeg (Essentials Build)" -
¡Todo listo!
Nota: Para mantenerlo actualizado, ejecuta periódicamente
winget upgrade --all.
- Descarga y descomprime ffmpeg-release-essentials.7z
- Copia
ffmpeg.exeyffprobe.exeque están dentro de la carpetabin, esos binarios debes pegarlos en cualquier ruta del PATH en Windows, ya que VManager intentará encontrarlos allí. Elige únicamente una sola ruta. - ¡Todo listo!
Nota: Para mantenerlo actualizado tendrás que repetir todos los pasos nuevamente, de manera periódica.
La lista de ubicaciones por defecto que están en PATH son:
C:\Windows\System32\
C:\Windows\
Recomendación: Agregar una nueva entrada al PATH, como
C:\Program Files\ffmpeg\bin.
-
Ejecutar el siguiente comando para descargar
homebrewsi no lo tienes instalado./bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Instala FFmpeg:
brew install ffmpeg
-
¡Todo listo!
Nota: Para mantenerlo actualizado, ejecuta periódicamente
brew upgrade ffmpeg.
Descargalo desde https://dotnet.microsoft.com/download/dotnet/9.0
Verificá la instalación con: dotnet --version Debe mostrar 9.x.x.
Descargalo desde https://git-scm.com/downloads
Verificá con: git --version
El repositorio contiene binarios pesados embebidos (FFmpeg, yt-dlp, Deno) que se almacenan con Git LFS. Sin esto, los binarios se clonarán como punteros vacíos y la app no funcionará.
Windows: winget install GitHub.GitLFS O descargalo desde https://git-lfs.com
Linux (Debian/Ubuntu/Arch): sudo [apt install/pacman -S] git-lfs
macOS: brew install git-lfs
Luego ejecutá: git lfs install
git clone https://github.com/balta-dev/VManager.git
cd VManagerSi ya lo habías clonado antes de tener Git LFS instalado, ejecutá
git lfs pulldentro del repositorio para descargar los binarios faltantes.
dotnet publish VManager/VManager.csproj -c Release -r win-x64 --no-self-contained -o ./publish/windotnet publish VManager/VManager.csproj -c Release -r linux-x64 --no-self-contained -o ./publish/linuxdotnet publish VManager/VManager.csproj -c Release -r osx-x64 --no-self-contained -o ./publish/macEl ejecutable queda en la carpeta
publish/<plataforma>/. En Linux/macOS puede que necesites dar permisos:chmod +x ./publish/linux/VManager
Esta modalidad genera un ejecutable que no requiere que el usuario tenga .NET 9 en su sistema. El binario es más grande pero portátil.
dotnet publish VManager/VManager.csproj -c Release -r win-x64 --self-contained -o ./publish/win-scdotnet publish VManager/VManager.csproj -c Release -r linux-x64 --self-contained -o ./publish/linux-scdotnet publish VManager/VManager.csproj -c Release -r osx-x64 --self-contained -o ./publish/mac-sc-
macOS: El proyecto todavía no fue testeado oficialmente en esa plataforma.
-
RID (Runtime Identifier): Si tu máquina es ARM (como un Apple Silicon o Raspberry Pi), reemplazá
x64porarm64en los comandos. -
Restaurar paquetes: Si la compilación falla buscando paquetes NuGet, ejecutá primero
dotnet restoreen la raíz del repositorio. -
Los binarios embebidos (FFmpeg, yt-dlp, Deno) se incluyen automáticamente en la publicación gracias a Git LFS... no hace falta instalarlos por separado.
Vea CONTRIBUTING.md para conocer instrucciones para abrir un issue y contribuir código al proyecto.
Esta sección está enfocada en brindar información adicional sobre el proyecto.
Cuando uno revisa alternativas open-source y encuentra proyectos interesantes (o incluso la solución a un problema), uno no puede evitar preguntarse muchas veces qué fue lo que llevó a aquella persona a comenzar todo.
Utilizo OBS-Studio para grabar la pantalla, y uno de mis hobbies es jugar Ultrakill (específicamente, speedrunning). Utilizo Linux como mi daily driver, y como me molesta tener que abrir una aplicación de edición de videos únicamente para recortar clips decidí crear una herramienta que me solucione mi problema: vcut. Es básica, escrita en Pascal en un rato, pero cumplía mis necesidades. Pronto me encontraría en la necesidad de compartir mis clips por Discord, pero frente a limitaciones de peso nació vcompr también escrita en Pascal para comprimir vídeos.
Esto me sirvía mucho en su momento, y no veía necesidad de complejizarlo. También me gustaba la idea de compartir algo simple que pudiera servirle a alguien que de casualidad se lo topara navegando en GitHub.
Pronto un amigo mío se interesaría, pero tuvo dificultades en entender el funcionamiento; no era lo suficientemente intuitivo. Me dio la idea de desarrollar una aplicación de escritorio que tuviera interfaz gráfica y sea fácil de entender a simple vista. Con eso, se me prendió la lamparita.
La historia nunca puede ser de color de rosa, había un problema que tenía que solucionar primero: "¿Cómo hago eso? No tengo experiencia en interfaces gráficas". La verdad que estaba muy cómodo en escribir código interesante pero en la terminal, nunca había escrito una sola línea de C#.
Investigué un poco, me encontré con el IDE Rider y ahí fue cuando descubrí Avalonia. Fue entonces cuando decidí lanzarme de lleno a mi primer framework, en un lenguaje que no conocía, y un tipo de desarrollo al que nunca estuve expuesto. Leí mucha documentación, decidí seguir el patrón de arquitectura MVVM, y así fue como le di a "Crear proyecto".
Tuve muchas dudas, problemas de los que la Inteligencia Artificial no fue capaz de ayudar. Nuevas releases con funcionalidades rotas que antes funcionaban bien por haber cambiado código que a primera vista no parecía tener que ver. Comencé de a poco, una interfaz sencilla que te dejaba buscar el video, un campo para digitar "Porcentaje de Calidad" que en realidad no hacía nada, le dabas a "Comprimir" y ya está.
Es importante mencionar que estaba muy contento en ese momento con tener algo que mínimamente haga lo que necesitaba, pero sabía que estaba muy por debajo todavía de lo que pude fácilmente desarrollar previamente en la terminal.
Antes inclusive de desarrollar la herramienta para recortar clips, ya estaba experimentando como "Modo Oscuro" y "Modo Claro", con sonidos, y un poco con el apartado estético del programa. Un par de días después de comenzar, ya tenía un "VCut" funcional con análisis de hardware. El progreso inicial que estaba haciendo era tan grande que sentía que podía llevarme el mundo conmigo y en menos de 1 semana ya tenía una base importante, 3 herramientas funcionales responsive, experimentando funcionalidades custom de drag and drop para Linux (no está actualmente soportado nativo por Avalonia).
Teniendo ya prácticamente "todo terminado", siempre encontraba una excusa para cambiar un botón, agregar una pantalla de bienvenida más linda, movimientos de controles más suaves, cambiar cosas de lugar. Fue ahí cuando empecé a enfocarme en QoL para el usuario final:
- ¿Y si el usuario quiere operar con múltiples videos al mismo tiempo?
- Si el usuario cierra la app ahora mientras un proceso está de fondo, no lo cancela.
- Como usa colores de acento, puede pasar que tenga colores de acento (OS) que no se vean bien con el modo claro o el modo oscuro.
- Podría agregar hotkeys así el usuario no tiene que buscar manualmente la herramienta que necesita.
- Cuando tengo la opción para elegir códecs de video y audio, puedo tener combinaciones inestables o imposibles con el resultado de crashes o errores silenciosos de FFmpeg.
Y muchas otras cuestiones más de las que me fui dando cuenta más tarde, como tener en cuenta conversión de videos con múltiples pistas de audio, tener en cuenta que no todos saben español, un apartado de configuraciones para poder desactivar sonidos o notificaciones de VManager, que te avise cuando hay actualizaciones disponibles y actualizar con un botón.
Siento haber cumplido con muchísimas cosas que cuando comencé no imaginé. Al momento de rehacer el README, crear un CONTRIBUTING, se cumplen 5 meses desde que comencé. Estoy orgulloso del punto hasta el que ha llegado VManager, y todavía sigo con el mismo entusiasmo de hacerlo mejor cada día.
¿Que tengo hoy? Una aplicación en la que puedo confiar y no que simplemente funcione "por arte de magia". Un sistema de configuraciones completo, localización en 14 idiomas distintos, con imagen de perfil y colores personalizables para sentirlo más personal, optimizada para ocupar la menor cantidad de recursos posibles, guías completas de cómo utilizar cada herramienta, binarios extra para descargar videos o audios de internet con la posibilidad de descargarlos en paralelo, una implementación ingeniosa para D&D en Linux (con una ventana X11 invisible superpuesta), ¡y un montón de cosas más!
Si no lo dejé claro anteriormente, tengo la intención de que VManager sea lo más rápido, intuitivo y liviano posible. Que un usuario cualquiera, en búsqueda de una herramienta con características del estilo de VManager, encuentre lo que hice y realmente pueda satisfacer sus necesidades. Que no necesite depender de si tiene internet o no para recortar, convertir o comprimir videos/audios. Que no necesite estar sufriendo por excesivos anuncios de ciertas alternativas online o estar bloqueado bajo un paywall muchas veces ridículo.
Apoyo la moción de que toda funcionalidad básica de un usuario debe tener una contraparte gratuita, libre de distribución y modificación de código, y sobre todo tan potente y funcional como cualquier otra alternativa de paga.
Reconozco que todavía VManager puede no estar muy pulido o tener problemas claros, ya que se trata de un proyecto moderno y no dispongo de tanto tiempo disponible. Y por eso mismo tengo la intención de brindar lo mejor de mí con las herramientas que se me fueron brindadas para desarrollar este grandioso proyecto.
Y bueno, no por ser lo último es lo menos importante. Es notable mencionar que no he estado solo en el desarrollo; muchos compañeros de la facultad me han brindado su feedback en distintos setups, amigos míos me alentaron a continuarlo. Quiero agradecer específicamente a @femaa33 por haber sido (y seguir siendo) el mayor tester de VManager, por haber sido quién me dio la idea de haber comenzado a desarrollar este proyecto en un primer lugar y además por haber diseñado la primera iteración del logo que fue inspiración para el logo actual. ¡Muchas gracias a todos por contribuir con su granito de arena!
