Skip to content

chomusuke-mk/vidra

Repository files navigation

Vidra

Vidra

Gestor de vídeo/tareas de nivel de escritorio (interfaz de usuario Flutter + backend Python en repositorio separado)

Releases Docs Issues

Flutter 3.9+ Python 3.12 Licensing Donate (Buy me a coffee) Donate (Patreon)

Vidra es un gestor de vídeo y tareas para escritorio que combina una interfaz de usuario Flutter con un backend Python mantenido en un repositorio separado.

Aspectos destacados

  • Cliente moderno – Una aplicación de escritorio Flutter con temas y localización para más de 150 idiomas.
  • Backend robusto y ligero – Backend Python separado, con dependencias dinámicas para descargas y manejo de cambios mediante deltas.

Instalación

Vidra se distribuye a través de GitHub Releases. Cada versión incluye instaladores para diferentes plataformas.

Plataforma Instalador
Windows vidra-windows.exe
Linux vidra-linux.AppImage
vidra-linux.deb
Android vidra-android.apk
vidra-android-arm64-v8a.apk
vidra-android-x86_64.apk
macOS Próximamente

Validar Firmas y Checksums

Cada release incluye los siguientes archivos para verificar la integridad y autenticidad de los instaladores:

  • SHA2-256SUMS, SHA2-512SUMS: checksums.
  • SHA2-256SUMS.sig, SHA2-512SUMS.sig: GPG signatures for the checksums.

Estos recursos se distribuyen bajo la licencia LICENSE y pueden incluir componentes bajo otras licencias enumeradas en THIRD_PARTY_LICENSES.md.

Arquitectura

graph TD
  A[Cliente Flutter] <-->|Peticiones HTTP| B[Backend Python]
  subgraph serious_python
    B <--> C[yt-dlp]
    C <--> D[FFmpeg/ffprobe]
    C --> E[quickjs]
    C --> F[yt-dlp-ejs]
  end
Loading

FFmpeg / ffprobe ejecutables

Para ejecutar Vidra, debe proporcionar ffmpeg y ffprobe por su cuenta.

Fuente recomendada: https://github.com/chomusuke-mk/vidra-ffmpeg

Coloca los archivos con los nombres exactos en las siguientes ubicaciones:

Plataforma Ubicación esperada dentro del proyecto
Windows windows/ffmpeg.exe
windows/ffprobe.exe
Linux linux/ffmpeg
linux/ffprobe
Android android/app/src/main/jniLibs/<abi>/libffmpeg.so
android/app/src/main/jniLibs/<abi>/libffprobe.so
  • <abi> debe ser uno de arm64-v8a, o x86_64.

Quickjs ejecutables

Para ejecutar Vidra, debe proporcionar quickjs por su cuenta.

Fuente recomendada: https://github.com/chomusuke-mk/vidra-quickjs

Coloca los archivos con los nombres exactos en las siguientes ubicaciones:

Plataforma Ubicación esperada dentro del proyecto
Windows windows/quickjs.exe
windows/quickjs.exe
Linux linux/quickjs
linux/quickjs
Android android/app/src/main/jniLibs/<abi>/libquickjs.so
android/app/src/main/jniLibs/<abi>/libquickjs.so
  • <abi> debe ser uno de arm64-v8a, o x86_64.

Inicio rápido

1. Inicializar el espacio de trabajo de Flutter

flutter pub get
dart run flutter_launcher_icons # opcional, regenera los iconos

Cliente de escritorio Flutter

flutter run -d windows
flutter run -d linux
flutter run -d android

Empaquetado y distribución

  1. Asegúrate de que el paquete backend dentro de app/app.zip esté actualizado:

     dart run serious_python:main package app/src \
     -r -r -r app/requirements.txt \
     -p Windows --verbose \
     --output app/app.zip

    El backend se distribuye en https://github.com/chomusuke-mk/vidra-backend y este repositorio solo empaqueta la interfaz Flutter junto con los binarios y dependencias que se descargan al ejecutar la aplicación.

  2. Copia app/app.zip y el hash generado (app/app.zip.hash) en la lista de recursos de Flutter (ya declarada en pubspec.yaml).

  3. Compila el artefacto de destino (flutter build windows, flutter build macos, etc.).

    El repositorio incluye tareas de VS Code (Serious Python: Empaquetar <plataforma> App, Compilar APK de Android (Flutter)) que encapsulan los mismos comandos.

Localización y recursos

  • Las traducciones se encuentran en i18n/locales/<código ISO>/. Utilice los scripts auxiliares en tool/ (por ejemplo, auto_translate_locales.py, generate_translation_progress.py) para mantener los idiomas sincronizados.
  • El directorio assets/ contiene iconos, animaciones y plantillas .env. Todos los recursos referenciados se declaran en pubspec.yaml.

Testing & QA

Scope Command
Flutter widget/unit tests flutter test
Integration smoke test flutter test --tags integration (tests under test/ and test/backend/)

Use VIDRA_SERVER_DATA to point tests at a temporary directory so logs are isolated per run.

Documentation & troubleshooting

  • docs/system-architecture.md – end-to-end overview of the Flutter client, backend, sockets, and packaging flow.
  • docs/client-flows.md – English descriptions of UI flows mapped to REST/WebSocket contracts.
  • docs/typed-architecture.md – explains the typed model refactor and state layers inside the backend.
  • docs/backend-job-lifecycle.md – canonical reference for job states, transitions, and related endpoints.
  • docs/configuration-and-ops.md – environment variables, logging targets, and ops runbooks.
  • docs/troubleshooting.md – symptom → cause → fix catalog for packaging, sockets, and localization failures.
  • temp/native-crash.txt – crash dump location; include it with bug reports.
  • Structured logs are written to <VIDRA_SERVER_DATA>/release_logs.txt automatically at runtime.

Contributing & security

  • Read CONTRIBUTING.md for coding standards, branching strategy, and review expectations.
  • Vulnerability disclosures go through SECURITY.md.
  • Please keep git history clean and avoid force-pushing to main.

Licensing & attribution

  • Project licensing follows the root LICENSE file.
  • Every third-party dependency (Python + Flutter), incluyendo las descargas dinámicas yt-dlp y yt-dlp-ejs, is documented in THIRD_PARTY_LICENSES.md, with verbatim license texts stored under third_party_licenses/ for inclusion in installers.
  • Remember that mutagen is GPL-2.0-or-later; distributing Vidra to end users requires shipping the corresponding backend sources to satisfy GPL obligations.

About

Vidra: The power of yt-dlp, refined. A seamless, cross-platform video downloader driven by a robust Python backend.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages