Notas sobre la actualización
Antes de actualizar desde una versión anterior, se recomienda encarecidamente realizar una copia de seguridad completa del directorio de datos, ya que esta versión incluye cambios en la base de datos que impiden volver atrás sin una restauración completa.
Se admiten actualizaciones directas desde 10.10.7 y 10.11.x a 12.0; no se requieren pasos intermedios. Se recomienda encarecidamente a quienes ejecuten versiones anteriores a 10.10.7 que primero actualicen a 10.10.7 antes de migrar a 12.0.
Los complementos de repositorio instalados (cualquier cosa que no esté integrada) también deben eliminarse antes de migrar. Es probable que los complementos necesiten tiempo para adaptarse a los nuevos cambios de la base de datos, por lo que volver a agregarlos después es el enfoque más seguro para las pruebas.
Los complementos oficiales compatibles con Jellyfin están disponibles a través del repositorio estable de complementos. Si has cambiado al repositorio inestable, vuelve al estable.
- Ve a Panel de control → Complementos → Gestionar repositorios
- Actualiza la URL del repositorio de complementos a: https://repo.jellyfin.org/files/plugin/manifest.json
Después de migrar, realiza los siguientes pasos.
- Ejecuta un escaneo completo de la biblioteca para restaurar las versiones alternativas.
Si encuentras problemas, antepón «[12.0]» a los informes de errores.
Empaquetado
- Ya no se compilan paquetes para Debian Bullseye ni Ubuntu Focal.
Servidor
- Implicaciones de rendimiento de PR #16062
- Estamos ejecutando una comprobación basada en rutas completas en todos los elementos de la biblioteca para limpiar restos. Según el tamaño, esto puede llevar algo de tiempo.
- Las versiones alternativas de medios que se resolvieron automáticamente (no fusionadas manualmente) se eliminarán debido a problemas de tipos de datos → Un escaneo completo de la biblioteca lo corregirá de nuevo y, por lo tanto, es OBLIGATORIO DESPUÉS DE LA ACTUALIZACIÓN.
- El primer escaneo tardará significativamente más de lo normal y algunas películas pueden aparecer como recién agregadas debido a problemas de tipos que se corrigen al escanear.
- Múltiples versiones para episodios.
- Proveedores de similitud y recomendaciones.
- Proveedores de búsqueda, que permiten a los complementos ampliar o reemplazar cómo se producen los resultados de búsqueda.
- Correcciones en SchedulesDirect y en la actualización de EPG.
- Correcciones en el sistema de clasificación parental.
- Poda adecuada de datos al reemplazar o eliminar archivos.
- Soporte para números de episodio de tres o más dígitos.
- Filtrado específico por biblioteca para BoxSet y listas de reproducción, con vistas de colecciones y listas por biblioteca.
- Soporte de
CACHEDIR.tag. - Soporte del encabezado
Accept-Language. - Condición de perfil VideoRotation para televisores Android que no admiten metadatos de rotación.
- Analiza los ID de proveedor desde los nombres de carpetas/archivos de temporada y episodio.
- Permite tmdb, tvdb e imdb como alias de los ID de proveedor tmdbid, tvdbid e imdbid.
- Soporte de llaves y paréntesis para analizar valores de atributos.
- Filtros NameStartsWith y NameLessThan en la búsqueda de personas.
- Nuevos filtros para idiomas de audio y subtítulos.
- OriginalLanguage como opción para PreferredAudioLanguage.
- API de colección para la función «Incluido en».
- Soporte para pistas de subtítulos VobSub.
- Proveedor de episodios faltantes de Tmdb.
Cambios disruptivos y de comportamiento
- Se eliminaron los prefijos de rutas heredadas (
/emby/*y/mediabrowser/*). Los clientes de terceros antiguos que dependan de ellos dejarán de funcionar. - La autorización heredada está deshabilitada de forma predeterminada y una migración la deshabilita también en instalaciones existentes.
- Rutas API obsoletas eliminadas:
POST /Users/{userId}/EasyPassword(la función EasyPassword desapareció),GET /Items/{itemId}/CriticReviews,GET /Environment/NetworkShares,POST /System/MediaEncoder/Path,GET /LiveTv/Recordings/Groups/{groupId}yGET /QuickConnect/Initiate. - La configuración global de subtítulos se ha eliminado; los ajustes de subtítulos se configuran por biblioteca.
.oggya no se trata como extensión de video y es solo audio;.aifcse reconoce como audio y.aiffya no se trata como imagen.- Los enlaces simbólicos solo se resuelven en el momento de la reproducción.
- La ordenación por nombre ahora usa
SortNameyCleanName, y la misma lógica de limpieza se aplica aForcedSortName. El orden de la biblioteca puede cambiar en comparación con 10.11. - Los extremos de imágenes ya no escalan más allá de la resolución de origen, por lo que las ilustraciones de baja resolución se muestran a su tamaño real en lugar de ampliarse.
- Ahora se puede cambiar la capitalización del nombre de usuario. Los nombres de usuario se almacenan en una columna normalizada con un índice único, por lo que las instalaciones con nombres de usuario que solo difieren en mayúsculas/minúsculas deben corregirse antes de actualizar.
Base de datos y rendimiento
- Las listas de reproducción y las colecciones ahora son propiamente relacionales, usando una nueva tabla
LinkedChildrenen lugar de listas serializadas de hijos.OwnerIdyPrimaryVersionIdson claves foráneas GUID reales, yExtraIdsse ha eliminado. - Muchas migraciones de ajuste que cubren recuentos de elementos, nombres de elementos, tipo y nombre limpio, últimos elementos, información de imágenes e ID de versión principal.
- Las rutinas de migración limpian los datos existentes en el primer arranque: se fusionan artistas musicales y personas duplicados, se eliminan extras huérfanos y datos externos, se reparan relaciones de propietario incorrectas y se recalculan nombres limpios, nombres de orden forzado y claves de presentación de series.
- Las tareas pesadas de base de datos ya no se ejecutan mientras hay un escaneo de biblioteca en curso.
- Consultas más rápidas para Reanudar, Siguiente, volver a ver, Últimos elementos para música, listas de reproducción y colecciones, búsqueda de artistas y recuentos de elementos.
- La eliminación de elementos se procesa por lotes, lo que corrige fallos de «demasiadas variables SQL» al eliminar grandes cantidades de elementos.
jellyfin.dbahora se puede almacenar en una ruta personalizada.
Operaciones
- Nuevo indicador de inicio
--modeconMediaServer,MigrateSystemySeedSystem, que permite ejecutar migraciones o sembrar la base de datos sin iniciar el servidor. Esto es útil para despliegues en contenedores y orquestados y para actualizaciones controladas. - La interfaz de inicio se ha rediseñado y ahora muestra información de versión y actividad.
- Los complementos deshabilitados ya no se vuelven a habilitar al reiniciar.
- Las copias de seguridad completas del sistema omiten las filas corruptas de fotogramas clave en lugar de fallar.
Medios y subtítulos
- La escritura de subtítulos ahora pasa por SubtitleEdit, lo que evita la conversión de SSA a ASS y la pérdida de estilos.
- Los subtítulos externos se pueden incrustar en MKV al transcodificar.
- El tiempo de espera de extracción de subtítulos ahora es configurable.
- Se permiten subtítulos gráficos renderizados por el cliente durante el remux.
- Correcciones para condiciones de carrera en la conversión concurrente de subtítulos, invalidación de caché al reemplazar un subtítulo y cuelgues de ffmpeg durante la extracción.
- Nueva opción de configuración
HlsAudioSeekStrategy. - Trickplay: los archivos existentes se descubren durante un escaneo, se corrigen duplicados de video entrelazado, se normalizan valores PTS no válidos de contenedores y se limpia la caché tras un fallo.
Televisión en vivo
- La TV en vivo ya no devuelve a los clientes URL de transmisión «locales del servidor» inaccesibles.
- Ahora se importan las imágenes de fondo y las miniaturas de episodios de XMLTV.
- Las importaciones de guías XMLTV omiten programas cuyos datos no han cambiado, usando un ETag calculado a partir de los campos que el servidor realmente consume, lo que hace que las actualizaciones repetidas de la guía sean considerablemente más baratas. Otros proveedores de listados permanecen en la ruta de actualización campo por campo existente.
Metadatos y proveedores
- ListenBrainz ahora se incluye con el servidor y proporciona datos de artistas similares con un algoritmo de similitud seleccionable.
- Se admiten ID de proveedor de TVDB para películas.
- Búsqueda de artistas en AudioDb.
- Se analiza la ganancia de álbum de ReplayGain.
- Las búsquedas en MusicBrainz son más resistentes.
- Las etiquetas de lanzamiento WEB-DL se reconocen en los nombres de archivo.
- Los números con guiones en los títulos de episodios ya no se analizan como archivos multi-episodio.
- La detección de formato 3D funciona cuando la etiqueta es el último token de la ruta.
- Las actualizaciones de metadatos de personas se ponen en cola en lugar de bloquear la solicitud.
Transcodificador
- Nueva versión superior de FFmpeg 8.1.
- Rendimiento optimizado del filtro de transposición CUDA.
- Rendimiento optimizado del filtro de escalado OCL.
- Rendimiento optimizado del filtro de mapeo tonal OCL en GPU Mali.
- Usa EOTF del método B de BT 2446 para el mapeo tonal HLG.
- Corrige una posible desincronización A/V en HLS al transcodificar video y remuxar audio.
- Evita la conversión de SSA a ASS y la pérdida de estilos.
- Añade variante HLS dvh1 compatible con la especificación para DoVi P5 por compatibilidad.
Web
- El diseño Moderno ahora es el predeterminado; el diseño anterior ahora se llama Legacy.
- Vista actualizada de Vídeos musicales.
- Vista actualizada de Medios mixtos.
- Vista actualizada de Colecciones y listas de reproducción.
- Vista actualizada de Libros.
- Añade aviso de «¿Sigues viendo?».
- Añade ajuste de retardo para la presentación de diapositivas de fotos.
- Añade almacenamiento en caché de consultas en indexed db para el cliente de consultas tanstack y mejora el rendimiento de carga.
- Añade función de vigilancia al visor de registros.
- Añade
,y.como controles para avanzar/retroceder fotograma a fotograma. - Añade filtros para idiomas de audio y subtítulos (solo diseño moderno).
- Añade pestaña de Colecciones y listas de reproducción a todas las bibliotecas.
- Añade colecciones a la página de detalles del elemento.
- Sustituye libpgs por libbitsub y añade soporte para renderizado de vobsub.
- Fusiona tarjetas de equipo para personal con múltiples roles.
Diseño y temas
- Todos los temas ahora derivan de un tema base compartido construido sobre variables CSS, incluidos Dark, Light, WMC, Blue Radiance, Apple TV y Purple Haze. Es posible que los temas personalizados necesiten ajustes.
- La barra de herramientas de la biblioteca se ha fusionado con la barra de aplicaciones, con un encabezado de biblioteca fijo y pulido de diseño en toda la biblioteca.
- Se pueden añadir enlaces personalizados al diseño Moderno.
- El ajuste de tiempo del salvapantallas ahora está disponible en el diseño Moderno.
Bibliotecas y navegación
- Pestañas de colecciones y carpetas para bibliotecas de libros, y una vista de carpetas en el diseño moderno de vídeos caseros.
- Opciones de pestaña predeterminadas para bibliotecas de Vídeos caseros y Fotos.
- Búsqueda de estudios y una pestaña ampliada de Estudios.
- Botones Reproducir todo y Aleatorio en la biblioteca de series. Ambos se deshabilitan en lugar de ocultarse cuando no hay elementos disponibles.
- Vista Mejorada de Próximos.
- Ordenación y filtrado en la página de Actividad.
- Botón Restablecer filtros en el menú desplegable de filtros.
- Las carpetas se pueden marcar como reproducidas.
- Los creadores de programas de TV se muestran en los detalles del elemento.
- Los proveedores de similitud se pueden configurar por biblioteca.
- Los controles de paginación se ocultan cuando la paginación está deshabilitada.
Reproducción
- La superposición de información de reproducción es más compacta y muestra más detalles.
- Los nombres de capítulos se muestran en la burbuja del control deslizante OSD.
- La detección de tasa de bits ahora se ejecuta en la web.
- Dolby Vision en MKV en webOS 25 y versiones posteriores.
- Copia de flujo AV1 fMP4 en clientes de TV.
- Reproducción directa de video anamórfico en Tizen y restricciones anamórficas relajadas para perfiles de dispositivo de navegador.
- En iOS, la reproducción en segundo plano continúa cuando la pantalla está apagada y la normalización de audio se deshabilita para corregir problemas de tono y velocidad.
- libbitsub actualizado a v1.11.0 con una corrección de desplazamiento HLS.
- El salvapantallas se suprime al ver fotos o leer.
TV y control remoto
- Correcciones de navegación con gamepad y la tasa de repetición del gamepad ya no está ligada a la tasa de fotogramas.
- Los controles de teclado funcionan en distribuciones de teclado no latinas, con correcciones adicionales para navegadores antiguos.
- Se gestionan los comandos de estado de reproducción Rebobinar y Avance rápido.
- Actualización del menú de SyncPlay y el ping de SyncPlay ahora se informa al servidor.
- Estilo de casillas de verificación enfocadas y marcadas en el diseño de TV.
Bajo el capó
- Los WebSockets se han migrado a suscripciones SDK.
- La migración a React y TypeScript continúa con las páginas de bibliotecas, TV en vivo y redes, y las páginas de usuario del panel ahora usan el SDK de TS.
- TanStack Query ahora respalda la configuración de usuario y las secciones de la pantalla de inicio, y la caché de consultas se limpia cuando el servidor se reinicia.
Correcciones notables
- Imágenes de tarjetas borrosas en pantallas de alto DPI, y los tamaños de las imágenes de tarjetas se redondean hacia arriba.
- Conexiones
/socketduplicadas. - Bucle de inicio de sesión, conexión al servidor equivocado cuando hay varios configurados y selección de servidor en shell nativo al cerrar sesión.
- Una solicitud no válida de todos los elementos al cargar la página.
- La pestaña de destino predeterminada de TV en vivo.
- Mantener y arrastrar sobre medios ya no activa la selección múltiple.
- Se muestra una advertencia antes de restaurar una versión, se muestra una advertencia al iniciar una copia de seguridad mientras un escaneo está en ejecución y un escaneo de biblioteca comienza automáticamente cuando se añaden carpetas a una biblioteca.
Seguridad
Servidor:
- Se ha añadido validación de rutas a los extremos heredados de segmentos HLS y al extremo de imágenes de complementos, de modo que un archivo solicitado debe resolverse dentro del directorio de transcodificación.
- El endurecimiento contra path traversal se ha extendido a los extremos de imágenes y complementos y al manejo de rutas de nombre de usuario, basándose en las correcciones publicadas en 10.11.x.
- El asistente de inicio ya no se puede volver a ejecutar sin autenticación en un servidor mal configurado.
- El instalador de complementos rechaza nombres de paquetes de complementos inseguros.
- Se aplica filtrado parental en extremos adicionales, se ha corregido la visibilidad de listas de reproducción, se ha corregido el acceso de no administradores a partes adicionales y las personas están exentas de la comprobación de visibilidad de etiquetas permitidas.
Web:
- Secuencias de comandos entre sitios a través de roles de persona.
- Los parámetros de autenticación se codifican al crear clientes API.
- El aviso legal de inicio de sesión solo permite esquemas de protocolo de enlace comunes.
Libros
Los libros a menudo han quedado en segundo plano en favor de la reproducción de video en Jellyfin, pero esto ya no debería ser así.
Hemos iniciado un esfuerzo concertado para mejorar el soporte de libros en toda la API y en nuestros clientes oficiales.
El soporte de libros electrónicos y cómics aún está madurando, pero el complemento ODPS permite el acceso directo desde una amplia gama de programas autoalojados populares.
En consecuencia, las contribuciones en cualquier repositorio son muy bienvenidas de la comunidad en general.
Eso incluye mejoras del servidor, cambios en la documentación y clientes de terceros para la reproducción de libros.
Una combinación de soporte de libros electrónicos, cómics y audiolibros está disponible en los siguientes clientes.
Oficiales: Web, iOS, Android, Desktop, Roku, Kodi, JMP
Comunitarios: JellyBook, Symfonium, Jellium, Plappa
Una omisión notable del servidor son las series de libros como entidades únicas, que no entraron en esta versión.
Si deseas cubrir el hueco hasta que se añadan, puedes usar el complemento Folio para mostrarlas como colecciones.
Funciona de manera muy similar al complemento TMDb Box Sets, pero solo se aplica a libros electrónicos.
Otra función en desarrollo son los capítulos de audiolibros, que actualmente solo están disponibles desde la API.
Afortunadamente, esto significa que el soporte en clientes ya es posible, por lo que deberías verlos aparecer en tu cliente de audiolibros favorito antes de la próxima versión del servidor.
NOTA: El complemento Bookshelf ha quedado obsoleto y sus funciones se han fusionado en el servidor o extraído a los proveedores ComicVine y GoogleBooks.
Cambios en el servidor
- Bookshelf se ha dividido en proveedores separados de GoogleBooks y ComicVine.
- El análisis local de libros se ha mejorado y está disponible sin complementos
- Los metadatos del libro se extraen directamente de archivos OPF y ComicInfo o comentarios ComicBookInfo.
- Ahora se admiten portadas externas para archivos de audiolibros.
- Se generan pósteres para EPUB y todos los archivos de cómics compatibles.
- Nombre, índice, año y serie se analizan de los nombres de archivo de libros.
- Tanto el volumen como el capítulo estarán disponibles en la API cuando estén presentes en los nombres de archivo de cómics.
- Los recuentos de páginas se extraen de archivos de cómics y PDF.
- Los nombres de creadores de datos OPF se normalizan a un formato común.
- Se ha creado un nuevo complemento OpenLibrary para metadatos e imágenes.
- Se admiten ID externos ISBN y enlaces.
- Ahora se extraen capítulos de audiolibros.
Cambios en Web
- Se ha añadido un diseño de biblioteca de libros moderno con tipos de vista y paginación.
- Los libros muestran información sobre sus autores y viceversa.
- La interfaz de reproducción se ha rediseñado y estandarizado para todos los tipos de libros.
- El indicador de progreso se habilita de nuevo para libros electrónicos compatibles.
- Ordenar libros por número de índice, fecha de lanzamiento, etc. ya está disponible.
- Se ha mejorado la selección del tamaño de fuente para archivos EPUB.
- La reproducción de audiolibros en segundo plano funciona en dispositivos iOS.
- Se han añadido pestañas de autores, colecciones y carpetas a las bibliotecas de libros, y los audiolibros aparecen bajo autores.
- El comportamiento a pantalla completa se unifica en todos los reproductores de libros y los PDF admiten navegación por deslizamiento.
Desarrolladores
Cambios en la API
La API ya no permite el uso de mecanismos de autorización obsoletos por defecto.
Los clientes y las herramientas deben migrar si aún no lo han hecho. Consulta #15559 para más detalles.
Ha habido otros cambios en las bibliotecas SDK y la API como parte de un esfuerzo continuo para documentar mejor la API para uso de clientes.
Ten en cuenta lo siguiente con respecto al soporte de la API.
Se añadirá una explicación completa de nuestra política de cambios de API a la documentación para desarrolladores en los próximos meses.
- Si un extremo no aparece en la especificación OpenAPI, los clientes no deben usarlo.
- Hay ciertos extremos que todavía se exponen por razones heredadas a pesar de estar excluidos de la especificación OpenAPI.
- Estos pueden eliminarse en cualquier versión principal sin previo aviso.
- Si un extremo o parámetro está marcado como obsoleto en la especificación OpenAPI, los clientes no deben usarlo.
- Misma explicación que arriba.
- Como regla general, cualquier obsolescencia se marcará como tal durante todo un ciclo de lanzamiento (principal) antes de que el extremo o parámetro obsoleto sea susceptible de eliminación.
Cambios de comportamiento que los clientes deben conocer:
GetItemsahora es asíncrono y aplicarecursivecuando se solicitan filtros, limitado a solicitudes que incluyenincludeItemTypes. La misma consulta puede devolver un conjunto de resultados diferente al que devolvía en 10.11.- Las respuestas de
ItemByNameestán restringidas y las personas se deduplican. - Recientemente obsoletos pero aún funcionales, con reemplazos:
GetTrailers-> usaGetItemsconincludeItemTypes=TrailerGetArtistsyGetAlbumArtists-> usaGetPersonsGetArtistByName-> usaGetPersonGetMusicGenre-> usaGetGenreGetInstantMixFromMusicGenreByIdyGetInstantMixFromMusicGenreByName-> usaGetInstantMixFromItemGetStartupConfiguration,UpdateInitialConfigurationySetRemoteAccess-> usa los extremos de configuraciónGetRecordingsSeriesUserDto.HasPasswordestá marcado como obsoleto y ya no proporciona información útil.
- Los controladores HLS están ocultos de la especificación.
Plataforma
- El servidor ahora apunta a .NET 10. Los complementos deben reorientarse y reconstruirse.
- Swashbuckle se ha actualizado a v10, lo que cambia el documento OpenAPI generado, por lo que los SDK deben regenerarse.
- jellyfin-web ahora se compila con Node 24 LTS y npm 11.
Cambios en complementos
ISearchEngineha sido reemplazado porISearchManager, ySearchEngineha sido reemplazado porSearchManagerjunto conSqlSearchProvider.- Eliminados:
NowPlayingQueueFullItems,DtoExtensions.AddClientFields,Jellyfin.Extensions.AlphanumericComparator, la familiaISubtitleWriterde escritores de subtítulos ySubtitleOptionsconSubtitleConfigurationFactory. ServerConfiguration.EncoderPresetya no es anulable.- Se ha eliminado
IAuthenticationProvider.HasPassword. IPasswordResetProvider.StartForgotPasswordProcessrecibe el nombre de usuario introducido y un usuario anulable.IUserManager: las propiedadesUsersyUsersIdsahora son los métodosGetUsersyGetUsersIds, yRenameUser,ResetPasswordyChangePasswordtoman un ID de usuario en lugar de unUser. Se ha añadidoGetFirstUser.- Varios miembros de
IItemRepositoryse movieron a los nuevos servicios: guardado y eliminación de elementos yUpdateInheritedValuesaIItemPersistenceService, recuentos aIItemCountServicey claves de series Next Up aINextUpService. IPeopleRepository.GetPeopleyILibraryManager.GetPeopleItemsdevuelven unQueryResult, yIDtoService.GetBaseItemDtosyILibraryManager.DeleteItemsUnsafeFasttienen nuevas firmas.IDirectoryService.GetFilePathsya no toma un argumentosort, y los getters de rutas de subtítulos y adjuntos deIPathManagerahora son anulables.
Nuevas API para complementos
Esta versión añade varios puntos de extensión a los que los complementos no podían engancharse antes.
- Proveedores de búsqueda. Los complementos ahora pueden participar en la búsqueda misma en lugar de solo en la búsqueda de metadatos.
ISearchProviderexponeName,Type,PriorityyCanSearch(SearchProviderQuery), conIInternalSearchProviderpara proveedores que buscan en la biblioteca local yIExternalSearchProviderpara proveedores que transmiten elementosSearchResultdesde un servicio remoto. Los proveedores se registran a través deISearchManager.AddPartsy se consultan en orden de prioridad, por lo que un complemento puede ampliar o asumir el control delSqlSearchProviderintegrado. - Proveedores de similitud y recomendaciones.
ISimilarItemsProviderse divide heredado porILocalSimilarItemsProvider,IRemoteSimilarItemsProvideryIBatchLocalSimilarItemsProvider, cada uno con una variante genérica para que un proveedor pueda declarar el tipo de elemento que maneja. Los proveedores se seleccionan y ordenan por biblioteca a través deLibraryOptions.SimilarItemProvidersySimilarItemProviderOrder, yISimilarItemsManagertambién extrae recomendaciones de películas. El proveedor ListenBrainz incluido se basa en esto. - Proveedores de metadatos de cómics.
IComicProvider(ReadMetadatayHasItemChanged) permite que un complemento suministre metadatos de cómics junto con los lectores integrados ComicInfo y ComicBookInfo. - Capítulos para cualquier tipo de elemento.
IChapterManager.SaveChaptersahora toma unBaseItemen lugar de unVideo, y ganó una comprobaciónSupports(BaseItem). Esto es lo que hace posibles los capítulos de audiolibros y permite que los complementos guarden capítulos para elementos que no son de video. - Restablecimiento de contraseñas para usuarios desconocidos.
IPasswordResetProvider.StartForgotPasswordProcessahora recibe el nombre de usuario introducido junto con un usuario anulable, de modo que un proveedor puede gestionar una solicitud para un nombre de usuario que el servidor no conoce o derivar el restablecimiento a un proveedor externo. - Limpieza de segmentos de medios.
IMediaSegmentProvider.CleanupExtractedDatase llama cuando se podan los datos de un elemento, de modo que los proveedores de segmentos puedan eliminar sus propios archivos extraídos. - Schedules Direct.
ISchedulesDirectServiceexpone los países disponibles, la disponibilidad del servicio y el estado del límite diario de imágenes, de modo que los complementos de TV en vivo ya no necesiten reimplementarlos.ITunerHostManager.DeleteTunerHostpermite eliminar un sintonizador. - Versiones alternativas y hijos vinculados. Ahora que los hijos vinculados son relacionales,
ILibraryManagerexponeResolveAlternateVersion,GetLocalAlternateVersionIds,GetLinkedAlternateVersions,GetItemIdsWithAlternateVersionsyUpsertLinkedChild. Los complementos que manipulaban enlaces de versión a través de datos de elementos serializados deben migrar a estos. - API por lotes para trabajo masivo.
IUserDataManagerganóGetUserDataBatch,GetResumeUserData,GetResumeUserDataBatchyResetPlaybackStreamSelections.ILibraryManagerganóGetPeopleByItems,GetPeopleNamesByItemsyGetNextUpEpisodesBatch.IItemCountServiceofrece recuentos por lotes de hijos y reproducidos/totales. - Localización.
ILocalizationManager.GetServerLocalizedStringyGetLanguageDisplayNamepermiten a los complementos localizar según la configuración regional del servidor. ICollectionManager.GetCollectionsContainingItemrespalda la función «Incluido en», yIPlaylistManager.AddItemToPlaylistAsynctoma una posición para que los elementos se puedan insertar al principio de una lista de reproducción.
IHasEmbeddedImage también es nuevo, pero solo es para complementos compilados en el servidor; los complementos externos deben seguir declarando su imagen con imagePath en meta.json.
Configuración TLS
En las notas de la versión anterior 10.11.0 anunciamos la obsolescencia del manejo de certificados TLS integrado para esta versión. Este cambio se ha pospuesto a una versión futura.
Discute este lanzamiento más a fondo en nuestros foros.
Registro de cambios (460)
Esta versión incluye una amplia gama de mejoras y correcciones. En seguridad, se ha solucionado una posible inyección de argumentos en FFmpeg a través de rutas de subtítulos no escapadas. Entre los aspectos más destacados se encuentran la implementación de múltiples versiones para episodios y la desactivación predeterminada de los métodos de autorización heredados.
Las mejoras generales abarcan correcciones en recomendaciones de películas, eliminación de dispositivos por lotes, alias de ID de proveedor, correcciones de EPG, soporte de CACHEDIR.tag, eliminación de la configuración global de subtítulos, normalización de puntuación en CleanName, reorganización de la lógica de URL de subtítulos, correcciones en la reproducción de Blu-ray multiángulo, recuentos de elementos expuestos optimizados, descarga solo de imágenes de complementos faltantes, aplicación directa del núcleo de nitidez de redimensionamiento, estado reproducido compartido entre versiones alternativas, mejor manejo de tiempos de espera en operaciones de complementos, verificación de transferencia Dolby Vision, corrección de pérdida de elementos en la cola de actualización, manejo de NFO multi-episodio desordenados, optimización de base de datos tras migraciones, limitación de lotes de cambios durante escaneos, corrección de subtítulos PGS para BDMV con TrueHD, sondeo de .idx en lugar de .sub para detección de idioma VobSub, descarte de solicitudes SyncPlay de sesiones que abandonaron el grupo, corrección de reproducción HLS de TV en vivo, corrección de bloqueos de SyncPlay, registro integral para tareas posteriores al escaneo, corrección de bloqueos de interfaz por grandes conjuntos de etiquetas y géneros, limitación de caché de respuestas TMDb, retorno elegante de fuentes de respaldo faltantes, corrección de la creación y eliminación de validadores de personas y artistas, registro de progreso en migraciones de datos, procesamiento confiable en PeopleValidationTask, manejo recursivo de LinkedChildren, corrección de configuración de ListenBrainz, recuentos de elementos en extremos por nombre, aplicación de permisos en elementos similares, filtrado de candidatos de búsqueda por acceso de usuario en una sola consulta, soporte de ID de proveedor de anime en carpetas de temporada, recuento de episodios por temporada, corrección de ParentId en temporadas virtuales, persistencia del sello de actualización para tareas de personas, corrección de recuento de hijos en elementos virtuales, eliminación de créditos sin mapeo, construcción de reparto de series TMDb, no derivar ID de vista de usuario de nombres localizados, corrección de ordenación IsPlayed/IsUnplayed, registro de imagen y elemento fallidos, corrección de manejo de personas en OMDB, obtención de metadatos de personas bajo demanda, corrección de fusión de series que se filtra entre bibliotecas, corrección de bloqueo de metadatos en inglés frente a proveedores localizados, búsqueda de personas por elemento mediante mapa de créditos, marcado de breakOnNonKeyFrames como XMLIgnore, respaldo al filtro ancestro, salvaguarda contra ID de proveedor no válidos, optimización de memoria de helpers de consulta, reproducción directa para sintonizadores HDHomeRun, corrección de últimos elementos en bibliotecas mixtas, prevención de permisos huérfanos en actualizaciones de usuario, búsqueda MusicBrainz más resistente, uso de posición informada por cliente para limpieza de reproducción inactiva, corrección de límite de variables SQLite en lotes de recuento de hijos, persistencia de listas grandes con WhereOneOrMany, reconocimiento de etiquetas WEB-DL, corrección de búsqueda de artistas, corrección de derivas del diseñador EF Core, eventos ItemRemoved faltantes, filtrado de PersonTypes, corrección de build maestro, ensamblados, procesamiento por lotes de MediaSourceCount, limitación de paginación de proveedores remotos, negación IsAiring, evitar escalado de imágenes más allá de la resolución de origen, limpieza de helpers de consulta, advertencia sobre PessimisticLockBehavior inseguro, búsqueda por lotes de personas al construir DTO, desambiguación de claves de caché de superposición de progreso, TotalRecordCount en extremos por nombre, limpieza de caché de proveedores de metadatos, eliminación masiva de información relacionada, complementos deshabilitados no re-habilitados, excepciones Execute capturadas, aceleración de UpdateOrInsertItems, cambio de caché de conexión SQLite a privada, corrección de carrera de segmentos ffmpeg concurrentes, análisis de ganancia de álbum ReplayGain, deduplicación de personas, transcodificación PCM a wav, reversión de actualización de iconos de canales de TV en vivo, mantenimiento de extras de carpeta con el elemento propietario, solo series y temporadas como carpetas reanudables, degradación de registros ForceKeepAlive, nomenclatura de extras, subtítulos gráficos renderizados por cliente durante remux, uso de CleanName en ordenación, corrección de AdjacentTo, lectura de enlaces de versión desde LinkedChildren, corrección de URL inaccesibles de TV en vivo, proveedor de episodios faltantes de Tmdb, información de almacenamiento en Windows, omisión de SIDX en segmentos fMP4 HLS, corrección de filtros (No)Reproducido, puesta en cola de actualización de metadatos de personas, reevaluación de migraciones pendientes, duplicados de LinkedChildren en listas, búsqueda de artistas en AudioDb, detección 3D, pósteres de carpetas de colección, fusión de series, reducción de subconsultas correlacionadas, números con guiones en títulos de episodios, año incorrecto en tráilers locales, eliminación de ogg de extensiones de video, NRE en ordenación por claves dependientes de usuario sin usuario, omisión de análisis ComicInfo si no existe, índice de cola de reproducción en SyncPlay, limpieza de ForcedSortName, verificación de etiqueta name para audio/subtítulos en MP4, drenaje concurrente de stderr/stdout para validación de codificador, coincidencia de perfiles VobSub MKS por contenedor, mejora de filtros de idioma, actualización parcial de UpdateItem, prevención de re-ejecución no autenticada del asistente de inicio, truncamiento de nombres de idioma ISO-639-2, codificación de subtítulos locales, correcciones de path traversal, omisión de filas KeyframeData corruptas en copias de seguridad, exención de personas de comprobación de etiquetas permitidas, extracción de recuento de páginas de archivos y PDF, omisión de reprocesamiento de información de programas XMLTV, limpieza de imagen de perfil temporal, fila correcta para archivo más actualizado, condición de carrera en conversión de subtítulos concurrente, RequestHelpers.GetOrderBy genérico, alias de atributos adicionales, reconocimiento de límite de imágenes SchedulesDirect, ordenación de tráilers para programas de TV, soporte de ID TVDB para películas, visualización de artistas con álbumes, eliminación de comprobación libpostproc, normalización de nombres de creadores OPF, sincronización de entidad de usuario autenticado con marcas de tiempo de inicio de sesión, normalización de PTS no válidos para Trickplay, rendimiento de consulta Resume, documentación XML en interfaces, corrección de Swagger UI auth docs, prevención de cuelgue de ffmpeg al extraer subtítulos, mostrar compañías productoras bajo estudios de TV, texto ilegible en registros FFmpeg en Windows, eliminación de PlaybackPositionTicks de MediaSourceInfo, negociación de formato en tubería híbrida SW/CUDA, corrección de Identify devolviendo imágenes incorrectas, actualización de SeriesName al renombrar serie, eliminación de hack de anulación de imagen de episodio, exposición de path traversal en complementos, reversión de BaseItemKind predeterminado para CollectionType, documentación XML en tipos de canal/sesión/DLNA/proveedor/DeviceId, limitación de elementos similares a bibliotecas accesibles, corrección de intentos máximos de inicio de sesión, mapeo de trabajo Novel al departamento de escritura, edición de SeriesName en metadatos de libros, partes adicionales para no administradores, protocolo incorrecto en detección de charset de subtítulos, comprobación de valor numérico de clasificación tras dividir código de país, imágenes externas para audiolibros, clasificaciones parentales de Grecia, imágenes de actores no mostradas hasta hacer clic, no lanzar en logout si la sesión no existe, InvariantCulture en fechas generadas por máquina, manejo de múltiples versiones, clasificación parental para entradas con múltiples clasificaciones, entradas fantasma al eliminar rutas de biblioteca, cambio de capitalización de nombres de usuario, vista de carpetas, cierre de sesiones por WebSockets perdidos, clasificación sueca, NullReferenceException en GetStreamingState, Enumerable.LeftJoin en consulta de registro de actividad, rediseño de informe de tasa de bits, problemas de velocidad en colecciones de libros, eliminación por lotes en migraciones de fusión, personas huérfanas, rechazo de nombres de paquetes inseguros, Convert.ToHexStringLower para hash de contraseña Schedules Direct, re-obtención de iconos de canales en actualización de guía, interfaz de inicio renovada, búsqueda de localización, letras incrustadas no actualizadas en reemplazo total, liberación de sintonizador de TV en vivo, no ejecutar tareas pesadas de BD durante escaneo, registro de complemento de cómic local, demasiadas variables SQL en DeleteItem, Identify devolviendo resultados incorrectos, tasa de muestreo de audio forzada a 48 kHz, obsolescencia de /Trailers, omisión de carpetas raíz en SeriesResolver, eliminación de medios en SyncPlay, año de serie perdido en análisis de nombre, desplazamiento de fecha de emisión de episodio, mejores prácticas de interoperabilidad nativa, mejora de resolución de libros desde nombre de archivo, informe extendido de TranscodingReason, aplicación de recursivo cuando se solicitan filtros, obtención de creadores de TV desde TMDB, reemplazo de SharpCompress, filtrado de AlbumIds por ID, imágenes de fondo y miniaturas de episodios XMLTV, descripción de álbum AudioDb en inglés, colisión de clave duplicada, asignación de temporada correcta a nuevos episodios, refresco de CleanName y CleanValue, imágenes trickplay duplicadas para videos entrelazados, migración de proveedores de cómics locales, sección de asistencia de código en plantilla PR, preferencia de versiones alternativas locales al deduplicar hijos vinculados, correcciones de manejo de fuentes de medios, actualización de imagen de canal de TV en vivo al reasignar, implementación de proveedores de búsqueda, imagen principal de PlaylistsFolder, xUnit1051, versión de plantilla de issue, descubrimiento de archivos trickplay existentes, poda de datos externos al eliminar elemento, invalidación de caché al reemplazar subtítulo, visibilidad de listas de reproducción, filtrado parental en extremos adicionales, preferencia de extensión de subtítulo sobre códec, etiquetador de conflictos de fusión, temporada desconocida para estructuras de TV planas, EncoderPreset no anulable, recursivo solo con includeItemTypes, extracción de adjuntos en un solo comando ffmpeg, capacidad de lista incorrecta, recorte de etiquetas, enlaces y pósteres de episodios recién añadidos, escritura de subtítulos con SubtitleEdit, re-desactivación de autorización heredada, resolución de enlaces simbólicos solo en reproducción, carpetas identificadas como temporadas en bibliotecas mixtas, códigos de error de Schedules Direct, corrección de similitud, artistas inaccesibles en múltiples bibliotecas, soporte VobSub, comparación byte a byte de archivos antiguos, eliminación de NowPlayingQueueFullItems, ConfigureAwait en CollectionController, advertencias CA2007, API de colección para Included In, nuevas opciones de viewtypes, etiquetador de conflictos, desincronización A/V al reanudar HLS con transcodificación de video y copia de audio, normalización de OriginalLanguage, versión de plantilla 10.11.10, extradata inconsistente de hevc_vaapi en AMD, cotejo de UserManager, supresión de advertencia PriorityClass repetida, versión de plantilla 10.11.9, filtrado de listas por parentId, etiquetador de conflictos, comprobación de formato CI, reordenación de migraciones, filtrado de boxsets por parentId, visualización de versión moderna, imágenes de proveedores integrados, instalación de keyring en devcontainer, incrustación de subtítulos externos en MKV, escritura de dateadded UTC en NFO de grabaciones, misceláneos, verificación nula en GetProgram, advertencias CA1819, calificación máxima de splashscreen, nuevos filtros de idiomas, proveedores de similitud, soporte Accept-Language, registro de fallos de concurrencia de sesión, retorno de artistas musicales desde extremos de personas, referencia .NET correcta en README, consolidación de categorías OpenAPI, salvaguarda contra GUID no válidos, uso de SortName en ordenación, supresión de falso positivo CA2213, advertencia sobre subredes no válidas, condición de perfil videoRotation, duplicados de artistas, IOException con URLs STRM HTTP, configuración de proveedores de segmentos, advertencias CA1051/CA1815, OriginalLanguage como opción, nuevo esquema de versiones, exclusión de tipo de persona en respuesta API, prueba MusicBrainz, análisis de ID de proveedor desde carpetas/archivos, clasificación canadiense y respaldo a no clasificado, fuga de consumidor de transmisión en vivo, modo de inicio para migrar/sembrar BD, eliminación de DigitalOcean de patrocinadores, omisión de directorios de temporada sin video, actualización de clasificaciones comunitarias tras cambiar .nfo, respuesta única de personas sin ID, ruta de guardado de subtítulos, cliente de consulta MusicBrainz a instancia de complemento, UserManager tras refactor EF Core, nombre de archivo en excepciones de DeserializeFromFile, traducciones eslovaca y checa de temporada, eliminación de ToList innecesarios, consulta de rewatch, aceleración de LatestItems para música, protección contra sobrescritura nula de selecciones de pistas, uso de List.Sort no seguro para hilos, mantenimiento de autorización heredada habilitada, manejo de capítulos ficticios, temporada NFO en fusión de metadatos, sobreimpulso de duración de fotogramas clave, almacenamiento en caché de reglas de ignorar, rendimiento de consulta/guardado/recuento de listas y boxsets, TotalRecordCount de personas con límite, números de episodio de tres dígitos, descarga de subtítulos considerando flujos internos, mejoras de rendimiento de consultas, capítulos de audiolibros, evitar conversión SSA a ASS, longitudes simétricas de salto, ocultar controladores HLS, prefijos IPv6 como proxy, categorización de extremos OpenAPI, restablecimiento de estado visto al volver a ver, actualización a xunit v3, image/jpg en búsqueda MIME, eliminación de contribuyentes de Emby, omisión de bibliotecas sin proveedores de subtítulos, ruta de elemento en registro de errores de proveedor, ruta personalizada de jellyfin.db, actualización a Jellyfin.XmlTv 10.12.0-pre1, IsLive en XmlTvProgram, comprobación de permiso de renombrado, Tanzania countries.json, nombres de biblioteca sin espacios extremos, retención de subtítulos que abarcan límites de segmentos HLS, concesión de permisos CI, metadatos de artista no obtenidos en escaneo inicial, reinicio en proceso, filtros NameStartsWith y NameLessThan, respeto de EnableSubtitleExtraction, visualización de idiomas ISO 639-2, mapeo tonal HDR para BDMV, FolderStorageInfo con sistema de archivos padre, no saturar registro de depuración con elementos sin clasificación, backport de correcciones de seguridad, versión de plantilla 10.11.8, parentId de BoxSet ignorado, comprobación de pista cambiada inversa, campo AlbumNormalizationGain, StartIndex y ParentId en búsqueda de personas, edición de archivos OpenAPI con sed, flujo de trabajo OpenAPI no válido, clasificaciones parentales en álbumes de música, descubrimiento automático UDP devolviendo IPv6 para solicitudes IPv4 entre subredes, flujos de trabajo de informe y publicación OpenAPI, versión de plantilla 10.11.7, devolución de llamada para poda de segmentos, eliminación de directorio anidado OpenAPI, limpieza de caché trickplay en fallo, IsAvc solo para video, división de flujos de trabajo OpenAPI, separadores de subrayado y punto para agrupación multi-versión, límite de GetVideoBitrateParamValue a 400 Mbps, patrones de ignorar para archivos de muestra húngaros, manejo robusto de fechas en migración de BD, extracción de adjuntos sin flujo de video/audio, variante HLS dvh1 para Dolby Vision P5, truncamiento de nombre de archivo con etiquetas entre corchetes, fallos en dispositivos sin IPv6, desbordamiento int32 en QSV, reconocimiento de formatos de audiolibro .m4b/.m4a/.aac/.flac/.mp3/.opus, inclusión de ID externos y URLs para proveedores de libros, prioridad de idioma de imagen remota, código de país de biblioteca para clasificaciones parentales, sobrecargas genéricas Enum para advertencias CA2263, BadRequest con filtros no válidos, comprobaciones de tipo ItemValues, ProducesResponseType(401) en QuickConnect, valores SAR casi 1:1 como anamórficos, imágenes de artistas para miniatura de biblioteca musical, soporte AIFF para .aifc y .aiff, actualización de logo JetBrains, revisión de nota sobre alojamiento de cliente web para desarrollo, cadena de consulta mal formada en StreamInfo.ToUrl, actualización Swashbuckle v10, mitigación de escalada de privilegios pull_request_target, episodios en Temporada desconocida, campo ProductionYear en TmdbSeriesProvider, opción moveToTop en IPlaylistManager, artista Kairon; IRSE! en lista blanca, corrección de contenedor, recorte de nombres y roles de personas, omisión de validación para preferencias de destino vacías, soporte de llaves y paréntesis en análisis de valores de atributos, manejo de idioma TMDB con códigos completos ISO 639-1 + ISO 3166-1, CA1849 en EpubImageProvider, eliminación de miembros API obsoletos, registro de inicio de reproducción en SessionManager, extracción de metadatos locales de OPF y EPUB, prevención de eliminación prematura de flujos de subtítulos HTTP, versión de plantilla 10.11.6, erratas en documentación XML, visualización de idioma de subtítulos zh-CN, actualización a .NET 10.0, refactorización de búsqueda en transcodificación HLS, manejo de tipos de elemento desconocidos, códigos TrueHD y DTS para HLS, KeyNotFoundException en CryptographyProvider sin iteraciones, flujo de trabajo de diferencias API, optimización de StringHelper.FirstToUpper, actualización Swashbuckle y corrección de spec OpenAPI, compatibilidad ABI, ContentTypeOptions de MetadataEditor, adición a CONTRIBUTORS, ordenación múltiple en ActivityManager, versión de plantilla 10.11.5, asincronía en SaveImages, análisis de más información de nombres de archivo de libros, optimización de GetUniqueFlags, eliminación de middleware de rutas API heredadas, fijación de SkiaSharp, evitar Take(0) con Limit 0, errata en CheckOrCreateMarker, ordenación y filtrado de entradas de registro de actividad, limpieza de bloqueos, episodios en programas añadidos recientemente, opción de tiempo de espera de extracción de subtítulos, CPU en plantilla de issue, eliminación de comportamiento especial de cliente para campos de respuesta API, milisegundos en formato de salida de consola, análisis de series de TV solo numéricas, soporte de más etiquetas de metadatos incrustados, obsolescencia de HasPassword, versión en StartupUI, todas las versiones 10.11 en plantilla de issue, actualización de versión en plantilla, CODEOWNERS para bump_version.
En general, esta versión se centra en madurar la base de datos y las API, mejorar el rendimiento, ampliar las capacidades de complementos y ofrecer una experiencia más sólida tanto en el servidor como en los clientes web.



