Skip to content

Política de privacidad

Borrador asistido por IA -- no es asesoramiento legal

Este documento es un primer borrador escrito con ayuda de IA, a partir de una lectura directa del código y la documentación técnica de la aplicación (no de una plantilla genérica). Describe con la mayor precisión posible lo que la aplicación hace hoy con los datos de sus usuarios.

No es asesoramiento legal. Antes de abrir la aplicación a un público más amplio que un grupo cerrado de amigos, este texto debe ser revisado por una persona profesional cualificada en protección de datos. Como política real para un grupo pequeño y de confianza, en su estado actual es razonable y honesta sobre lo que ocurre con los datos -- pero no debe tratarse como jurídicamente blindada.

Última actualización: 2026-10-16. Esta fecha debe moverse cada vez que el documento cambie de fondo.

Qué es VlogRoulette

VlogRoulette es una aplicación para un grupo cerrado de amigos ("un círculo"). Cada pocos días una ruleta elige a una persona del círculo; esa persona graba clips sueltos con su móvil (o los elige de su galería), la propia aplicación los edita -- normalmente en el propio dispositivo, a veces en el servidor (ver más abajo) -- y el vídeo resultante ("un vlog") se estrena durante 24 horas para que el resto del círculo lo vea. No hay un muro público, no hay búsqueda de usuarios ajenos al círculo y no hay publicidad: es una aplicación pensada para un grupo pequeño que ya se conoce, no una red social abierta.

Esta política explica qué datos personales trata la aplicación, para qué, durante cuánto tiempo, con quién se comparten y qué puede hacer cada persona usuaria con los suyos.

Quién es responsable del tratamiento

VlogRoulette lo opera y mantiene una única persona, a título individual (no una empresa). Para cualquier pregunta, solicitud o queja relacionada con esta política o con tus datos, puedes escribir a:

javivi004.ou@gmail.com

Edad mínima para usar la aplicación: 14 años. Nada en el código actual comprueba ni exige una edad mínima al registrarse (backend/app/api/auth.py no pide fecha de nacimiento ni la valida) -- este límite es, por ahora, una declaración de política, no algo que la aplicación verifique técnicamente. Se fija en 14 porque es la edad de consentimiento digital que marca la normativa española (LOPDGDD) para tratar datos de una persona basándose en su propio consentimiento; por debajo de esa edad haría falta el consentimiento de madre, padre o tutor legal, y hoy no existe ningún mecanismo para recabarlo. Si en el futuro se detecta o se sospecha que una cuenta pertenece a alguien menor de 14 años, debe tratarse como una solicitud de eliminación de cuenta (ver más abajo) y notificarse a la dirección de contacto de arriba.

Qué datos personales se recogen

La aplicación distingue tres tipos de datos, y solo el primero se identifica directamente con una cuenta.

1. Datos de la cuenta

Dato Para qué se usa Dónde vive
Email Identificar la cuenta, iniciar sesión, enviar códigos de verificación y de restablecimiento de contraseña Tabla users, base de datos Postgres
Nombre visible ("display name") Mostrarte al resto del círculo (quién ha grabado, quién ha reaccionado, quién ha visto un vlog) Tabla users
Contraseña Iniciar sesión Se guarda solo como hash (nunca en texto plano) en users.password_hash
Estado de verificación del email Informativo users.email_verified -- no bloquea nada: una cuenta sin verificar puede crear círculos, unirse, grabar y publicar exactamente igual que una verificada
Idioma (es o en) Escribirte las notificaciones y los correos en el idioma de tu teléfono users.language; la app lo actualiza sola si cambias el idioma del teléfono
Token(s) de notificaciones push (Expo) Enviarte avisos (te ha tocado grabar, se acerca el plazo, ha empezado un estreno, hay un comentario nuevo) Tabla push_tokens, uno por cada dispositivo en el que instalas la app, no uno por cuenta

No se pide ni se guarda ningún otro dato de perfil: no hay foto de perfil, ni fecha de nacimiento, ni teléfono, ni dirección postal, ni ningún dato demográfico.

2. Contenido que generas dentro de un círculo

Dato Qué es
Vlogs El vídeo editado a partir de tus tomas, guardado en Cloudflare R2 cuando publicas tu turno. Las tomas pueden ser clips grabados con la aplicación o fotos y vídeos que eliges de la galería de tu teléfono
Progreso del turno Mientras grabas, tu teléfono informa al servidor de cuántas tomas llevas y cuántos segundos suman. Lo ve todo el círculo, no solo el servidor ("Marta lleva 4 tomas")
Notas técnicas del montaje Un texto corto que se guarda junto a cada vlog (vlogs.render_notes): qué motor lo montó, cuántos cortes tiene, cuántas tomas se descartaron y la resolución y orientación de cada toma. No incluye el contenido de las tomas ni el modelo del teléfono, y la API se lo devuelve a los miembros del círculo junto al resto de datos del vlog
Reacciones Un emoji (de un conjunto fijo de cinco) que dejas en el vlog de otra persona
Comentarios Un comentario corto de texto en un vlog
Vistas El hecho de que has visto un vlog concreto -- se guarda con tu nombre, no solo como un contador, porque en un círculo cerrado "Marta y Luis lo han visto" es la información relevante, no "2"
Votos de re-sorteo Que has votado para repetir el sorteo de un turno

Las tomas en bruto (sin editar) normalmente no salen de tu teléfono, pero no siempre. Lo habitual es que la edición ocurra en el propio dispositivo y que solo se suba el vlog terminado. Sin embargo, cuando tu teléfono no puede montar el vlog -- porque no tiene un motor de edición compatible, porque el material incluye algo que su motor no sabe tratar (por ejemplo, fotos en un iPhone) o porque la edición falla a mitad -- la aplicación recurre al servidor:

  • Tus tomas y fotos, tal cual, se suben una a una al servidor de la API (Fly.io) y se guardan temporalmente en el disco de esa máquina.
  • El servidor monta allí el vlog con FFmpeg y sube el resultado a Cloudflare R2.
  • Si el montaje termina bien, las tomas se borran del servidor en ese mismo momento. Si falla, se quedan para poder reintentarlo. Si el turno se cierra sin llegar a montarse (se acaba el plazo, se repite el sorteo, sales del círculo...), las tomas se quedan en el disco del servidor hasta que la máquina se reinicia o se despliega una versión nueva: ese disco no es persistente y se vacía entero en cada reinicio. Hoy no hay ninguna limpieza automática que las borre antes.

El servidor solo las usa para producir el vlog.

3. Datos operativos y técnicos

  • Dirección IP. Se usa de forma transitoria, en memoria, únicamente para limitar la frecuencia de ciertas peticiones (inicio de sesión, registro, solicitudes de restablecimiento de contraseña, subidas...) y evitar abusos automatizados. No se guarda en ninguna base de datos ni en ningún registro persistente: vive en un contador en memoria del proceso del servidor, junto al nombre de la regla que se está aplicando, y desaparece por completo si el servidor se reinicia. Se olvida cuando ya no puede afectar a ningún límite: como la ventana más larga es de una hora, puede permanecer en memoria hasta algo más de una hora después de tu última petición limitada.
  • Datos de fallos y errores (Sentry). Cuando algo falla, se envía un informe técnico a Sentry (ver más abajo) para poder corregirlo. Sentry filtra automáticamente contraseñas y cabeceras de autenticación, y adicionalmente esta aplicación enmascara sus propios datos sensibles (tokens de notificaciones, códigos de invitación a un círculo) antes de enviar cualquier informe.

Lo que esta aplicación no hace

Para que quede explícito, porque su ausencia es tan relevante como lo que sí se recoge:

  • No hay ningún sistema de publicidad ni de analítica de comportamiento (nada como Google Analytics, píxeles de seguimiento, perfiles publicitarios o venta de datos a terceros). No existe ese código en el repositorio.
  • No hay un muro público ni una búsqueda de usuarios: la aplicación solo muestra un vlog a las personas que pertenecen al círculo en el que se grabó. Ten en cuenta, eso sí, que el enlace del vídeo en sí no está protegido (ver "El vídeo se sirve con un enlace público" más abajo).
  • No se usan los datos para entrenar modelos de IA ni se comparten con fines distintos de hacer funcionar la aplicación.

Con quién se comparten los datos (subencargados)

VlogRoulette no vende ni cede datos a terceros con fines comerciales. Para poder funcionar, sí se apoya en un pequeño número de proveedores técnicos ("subencargados del tratamiento"), cada uno con una función concreta y acotada:

Proveedor Qué guarda Por qué
Neon (Postgres gestionado) La base de datos relacional completa: cuentas, círculos, turnos, reacciones, comentarios, vistas, tokens push Es donde vive todo lo que no es vídeo
Cloudflare R2 Los ficheros de vídeo (.mp4) de los vlogs publicados Almacenamiento de objetos y entrega de los vídeos a través de la red de Cloudflare
Fly.io Aloja el proceso de la API. Además de lo que pasa por él en tránsito, guarda temporalmente en su disco las tomas en bruto cuando el vlog se monta en el servidor (ver "Contenido que generas dentro de un círculo") Es donde corre el servidor
Resend (envío de correo, por SMTP) Tu dirección de email y el contenido de los correos que te manda la aplicación (códigos de verificación y de restablecimiento de contraseña) Entregar esos correos
Expo Push / Firebase Cloud Messaging (FCM) / Apple Push Notification service (APNs) El token de notificación de tu dispositivo, y el contenido de cada aviso que te llega Entrega de notificaciones push
Sentry Informes de errores técnicos de la aplicación (móvil y servidor), con los campos sensibles propios de esta app enmascarados Detectar y corregir fallos

Ningún otro tercero recibe tus datos. En concreto, no hay ninguna plataforma de analítica, publicidad o "growth" en el circuito.

El vídeo se sirve con un enlace público. Para que el estreno, cuando todo el grupo lo ve a la vez, no sature el servidor, los vídeos se sirven desde un dominio público de Cloudflare. La aplicación solo da la URL de reproducción de un vlog a las personas que pertenecen a su círculo, y esa URL no es adivinable (incluye identificadores aleatorios), pero no está protegida: no caduca ni pide iniciar sesión, así que cualquiera que tenga el enlace puede ver el vídeo. Si alguien del círculo lo copia y lo comparte, la aplicación no puede impedirlo. Salir del círculo o eliminar tu cuenta tampoco invalida ese enlace.

Dónde se procesan los datos

El servidor corre en una única máquina de Fly.io ubicada en Ámsterdam (también allí se guardan temporalmente las tomas cuando el vlog se monta en el servidor), y la base de datos en Neon está en Fráncfort. Los informes de errores de la aplicación móvil se envían a la región de la Unión Europea de Sentry.

No todo el tratamiento ocurre, o consta que ocurra, dentro de la Unión Europea:

  • La ubicación del almacenamiento de Cloudflare R2 no está fijada en la documentación del proyecto, y los vídeos se entregan a través de la red global de Cloudflare, que puede guardar copias en caché en centros de datos de cualquier parte del mundo.
  • Expo, FCM (Google) y APNs (Apple), que entregan las notificaciones push, y Resend, que entrega los correos, son proveedores con sede en Estados Unidos y pueden tratar esos datos fuera de la Unión Europea.

Este servicio opera bajo jurisdicción española: quien lo mantiene reside en España, y le son de aplicación el Reglamento General de Protección de Datos (RGPD) de la Unión Europea y la Ley Orgánica 3/2018 de Protección de Datos Personales y garantía de los derechos digitales (LOPDGDD) españolas. Esto es coherente con que el servidor y la base de datos estén en la UE (ver arriba). Como con el resto de este documento: es una base razonable para un grupo pequeño de confianza, pero conviene confirmarlo con asesoramiento legal antes de abrir la aplicación a un público más amplio, sobre todo si en algún momento hay usuarios fuera de la Unión Europea.

Cuánto tiempo se conservan los datos

Este es el punto donde esta aplicación se comporta de forma distinta a lo que mucha gente esperaría, así que conviene decirlo sin rodeos:

Los vlogs publicados se conservan indefinidamente. Nada en el código de esta aplicación borra nunca un vlog una vez publicado: cuando el estreno de 24 horas termina, el turno pasa a "archivado" pero el fichero de vídeo sigue en Cloudflare R2 y sigue siendo visible para el círculo en su historial, sin fecha de caducidad. A día de hoy es una decisión deliberada (el histórico del grupo tiene valor), no un descuido, pero significa que un vlog que grabas hoy puede seguir siendo visible para tu círculo dentro de años, mientras la aplicación exista y tu cuenta -- o la de cualquier miembro del círculo -- siga activa.

Las copias de seguridad conservan lo mismo, fuera de la infraestructura en la nube. Existe un script (scripts/backup.py) que copia periódicamente tanto la base de datos como los vídeos a un soporte controlado por quien administra el proyecto, precisamente porque ni Neon ni R2 garantizan recuperación más allá de una ventana corta. Esto significa que, además de lo que hay en Neon y R2, puede existir una copia adicional de tus datos y de los vlogs en ese soporte de respaldo, sujeta al mismo principio de "no se borra solo porque se borre el original": si se elimina un vlog en el futuro, una copia de seguridad antigua puede conservarlo hasta que ese respaldo concreto se descarte.

Los informes de error en Sentry se conservan 30 días, según la política del plan gratuito de Sentry que usa este proyecto, y después se eliminan automáticamente.

Las tomas en bruto que se suben para montar un vlog en el servidor se borran en cuanto el montaje termina bien; si no llega a terminar, pueden quedarse en el disco del servidor hasta el siguiente reinicio o despliegue (ver "Contenido que generas dentro de un círculo").

La dirección IP no se guarda en ningún almacenamiento persistente: como se explica arriba, solo existe en memoria, como mucho algo más de una hora, para limitar peticiones abusivas.

Tus derechos y cómo ejercerlos

Acceder a tus datos

Puedes ver tu email y tu nombre visible desde la propia aplicación (pantalla de perfil). Para cualquier otro dato que la aplicación guarde sobre ti, puedes escribir a javivi004.ou@gmail.com.

Corregir tus datos

El nombre visible se puede editar en cualquier momento desde la propia aplicación. Es, de forma deliberada, el único campo de perfil editable: no hay foto ni biografía. Para corregir el email asociado a tu cuenta, o cualquier otro dato, contacta en javivi004.ou@gmail.com.

Llevarte tus datos (portabilidad)

La aplicación incluye la función "Guardar en el dispositivo", disponible en el estreno de un vlog y en cualquier fila de tu historial: descarga el vídeo terminado directamente a la galería de tu teléfono. Es una copia de lo que ves en pantalla en ese momento, no una suscripción ni una sincronización automática: si la pulsas dos veces, se guarda dos veces, y la aplicación no lleva registro de si la has usado o no. Es, hoy, la vía principal para llevarte contigo el contenido que te importa.

Para otros datos (por ejemplo, un volcado de tu actividad -- comentarios, reacciones, vistas), puedes solicitarlo a javivi004.ou@gmail.com; hoy no existe un botón de exportación automática para esos datos dentro de la aplicación.

Eliminar tu cuenta -- y lo que esto significa realmente

Puedes eliminar tu cuenta en cualquier momento desde la propia aplicación (pantalla de perfil, con confirmación de tu contraseña). Es importante que entiendas exactamente qué ocurre cuando lo haces, porque no es "se borra todo lo tuyo":

Lo que se elimina, sin ambigüedad:

  • Tu dirección de email (se sustituye por un valor no utilizable ni reutilizable como deleted+<id>@vlogroulette.invalid)
  • Tu nombre visible (se borra; en su lugar la aplicación muestra "Cuenta eliminada", o "Deleted account", según el idioma de quien lo lea)
  • Tu contraseña (se sustituye por un valor que ninguna contraseña real puede producir; nadie, ni siquiera con la contraseña original, puede volver a entrar en la cuenta)
  • Todos los tokens de notificaciones push registrados en tus dispositivos
  • Cualquier proceso de verificación de email o restablecimiento de contraseña que estuviera en curso
  • Tu pertenencia a todos los círculos en los que estabas (sales de todos ellos en el mismo momento, con el mismo procedimiento que si los abandonaras uno a uno: si tenías un turno abierto, se marca como no completado sin penalización adicional por ello, y si eras propietario de algún círculo, la propiedad pasa a la persona con más antigüedad en él)

Lo que NO se elimina, y se queda visible para tu círculo:

  • Los vlogs que publicaste. Siguen existiendo en Cloudflare R2 y siguen siendo visibles en el historial del círculo, atribuidos a "Cuenta eliminada" en lugar de a tu nombre. No se borran porque, según el criterio del proyecto, ese contenido se hizo para el grupo y el grupo sigue teniéndolo delante -- eliminar tu cuenta no es lo mismo que pedir que se elimine el historial de otras personas.
  • Los comentarios, reacciones y vistas que dejaste en vlogs de otras personas permanecen igualmente, ya sin tu nombre real asociado (aparecen bajo "Cuenta eliminada").
  • El registro de que exististe como miembro del círculo (fechas, turnos que jugaste) permanece, por el mismo motivo: es historia del grupo, no únicamente tuya.

En resumen: eliminar tu cuenta borra quién eras, no lo que grabaste para el grupo. Si lo que buscas es que un vídeo concreto deje de ser visible, eliminar la cuenta no lo consigue; tendrías que pedirlo directamente a javivi004.ou@gmail.com, y aun así, ten en cuenta que hoy no existe en el código ninguna función para borrar un vlog ya publicado -- ver la sección "Cuánto tiempo se conservan los datos" más arriba.

Notificaciones push

Si aceptas las notificaciones, tu teléfono registra un token con Expo Push Service, que a su vez las entrega a través de FCM (Android) o APNs (iOS). Puedes silenciar los avisos de un círculo concreto desde la propia aplicación en cualquier momento -- eso deja de mandarte notificaciones de ese círculo sin afectar a tu participación en él (se te puede seguir sorteando, puedes grabar y votar igual).

Al cerrar sesión en un dispositivo, la aplicación pide al servidor que borre el token de ese dispositivo (si en ese momento no hay conexión, puede quedarse registrado). "Cerrar sesión en todas partes" borra todos tus tokens registrados a la vez. Además, cuando Expo indica que un token ya no sirve (por ejemplo, porque desinstalaste la aplicación), el servidor lo borra solo.

Seguridad

Algunas medidas técnicas relevantes para tu privacidad:

  • Las contraseñas nunca se guardan en texto plano, solo como hash.
  • Cambiar o restablecer tu contraseña cierra automáticamente cualquier otra sesión abierta con la contraseña anterior.
  • Eliminar tu cuenta requiere volver a introducir tu contraseña.
  • Cuando el vlog se monta en el teléfono, el vídeo terminado se sube directamente al almacenamiento (Cloudflare R2) mediante una URL firmada y temporal, sin pasar por el servidor de la API. Cuando se monta en el servidor, las tomas en bruto sí pasan por él y se guardan temporalmente en su disco (ver "Contenido que generas dentro de un círculo").
  • Ningún dato se transmite sin cifrado en tránsito (HTTPS/TLS de extremo a extremo entre tu teléfono, el servidor y el almacenamiento).

Como con cualquier sistema, ningún método es enteramente infalible, pero no se conocen incidentes de seguridad en este proyecto a la fecha de este documento.

Cambios en esta política

Si esta política cambia de forma relevante, se actualizará la fecha al principio del documento. Al tratarse todavía de un despliegue reducido entre amigos, hoy no existe un mecanismo automático de aviso dentro de la aplicación ante cada cambio; si el proyecto crece más allá de ese círculo cerrado, esto es algo que debería añadirse.

Resumen de lo pendiente para quien mantiene el proyecto

Contacto, edad mínima y jurisdicción ya están rellenados (ver arriba). Lo que sigue abierto:

  • Revisión por una persona profesional en protección de datos antes de abrir la aplicación más allá de un grupo cerrado de confianza -- ver el aviso al principio de este documento.
  • Confirmar la ubicación del almacenamiento de R2 y la región de Resend, y reflejarlas en "Dónde se procesan los datos".
  • Borrar automáticamente las tomas de turnos cerrados que se quedan en el disco del servidor (scripts/sweep_orphans.py no puede hacerlo hoy: no va dentro de la imagen que corre en Fly), o reflejar aquí cualquier cambio en cómo se hace.
  • Si algún día se implementa una verificación real de edad en el registro (hoy la de 14 años es solo una declaración de política, no algo que el backend compruebe), esta sección debe actualizarse para reflejarlo.