openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
Escribe tu guion, léelo mientras te grabas y exporta el video. Todo en tu teléfono.
Translation pending
MediaKotlinGitHub @ArnoldZamoratecOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Teleprompter y cámara en una sola app Android. Escribe tu guion, léelo mientras te grabas sin memorizar nada y exporta el video listo para redes, sin que tus videos salgan del teléfono.
Guion
.txt o el portapapeles.Teleprompter y cámara
Exportar y compartir
Películas/HablaFacil), compartir con el menú del sistema o directo a Instagram, TikTok, YouTube y WhatsApp si están instaladas.| Área | Librerías |
|---|---|
| Lenguaje y UI | Kotlin 2.4, Jetpack Compose (BOM 2026.09), Material 3, Navigation Compose con rutas tipadas |
| Arquitectura | MVVM + casos de uso, Hilt, Coroutines/Flow |
| Cuenta | Firebase Authentication + Credential Manager (Google) |
| Datos | Room 2.8 (esquemas versionados y migraciones con test), DataStore |
| Cámara | CameraX 1.6 (camera-compose) |
| Video | Media3 1.11: ExoPlayer, ui-compose, Transformer y efectos |
| Segundo plano | WorkManager con servicio en primer plano |
| Efectos visuales | Haze 2.0 (desenfoque "Liquid Glass") |
| Pruebas | JUnit 4, Truth, Turbine, MockK, coroutines-test, Room testing, Compose UI Test |
El proyecto está organizado en capas (core / domain / data / feature). La lógica que se puede probar sin Android (ritmo del teleprompter, estadísticas del guion, opciones de exportación) es Kotlin puro en domain. Las decisiones de diseño, versiones y el plan por fases están en ARCHITECTURE.md.
Requisitos
JAVA_HOME configurado.compileSdk 37). La app funciona desde Android 8.0 (minSdk 26).git clone https://github.com/ArnoldZamoratec/teleprompt-caption-android.git
cd teleprompt-caption-android
./gradlew assembleDebug # APK de depuración
./gradlew installDebug # instalar en un dispositivo conectado
El Gradle Wrapper descarga todo lo necesario. Android Studio crea local.properties con la ruta del SDK al abrir el proyecto.
Firebase: coloca el google-services.json de tu proyecto de Firebase (app Android com.arnoldcode.glassprompt, con los proveedores Correo/contraseña y Google activados y el SHA-1 de tu clave registrado) en app/.
Versión para Play: ./gradlew bundleRelease genera app/build/outputs/bundle/release/app-release.aab, firmado con la clave de subida definida en keystore.properties (storeFile, storePassword, keyAlias, keyPassword). Ese archivo y el .jks no se suben al repositorio.
./gradlew testDebugUnitTest # pruebas unitarias en la JVM
./gradlew lint # análisis estático
./gradlew connectedDebugAndroidTest # pruebas instrumentadas (ver nota)
Nota:
connectedDebugAndroidTestdesinstala la app al terminar y borra sus datos (proyectos y tomas). En un teléfono con datos reales, instala las APK con./gradlew installDebug installDebugAndroidTesty ejecuta una clase concreta conadb shell am instrument -w -e class com.arnoldcode.glassprompt.data.MigrationTest com.arnoldcode.glassprompt.test/com.arnoldcode.glassprompt.HiltTestRunner.
Para entrar hace falta una cuenta (Google o correo y contraseña, con Firebase Authentication); es el único uso de Internet. Guiones y videos se guardan solo en el almacenamiento interno del teléfono. La cuenta se puede eliminar desde Ajustes → Cuenta. Política completa: docs/PRIVACY.md.
| Permiso | Para qué | Cuándo se pide |
|---|---|---|
| Cámara y micrófono | Grabar la toma y su audio | Al abrir la cámara |
| Notificaciones (Android 13+) | Progreso de la exportación (opcional) | En la primera exportación |
| Almacenamiento (solo Android 8–9) | Guardar en la galería | Al pulsar "Guardar" |
| Internet | Iniciar sesión | No se pide (permiso normal) |
Los videos se comparten mediante FileProvider, que solo expone la carpeta de exportaciones; las tomas originales siguen siendo privadas.
| Fase | Contenido | Estado |
|---|---|---|
| 1–2 | Arquitectura y proyecto base | ✅ |
| 3 | Design system "Liquid Glass", onboarding y navegación | ✅ |
| 4 | Proyectos, editor de guion y plantillas | ✅ |
| 5 | Teleprompter, cámara y grabación | ✅ |
| 6 | Transcripción, editor y estilos de subtítulos | ✅ |
| 7 | Exportación, galería y compartir | ✅ |
| 7.1 | Se retiraron los subtítulos automáticos y las plantillas | ✅ |
| 8 | Completar las suites de pruebas de integración e interfaz | ⏳ |
| 9 | Rendimiento (Baseline Profile), accesibilidad y R8 | ⏳ |
| 10 | Build de release firmado | ⏳ |
Probado en un Samsung Galaxy A24 (Android 16) y en el emulador. Las capturas de este README son del emulador, cuya cámara virtual muestra una escena de prueba.
Limitaciones conocidas
RecordingFlowTest falla por una incompatibilidad del entorno de pruebas de Compose con el reproductor de Media3; se resolverá en la fase 8.Arnold · @ArnoldZamoratec
Este proyecto todavía no tiene una licencia definida.