# Emby — integración de lectura

## Contratos oficiales

Autenticación por encabezado `X-Emby-Token`, según la [documentación de API keys](https://dev.emby.media/doc/restapi/API-Key-Authentication.html).

| GET | Uso | Fuente |
| --- | --- | --- |
| `/System/Info` | Conexión e información | [SystemService](https://dev.emby.media/reference/RestAPI/SystemService/getSystemInfo.html) |
| `/Library/VirtualFolders/Query` | Bibliotecas | [LibraryStructureService](https://dev.emby.media/reference/RestAPI/LibraryStructureService/getLibraryVirtualfoldersQuery.html) |
| `/Users/Query` | Usuarios | [UserService](https://dev.emby.media/reference/RestAPI/UserService/getUsersQuery.html) |
| `/Sessions` | Sesiones | [SessionsService](https://dev.emby.media/reference/RestAPI/SessionsService/getSessions.html) |

Las dos operaciones Query devuelven `Items` y `TotalRecordCount`. El adaptador pagina con `StartIndex` y `Limit=500`, con máximo de 20 páginas/10.000 registros y presupuesto total de 20 segundos. Una respuesta incompleta o un límite alcanzado produce error; no se devuelve silenciosamente un listado parcial.

No se supone que todos los endpoints coincidan con Jellyfin. La normalización de campos compartidos se reutiliza, pero `EmbyService` define sus rutas Query. No se añaden rutas alternativas no comprobadas. Una versión sin estos endpoints mostrará el error HTTP para su diagnóstico.

## Legacy y presentación

`embyservers.host`, `port`, `api_key` se leen sin cambios. En la copia, el host ya contiene esquema HTTP y puerto; el campo separado está vacío. Se respeta esa estructura, además de posibles prefijos de reverse proxy. Direcciones y credenciales no se muestran en la interfaz.

Bibliotecas usan `ItemId` como ID remoto de lectura. No se rellena `packages.libraries`. Los usuarios se comparan por `embycustomers.json_data.Id` dentro del mismo servidor. Se aplican las mismas reglas de coincidencia única y alcance de revendedor que en Jellyfin.

Se muestran políticas seleccionadas de lectura y sesiones con `NowPlayingItem`. Configuración de usuarios, PIN, contraseñas, claves y JSON bruto quedan fuera del resultado. Los campos no suministrados se muestran como —.

Solo se han validado documentación oficial y respuestas simuladas; no hay prueba contra el servidor Emby real.
