Cómo instalar y configurar Scrob - La alternativa a Letterboxd + Trakt

Scrob | Media Tracking | Docker

Scrob: Tu propio Letterboxd + Trakt autohospedado en Docker

Sincroniza tus bibliotecas de Jellyfin, Plex y Emby, registra tu historial de visualización y calificaciones, todo en una interfaz web moderna instalable como PWA.

¿Qué es Scrob?



Scrob es una aplicación de seguimiento de medios de código abierto y autohospedada que funciona como tu Letterboxd + Trakt privado. Sincroniza tus bibliotecas completas desde Jellyfin, Plex y Emby, registra automáticamente lo que ves, te permite calificar películas y series, crear listas personalizadas, seguir a otros usuarios y mucho más.

A diferencia de servicios comerciales como Trakt o Letterboxd, Scrob te da control total sobre tus datos. Toda la información permanece en tu servidor, sin telemetría, sin límites de uso, sin suscripciones. Además, se instala como una Progressive Web App (PWA) en cualquier dispositivo, ofreciendo una experiencia similar a una aplicación nativa.

Ventaja clave: Scrob funciona como un hub centralizado para todas tus actividades de visualización, independientemente de si usas Jellyfin, Plex, Emby o una combinación de ellos. Todo el historial, calificaciones y listas en un solo lugar.

Características principales

Sincronización multi-plataforma

Importa bibliotecas completas, historial y calificaciones desde Jellyfin, Plex y Emby con sincronización incremental.

Scrobbling en tiempo real

Webhooks actualizan tu estado de visualización mientras reproduces contenido, sin necesidad de sincronización manual.

Integración con Trakt

Sincroniza tu historial y calificaciones desde Trakt, y envía la actividad de Scrob de vuelta automáticamente.

Historial y calificaciones

Registra cada película y episodio visto. Califica en escala de 10 puntos con reseñas opcionales.

Calificación por temporadas

Califica temporadas individuales de forma separada a la serie completa.

Listas personales

Crea y organiza listas de películas y series. Márcalas públicas para compartir con otros usuarios.

Sistema social

Sigue a otros usuarios y ve su actividad. Comenta en películas, series, temporadas y episodios.

Integración TMDB

Metadatos ricos para cada título: pósters, fondos, reparto, equipo, trailers, colecciones y más.

Pick a Movie / Pick a Show

Obtén sugerencias sobre qué ver basadas en tu biblioteca y preferencias de streaming.

Trending y Airing Today

Películas y series en tendencia diaria desde TMDB, más episodios que se emiten hoy filtrados a tu colección.

Continuar viendo y Next Up

Dashboard con elementos en progreso y el siguiente episodio a ver en cada serie.

Radarr y Sonarr

Añade películas y series a Radarr/Sonarr directamente desde la interfaz de Scrob.

Autenticación 2FA

TOTP 2FA con códigos de respaldo, gestionado desde la página de configuración.

OIDC / SSO

Autenticación con cualquier proveedor OpenID Connect (Authelia, Authentik, Keycloak, etc.).

Progressive Web App

Instala Scrob en cualquier dispositivo (Android, iOS, escritorio) para una experiencia de app nativa.

Contenedor único

Frontend y backend en una sola imagen, un solo puerto. Sin servicios separados que gestionar.

Scrob vs Trakt vs Letterboxd

Característica Scrob Trakt Letterboxd
Autohospedado No No
Control de datos Total Limitado Limitado
Sincronización Jellyfin/Plex/Emby Sí (3 plataformas) Sí (limitado) No
Webhooks en tiempo real Limitado No
PWA instalable No No
Listas personales Sí (VIP)
Calificaciones por temporada No No aplica
Integración Radarr/Sonarr No No
Coste Gratis (hosting propio) Gratis + VIP ($35/año) Gratis + Pro/Patron ($19-49/año)
Telemetría Ninguna

Requisitos previos

  • Docker y Docker Compose instalados en tu servidor
  • Al menos 2 GB de RAM disponible
  • Una API key de TMDB (gratuita) — necesaria para metadatos, búsqueda e imágenes
  • PostgreSQL 16 (incluido en el compose)
  • Acceso a tu servidor multimedia: Jellyfin, Plex o Emby
Nota sobre TMDB: Obtén tu API key gratuita en themoviedb.org/settings/api. Es obligatoria para que Scrob funcione correctamente.

Instalación con Docker Compose

Paso 1: Descargar el archivo compose

mkdir ~/scrob cd ~/scrob curl -o docker-compose.yaml https://raw.githubusercontent.com/ellite/scrob/main/docker-compose.yaml

Paso 2: Editar la configuración

Abre el archivo docker-compose.yaml y ajusta los siguientes valores:

services: scrob-db: container_name: scrob-db image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: scrob POSTGRES_PASSWORD: cambiar-contraseña # ← CAMBIAR ESTO POSTGRES_DB: scrob volumes: - db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U scrob -d scrob"] interval: 5s timeout: 5s retries: 10 scrob: container_name: scrob image: bellamy/scrob:latest restart: unless-stopped depends_on: scrob-db: condition: service_healthy ports: - "7330:7330" environment: DATABASE_URL: postgresql+asyncpg://scrob:cambiar-contraseña@scrob-db:5432/scrob # ← usar misma contraseña SECRET_KEY: generar-con-openssl # ← CAMBIAR ESTO TZ: Europe/Madrid volumes: - scrob_data:/app/backend/data volumes: db_data: scrob_data:
Importante: Genera una SECRET_KEY segura con el comando: openssl rand -hex 32

Paso 3: Iniciar los contenedores

docker compose up -d

Paso 4: Verificar el estado

# Ver logs docker compose logs -f scrob # Comprobar que están ejecutándose docker compose ps

Paso 5: Acceder a Scrob

Abre tu navegador y ve a: http://tu-ip-servidor:7330

Configuración inicial

  1. Abre http://localhost:7330 y crea tu cuenta de usuario
  2. Ve a Settings → Integrations para añadir tu API key de TMDB
  3. Conecta tu servidor multimedia (Jellyfin, Plex o Emby)
  4. Selecciona qué bibliotecas sincronizar
  5. Inicia la primera sincronización desde Settings → Sync
Consejo: La primera sincronización puede tardar varios minutos dependiendo del tamaño de tu biblioteca. Las sincronizaciones posteriores son incrementales y mucho más rápidas.

Configurar webhooks para scrobbling en tiempo real

Los webhooks actualizan tu historial de visualización y la sección "Continuar viendo" en tiempo real mientras reproduces contenido. Cada URL de webhook se muestra en Settings junto a la integración correspondiente.

Jellyfin

1. En Jellyfin: Dashboard → Plugins → Catalogue, instala Webhook y reinicia

2. Ve a Dashboard → Plugins → Webhook → Add Generic Destination

3. Pega tu URL de webhook de Scrob para Jellyfin

4. Habilita: Playback Start, Playback Progress, Playback Stop, Mark Played

5. Habilita tipos: Movies y Episodes

6. Marca "Send all properties (ignore templates)" y deja el campo Template en blanco

Plex

Requiere Plex Pass

1. Ve a plex.tv/accountWebhooks → Add Webhook

2. Pega tu URL de webhook de Scrob para Plex

3. En Scrob → Settings, introduce tu nombre de usuario de Plex para atribuir correctamente los eventos

Emby

1. En Emby: Dashboard → Notifications → Add Notification → Webhook

2. Pega tu URL de webhook de Scrob para Emby

3. Habilita eventos: Playback Start, Playback Progress, Playback Stop

Jellyfin: NO uses plantillas personalizadas. El motor de plantillas de Jellyfin produce JSON inválido. Usa "Send all properties" para enviar un payload bien formado que Scrob puede parsear correctamente.

Variables de entorno disponibles

Variable Default Descripción
SECRET_KEY Obligatoria. Clave para firmar JWT. Genera con openssl rand -hex 32
DATABASE_URL Obligatoria. Cadena de conexión PostgreSQL (postgresql+asyncpg://...)
ENABLE_REGISTRATIONS true Permitir nuevos registros. El primer usuario siempre puede registrarse
REGISTRATION_MAX_ALLOWED_USERS 0 Número máximo de usuarios registrados. 0 = ilimitado
TZ UTC Zona horaria del contenedor (ej: Europe/Madrid)
PUID 1000 ID de usuario para ejecutar el proceso
PGID 1000 ID de grupo para ejecutar el proceso
BACKEND_PORT 7331 Puerto interno del backend. Solo cambiar si hay conflictos
OIDC_ENABLED false Habilitar login OIDC
OIDC_DISABLE_PASSWORD_LOGIN false Forzar solo OIDC (deshabilita usuario/contraseña)

Integraciones avanzadas

Integración con Trakt

Sincroniza tu historial y calificaciones desde Trakt, y envía automáticamente la actividad de Scrob de vuelta:

  1. Ve a Settings → Integrations → Trakt
  2. Autoriza Scrob con tu cuenta de Trakt
  3. Activa la sincronización bidireccional
  4. Inicia la sincronización inicial

Radarr y Sonarr

Añade películas y series directamente desde la interfaz de Scrob:

  1. Ve a Settings → Integrations
  2. Configura las URLs y API keys de Radarr/Sonarr
  3. Selecciona perfiles de calidad y rutas raíz
  4. Ahora puedes añadir contenido con un clic desde cualquier página de película/serie

OIDC / Single Sign-On

Autenticación con cualquier proveedor OpenID Connect:

OIDC_ENABLED: "true" OIDC_PROVIDER_NAME: "Authelia" OIDC_CLIENT_ID: "scrob" OIDC_CLIENT_SECRET: "tu-secreto" OIDC_AUTH_URL: "https://auth.tudominio.com/api/oidc/authorization" OIDC_TOKEN_URL: "https://auth.tudominio.com/api/oidc/token" OIDC_USERINFO_URL: "https://auth.tudominio.com/api/oidc/userinfo" OIDC_REDIRECT_URL: "https://scrob.tudominio.com/oidc-callback" OIDC_AUTO_CREATE_USERS: "true"

Gestión y mantenimiento

Actualizar Scrob

docker compose pull && docker compose up -d

Las migraciones de base de datos se ejecutan automáticamente al iniciar.

Ver logs

docker compose logs -f scrob

Reiniciar los servicios

docker compose restart

Backup de la base de datos

# Crear backup docker compose exec scrob-db pg_dump -U scrob scrob > scrob-backup-$(date +%Y%m%d).sql # Restaurar backup cat scrob-backup-20260419.sql | docker compose exec -T scrob-db psql -U scrob

Configurar reverse proxy (recomendado)

Para acceder a Scrob desde Internet de forma segura y habilitar la instalación como PWA, necesitas un reverse proxy con HTTPS. Aquí tienes un ejemplo con Caddy:

# Caddyfile scrob.tudominio.com { reverse_proxy localhost:7330 }

Caddy genera y renueva automáticamente los certificados SSL de Let's Encrypt.

Instalar Scrob como aplicación

Scrob puede instalarse como una Progressive Web App en cualquier dispositivo:

  • Android/iOS: Abre Scrob en Chrome/Safari, toca el menú y selecciona "Añadir a pantalla de inicio"
  • Desktop (Chrome/Edge): Haz clic en el icono de instalación en la barra de direcciones
  • Desktop (Firefox): No soporta instalación PWA nativa, pero puedes crear un acceso directo
Requisito: La instalación PWA solo funciona con HTTPS. Usa un reverse proxy con certificado SSL válido.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.