Notas de lançamento da versão 12.0

imagem 39

Notas de lançamento da versão 12.0

Notas sobre atualização

Antes de atualizar de uma versão anterior, é fortemente recomendado fazer um backup completo do diretório de dados, pois esta versão inclui alterações no banco de dados que impedem reverter sem uma restauração completa.

Atualizações diretas das versões 10.10.7 e 10.11.x para a 12.0 são suportadas; não é necessário realizar atualizações intermediárias. Usuários que executam versões anteriores à 10.10.7 são fortemente encorajados a atualizar para a 10.10.7 antes de migrar para a 12.0.

Plugins de repositório instalados (qualquer um que não seja embutido) também devem ser removidos antes da migração. Os plugins provavelmente precisarão de tempo para se adaptar às novas alterações do banco de dados, portanto, readicioná-los depois é a abordagem mais segura para testes.

Os plugins oficiais compatíveis com o Jellyfin estão disponíveis no repositório estável de plugins. Se você alterou para o repositório instável, volte para o estável.

  1. Acesse Painel -> Plugins -> Gerenciar Repositórios
  2. Atualize a URL do repositório de plugins para: https://repo.jellyfin.org/files/plugin/manifest.json

Após a migração, realize as seguintes etapas.

  1. Faça uma varredura completa da biblioteca para restaurar versões alternativas

Se encontrar problemas, prefixe os relatórios de bug com “[12.0]”.

Empacotamento

Os pacotes para Debian Bullseye e Ubuntu Focal não são mais gerados.

Servidor

A PR de desempenho #16062 executa uma verificação completa baseada em caminhos em todos os itens da biblioteca para limpar sobras. Dependendo do tamanho, isso pode levar algum tempo. Versões alternativas de mídia que foram resolvidas automaticamente (não mescladas manualmente) serão removidas devido a problemas de tipo de dados — uma varredura completa da biblioteca corrigirá isso novamente e, portanto, é OBRIGATÓRIA APÓS A ATUALIZAÇÃO. A primeira varredura levará significativamente mais tempo do que o normal, e alguns filmes podem aparecer como recém-adicionados devido a problemas de tipo que foram corrigidos na varredura.

O servidor agora suporta múltiplas versões para episódios, provedores de similaridade e recomendação, e provedores de busca, permitindo que plugins estendam ou substituam como os resultados de busca são produzidos. Há correções para o SchedulesDirect e atualizações do EPG, correções no sistema de classificação parental e poda adequada de dados na substituição/exclusão de arquivos. Foi adicionado suporte para números de episódios com três ou mais dígitos, filtros específicos de biblioteca para BoxSets e Playlists, suporte à tag CACHEDIR.tag, cabeçalho Accept-Language, condição de perfil VideoRotation para Android TVs que não suportam metadados de rotação, análise de IDs de provedores a partir de nomes de pastas/arquivos de temporadas e episódios, aliases tmdb, tvdb e imdb para os IDs de provedor correspondentes, suporte a chaves e parênteses para análise de valores de atributos, filtros NameStartsWith e NameLessThan para busca de pessoas, novos filtros para idiomas de áudio e legendas, opção OriginalLanguage em PreferredAudioLanguage, uma API de coleção para o recurso “Incluído em”, suporte a fluxos de legendas VobSub e um provedor de episódios ausentes do Tmdb.

Mudanças de quebra e comportamento

Os prefixos de rota legados (/emby/* e /mediabrowser/*) foram removidos. Clientes antigos de terceiros que dependem deles deixarão de funcionar. A autorização legada agora está desabilitada por padrão, e uma migração a desabilita também em instalações existentes. Foram removidas rotas de API obsoletas: POST /Users/{userId}/EasyPassword (o recurso EasyPassword foi removido), GET /Items/{itemId}/CriticReviews, GET /Environment/NetworkShares, POST /System/MediaEncoder/Path, GET /LiveTv/Recordings/Groups/{groupId} e GET /QuickConnect/Initiate. A configuração global de legendas foi removida; as configurações de legendas agora são por biblioteca. A extensão .ogg não é mais tratada como vídeo (apenas áudio), .aifc agora é reconhecido como áudio e .aiff não é mais tratado como imagem. Links simbólicos são resolvidos somente no momento da reprodução. A ordenação por nome agora usa SortName e CleanName, e a mesma lógica de limpeza é aplicada a ForcedSortName. A ordenação da biblioteca pode mudar em comparação com a 10.11. Os endpoints de imagem não fazem mais upscaling além da resolução de origem, então artes de baixa resolução renderizam em seu tamanho real. A capitalização do nome de usuário agora pode ser alterada. Os nomes de usuário são armazenados em uma coluna normalizada com índice exclusivo, então instalações com nomes de usuário que diferem apenas por maiúsculas/minúsculas precisam ser corrigidas antes da atualização.

Banco de dados e desempenho

Playlists e coleções agora são corretamente relacionais, usando uma nova tabela LinkedChildren em vez de listas serializadas de filhos. OwnerId e PrimaryVersionId são chaves estrangeiras GUID reais, e ExtraIds foi removido. Muitas migrações de ajuste cobrem contagens de itens, nomes de itens, tipo e nome limpo, itens mais recentes, informações de imagem e ID de versão primária. As rotinas de migração limpam dados existentes no primeiro boot: artistas musicais e pessoas duplicadas são mesclados, extras órfãos e dados externos são removidos, relacionamentos de proprietário incorretos são reparados e nomes limpos, nomes de ordenação forçada e chaves de apresentação de séries são recalculados. Tarefas pesadas de banco de dados não são mais executadas enquanto uma varredura de biblioteca está em andamento. Consultas mais rápidas para Retomar, Próximos, reassistir, Itens mais recentes para música, playlists e coleções, busca de artistas e contagens de itens. A exclusão de itens é feita em lotes, corrigindo falhas de “muitas variáveis SQL” ao excluir grandes quantidades de itens. O arquivo jellyfin.db agora pode ser armazenado em um caminho personalizado.

Operações

Nova flag de inicialização --mode com MediaServer, MigrateSystem e SeedSystem, permitindo que migrações ou semeadura do banco de dados sejam executadas sem iniciar o servidor. Isso é útil para implantações em contêineres e orquestradas e para atualizações controladas. A interface de inicialização foi reformulada e agora mostra informações de versão e atividade. Plugins desabilitados não são mais reabilitados na reinicialização. Backups completos do sistema ignoram linhas corrompidas de keyframe em vez de falhar.

Mídia e legendas

A escrita de legendas agora passa pelo SubtitleEdit, o que evita a conversão de SSA para ASS e a perda de estilos. Legendas externas podem ser incorporadas ao MKV durante a transcodificação. O tempo limite de extração de legendas agora é configurável. Legendas gráficas renderizadas pelo cliente são permitidas durante o remux. Correções para corridas na conversão concorrente de legendas, invalidação de cache quando uma legenda é substituída e travamentos do ffmpeg durante a extração. Nova opção de configuração HlsAudioSeekStrategy. Trickplay: arquivos existentes são descobertos durante a varredura, duplicatas de vídeo entrelaçado são corrigidas, valores PTS inválidos de contêineres são normalizados e o cache é limpo após falha.

TV ao vivo

A TV ao vivo não retorna mais URLs de streaming “server-local” inalcançáveis para os clientes. Imagens de fundo XMLTV e miniaturas de episódios agora são importadas. As importações de guia XMLTV pulam programas cujos dados não mudaram, usando um ETag calculado a partir dos campos que o servidor realmente consome, tornando as atualizações repetidas do guia consideravelmente mais baratas. Outros provedores de listagens permanecem no caminho de atualização campo a campo existente.

Metadados e provedores

O ListenBrainz agora é empacotado com o servidor e fornece dados de artistas semelhantes com um algoritmo de similaridade selecionável. IDs de provedor TVDB são suportados para filmes. Busca de artistas no AudioDb. O ganho de álbum ReplayGain é analisado. As buscas no MusicBrainz são mais resilientes. Tags de lançamento WEB-DL são reconhecidas em nomes de arquivos. Números hifenizados em títulos de episódios não são mais analisados como arquivos de múltiplos episódios. A detecção de formato 3D funciona quando a tag é o último token do caminho. As atualizações de metadados de pessoas são enfileiradas em vez de bloquear a solicitação.

Transcodificador

Nova versão upstream do FFmpeg 8.1. Desempenho otimizado do filtro de transposição CUDA, do filtro de escala OCL e do filtro de tonemapping OCL em GPU Mali. Uso de EOTF do BT 2446 Método B para tonemapping HLG. Correção de possível dessincronização de áudio/vídeo no HLS ao transcodificar vídeo enquanto remuxa áudio. Evita a conversão de SSA para ASS e perda de estilos. Adicionada variante HLS dvh1 compatível com especificação para DoVi P5 para compatibilidade.

Web

O layout Moderno agora é o padrão; o layout anterior agora é chamado Legado. Visualizações atualizadas de Vídeos Musicais, Mídia Mista, Coleções & Playlists e Livros. Adicionado prompt de “ainda assistindo”, configuração de atraso para apresentação de slides de fotos, cache de consultas no indexed db para o cliente TanStack Query para melhor desempenho de carregamento, recurso de observação no visualizador de logs, controles , e . para avançar quadro a quadro, filtros para idiomas de áudio e legendas (somente layout moderno), aba de Coleções e playlists em todas as bibliotecas, coleções na página de detalhes do item, substituição do libpgs por libbitsub com suporte a renderização de vobsub, e mesclagem de cartões para membros da equipe com múltiplos papéis.

Layout e temas

Todos os temas agora derivam de um tema base compartilhado construído sobre variáveis CSS, incluindo Dark, Light, WMC, Blue Radiance, Apple TV e Purple Haze. Temas personalizados podem precisar de ajustes. A barra de ferramentas da biblioteca foi mesclada à barra de aplicativos, com um cabeçalho fixo de biblioteca e polimento de design em toda a biblioteca. Links personalizados podem ser adicionados ao layout Moderno. A configuração de tempo do protetor de tela agora está disponível no layout Moderno.

Bibliotecas e navegação

Abas de Coleções e pastas para bibliotecas de livros, e uma visualização de pastas no layout moderno de vídeos caseiros. Opções de aba padrão para bibliotecas de Vídeos Caseiros e Fotos. Busca de estúdios e uma aba Estúdios estendida. Botões Reproduzir tudo e Aleatório na biblioteca de séries. Ambos são desabilitados em vez de ocultos quando não há itens disponíveis. Visualização Próximos melhorada. Ordenação e filtragem na página de Atividade. Um botão Redefinir filtros no menu de filtros. Pastas podem ser marcadas como reproduzidas. Criadores de programas de TV são mostrados nos detalhes do item. Provedores de similaridade podem ser configurados por biblioteca. Controles de paginação são ocultos quando a paginação está desabilitada.

Reprodução

A sobreposição de informações de reprodução é mais compacta e mostra mais detalhes. Nomes de capítulos são mostrados no balão do controle deslizante OSD. A detecção de bitrate agora é executada na web. Dolby Vision em MKV no webOS 25 e mais recentes. Cópia de fluxo AV1 fMP4 em clientes de TV. Reprodução direta de vídeo anamórfico no Tizen, e restrições anamórficas relaxadas para perfis de dispositivo de navegador. No iOS, a reprodução em segundo plano continua quando a tela é desligada, e a normalização de áudio é desabilitada para corrigir problemas de tom e velocidade. libbitsub atualizado para v1.11.0 com correção de deslocamento HLS. O protetor de tela é suprimido ao visualizar fotos ou ler.

TV e controle remoto

Correções de navegação por controle de jogo, e a taxa de repetição do gamepad não está mais vinculada à taxa de quadros. Os controles de teclado funcionam em layouts de teclado não latinos, com correções adicionais para navegadores mais antigos. Os comandos de estado de reprodução Retroceder e Avançar são tratados. Atualização do menu SyncPlay, e o ping do SyncPlay agora é relatado ao servidor. Estilo de caixa de seleção focada e marcada no layout de TV.

Nos bastidores

Os WebSockets foram migrados para assinaturas do SDK. A migração React e TypeScript continua com as páginas de bibliotecas, TV ao vivo e rede, e as páginas de usuário do painel agora usam o TS SDK. O TanStack Query agora alimenta as configurações do usuário e as seções da tela inicial, e o cache de consultas é limpo quando o servidor reinicia.

Correções notáveis

Imagens de cartão borradas em telas de alto DPI, e os tamanhos das imagens de cartão são arredondados para cima. Conexões /socket duplicadas. Loop de login, conexão com o servidor errado quando vários estão configurados, e seleção de servidor do shell nativo ao sair. Uma solicitação inválida para todos os itens ao carregar a página. A aba de destino padrão da TV ao vivo. Segurar e arrastar na mídia não ativa mais a seleção múltipla. Um aviso é mostrado antes de restaurar uma versão, um aviso é mostrado ao iniciar um backup enquanto uma varredura está em execução, e uma varredura de biblioteca inicia automaticamente quando pastas são adicionadas a uma biblioteca.

Segurança

Servidor:

A validação de caminho foi adicionada aos endpoints legados de segmentos HLS e ao endpoint de imagem de plugin, de modo que um arquivo solicitado deve resolver dentro do diretório de transcodificação. O endurecimento contra path traversal foi estendido aos endpoints de imagem e plugin e ao tratamento de caminho de nome de usuário, com base nas correções lançadas na 10.11.x. O assistente de inicialização não pode mais ser executado novamente sem autenticação em um servidor mal configurado. Nomes de pacote de plugin inseguros são rejeitados pelo instalador de plugins. A filtragem parental é aplicada em endpoints adicionais, a visibilidade de playlists foi corrigida, o acesso de não administradores a partes adicionais foi corrigido, e as pessoas são isentas da verificação de visibilidade de tags permitidas.

Web:

Cross-site scripting via papéis de pessoas. Parâmetros de autenticação são codificados ao criar clientes de API. O aviso de login só permite esquemas de protocolo de link comuns.

Livros

Os livros muitas vezes ficaram em segundo plano em favor da reprodução de vídeo no Jellyfin, mas isso não deve mais ser o caso. Iniciamos um esforço concentrado para melhorar o suporte a livros na API e nos clientes oficiais. O suporte a eBooks e quadrinhos ainda está amadurecendo, mas o plugin ODPS permite acesso direto de uma ampla gama de programas auto-hospedados populares. Correspondentemente, contribuições em qualquer repositório são extremamente bem-vindas da comunidade em geral. Isso inclui melhorias no servidor, alterações de documentação e clientes de terceiros para reprodução de livros. Uma combinação de suporte a eBook, quadrinhos e audiolivros está disponível nos seguintes clientes.

Oficiais: Web, iOS, Android, Desktop, Roku, Kodi, JMP
Comunidade: JellyBook, Symfonium, Jellium, Plappa

Uma omissão notável do servidor é a série de livros como entidades únicas, que não entrou nesta versão. Se você quiser preencher a lacuna até que sejam adicionadas, sinta-se à vontade para usar o plugin Folio para exibi-las como coleções. Funciona de forma muito semelhante ao plugin TMDb Box Sets, mas se aplica apenas a eBooks.

Outro recurso em desenvolvimento são os capítulos de audiolivros, que atualmente estão disponíveis apenas na API. Felizmente, isso significa que o suporte do cliente agora é possível, então você deve vê-los aparecer no seu cliente de audiolivro favorito antes do nosso próximo lançamento do servidor.

NOTA: O plugin Bookshelf foi descontinuado e seus recursos foram mesclados ao servidor ou extraídos para os provedores ComicVine e GoogleBooks.

Mudanças no servidor

O Bookshelf foi dividido em provedores separados GoogleBooks e ComicVine. A análise local de livros foi melhorada e está disponível sem plugins: metadados de livros são extraídos diretamente de arquivos OPF e ComicInfo ou comentários ComicBookInfo. Capas externas agora são suportadas para arquivos de audiolivros. Pôsteres são gerados para EPUBs e todos os arquivos de quadrinhos suportados. Nome, índice, ano e série são analisados a partir de nomes de arquivos de livros. Volume e capítulo estarão disponíveis na API quando presentes em nomes de arquivos de quadrinhos. Contagens de páginas são extraídas de arquivos de quadrinhos e PDFs. Nomes de criadores de dados OPF são normalizados para um formato comum. Um novo plugin OpenLibrary foi criado para metadados e imagens. IDs externos e links ISBN são suportados. Capítulos agora são extraídos de audiolivros.

Mudanças na Web

O layout moderno de biblioteca de livros foi adicionado com tipos de visualização e paginação. Os livros exibem informações sobre seus autores e vice-versa. A interface de reprodução foi redesenhada e padronizada em todos os tipos de livros. O indicador de progresso está habilitado novamente para eBooks suportados. A ordenação de livros por número de índice, data de lançamento, etc., agora está disponível. A seleção de tamanho de fonte foi melhorada para arquivos EPUB. A reprodução de audiolivros em segundo plano está funcionando em dispositivos iOS. Abas de autores, coleções e pastas foram adicionadas às bibliotecas de livros, e os audiolivros aparecem sob autores. O comportamento de tela cheia é unificado em todos os players de livros, e os PDFs suportam navegação por deslize.

Desenvolvedores

Mudanças na API

A API não permite mais o uso de mecanismos de autorização obsoletos por padrão. Clientes e ferramentas precisam migrar se ainda não o fizeram. Veja a PR #15559 para detalhes.

Houve várias outras mudanças nas bibliotecas SDK e na API como parte de um esforço contínuo para documentar melhor a API para uso do cliente. Observe o seguinte com relação ao suporte da API. Uma explicação completa de nossa política para mudanças de API será adicionada à documentação do desenvolvedor nos próximos meses.

  • Se um endpoint não estiver listado na especificação OpenAPI, ele não deve ser usado pelos clientes. Existem certos endpoints que ainda são expostos por razões legadas, apesar de excluídos da especificação OpenAPI. Eles podem ser removidos em qualquer versão principal sem aviso.
  • Se um endpoint ou parâmetro estiver marcado como obsoleto na especificação OpenAPI, ele não deve ser usado pelos clientes. Mesma explicação acima.
  • Como regra geral, quaisquer depreciações serão marcadas como tal por um ciclo de versão (principal) inteiro antes que o endpoint ou parâmetro obsoleto possa ser removido.

Mudanças de comportamento que os clientes devem estar cientes:

  • GetItems agora é assíncrono e aplica recursive quando filtros são solicitados, limitado a solicitações que incluem includeItemTypes. A mesma consulta pode retornar um conjunto de resultados diferente do que retornava na 10.11.
  • As respostas de ItemByName são restritas e as pessoas são desduplicadas.
  • Recém-obsoletos, mas ainda funcionais, com substituições:
    • GetTrailers -> use GetItems com includeItemTypes=Trailer
    • GetArtists e GetAlbumArtists -> use GetPersons
    • GetArtistByName -> use GetPerson
    • GetMusicGenre -> use GetGenre
    • GetInstantMixFromMusicGenreById e GetInstantMixFromMusicGenreByName -> use GetInstantMixFromItem
    • GetStartupConfiguration, UpdateInitialConfiguration e SetRemoteAccess -> use os endpoints de configuração
    • GetRecordingsSeries
    • UserDto.HasPassword está marcado como obsoleto e não fornece mais informações úteis.
  • Os controladores HLS estão ocultos da especificação.

Plataforma

O servidor agora tem como alvo .NET 10. Os plugins precisam ser redirecionados e recompilados. O Swashbuckle foi atualizado para v10, o que altera o documento OpenAPI gerado, então os SDKs precisam ser regenerados. O jellyfin-web agora compila com Node 24 LTS e npm 11.

Mudanças em plugins

ISearchEngine foi substituído por ISearchManager, e SearchEngine foi substituído por SearchManager juntamente com SqlSearchProvider. Foram removidos: NowPlayingQueueFullItems, DtoExtensions.AddClientFields, Jellyfin.Extensions.AlphanumericComparator, a família ISubtitleWriter de escritores de legendas e SubtitleOptions com SubtitleConfigurationFactory. ServerConfiguration.EncoderPreset não é mais anulável. IAuthenticationProvider.HasPassword foi removido. IPasswordResetProvider.StartForgotPasswordProcess recebe o nome de usuário digitado e um usuário anulável. IUserManager: as propriedades Users e UsersIds agora são os métodos GetUsers e GetUsersIds, e RenameUser, ResetPassword e ChangePassword recebem um ID de usuário em vez de um User. GetFirstUser foi adicionado. Vários membros de IItemRepository foram movidos para novos serviços: salvamento e exclusão de itens e UpdateInheritedValues para IItemPersistenceService, contagens para IItemCountService e chaves de série Next Up para INextUpService. IPeopleRepository.GetPeople e ILibraryManager.GetPeopleItems retornam um QueryResult, e IDtoService.GetBaseItemDtos e ILibraryManager.DeleteItemsUnsafeFast têm novas assinaturas. IDirectoryService.GetFilePaths não recebe mais um argumento sort, e os getters de caminho de legenda e anexo de IPathManager agora são anuláveis.

Novas APIs de plugin

Esta versão adiciona vários pontos de extensão que os plugins não podiam acessar antes.

  • Provedores de busca. Os plugins agora podem participar da busca em si, não apenas na consulta de metadados. ISearchProvider expõe Name, Type, Priority e CanSearch(SearchProviderQuery), com IInternalSearchProvider para provedores que buscam na biblioteca local e IExternalSearchProvider para provedores que transmitem itens SearchResult de um serviço remoto. Os provedores são registrados através de ISearchManager.AddParts e são consultados em ordem de prioridade, para que um plugin possa estender ou assumir o SqlSearchProvider embutido.
  • Provedores de similaridade e recomendação. ISimilarItemsProvider é dividido e herdado por ILocalSimilarItemsProvider, IRemoteSimilarItemsProvider e IBatchLocalSimilarItemsProvider, cada um com uma variante genérica para que um provedor possa declarar o tipo de item que manipula. Os provedores são selecionados e ordenados por biblioteca através de LibraryOptions.SimilarItemProviders e SimilarItemProviderOrder, e ISimilarItemsManager também puxa recomendações de filmes. O provedor ListenBrainz empacotado é construído sobre isso.
  • Provedores de metadados de quadrinhos. IComicProvider (ReadMetadata e HasItemChanged) permite que um plugin forneça metadados de quadrinhos juntamente com os leitores embutidos ComicInfo e ComicBookInfo.
  • Capítulos para qualquer tipo de item. IChapterManager.SaveChapters agora recebe um BaseItem em vez de um Video, e ganhou uma verificação Supports(BaseItem). Isso é o que torna possíveis os capítulos de audiolivros e permite que plugins salvem capítulos para itens não vídeo.
  • Redefinições de senha para usuários desconhecidos. IPasswordResetProvider.StartForgotPasswordProcess agora recebe o nome de usuário digitado junto com um usuário anulável, para que um provedor possa lidar com uma solicitação para um nome de usuário que o servidor não conhece ou encaminhar a redefinição para um provedor externo.
  • Limpeza de segmentos de mídia. IMediaSegmentProvider.CleanupExtractedData é chamado quando os dados de um item são podados, para que os provedores de segmento possam remover seus próprios arquivos extraídos.
  • Schedules Direct. ISchedulesDirectService expõe países disponíveis, disponibilidade do serviço e o estado do limite diário de imagens, para que os plugins de TV ao vivo não precisem mais reimplementá-los. ITunerHostManager.DeleteTunerHost permite remover um sintonizador.
  • Versões alternativas e crianças vinculadas. Agora que as crianças vinculadas são relacionais, ILibraryManager expõe ResolveAlternateVersion, GetLocalAlternateVersionIds, GetLinkedAlternateVersions, GetItemIdsWithAlternateVersions e UpsertLinkedChild. Plugins que manipulavam links de versão através de dados serializados de itens precisam migrar para estes.
  • APIs em lote para trabalho em massa. IUserDataManager ganhou GetUserDataBatch, GetResumeUserData, GetResumeUserDataBatch e ResetPlaybackStreamSelections. ILibraryManager ganhou GetPeopleByItems, GetPeopleNamesByItems e GetNextUpEpisodesBatch. IItemCountService oferece contagens em lote de filhos e reproduzidos/totais.
  • Localização. ILocalizationManager.GetServerLocalizedString e GetLanguageDisplayName permitem que plugins localizem em relação à localidade do servidor.
  • ICollectionManager.GetCollectionsContainingItem sustenta o recurso “Incluído em”, e IPlaylistManager.AddItemToPlaylistAsync recebe uma posição para que itens possam ser inseridos no topo de uma playlist.

IHasEmbeddedImage também é novo, mas é apenas para plugins compilados no servidor; plugins externos devem continuar declarando suas imagens com imagePath no meta.json.

Configuração TLS

Nas notas de lançamento anteriores 10.11.0, anunciamos a descontinuação do tratamento embutido de certificados TLS para esta versão. Essa mudança foi adiada para uma versão futura.

Discuta este lançamento mais a fundo em nossos fóruns.

Resumo do changelog (460 alterações)

Esta versão inclui 460 alterações no total. Entre os destaques de segurança, uma correção para possível injeção de argumentos no FFmpeg através de caminho de arquivo de legenda não escapado foi aplicada. Também foram implementadas múltiplas versões para episódios e a desativação padrão dos métodos legados de autorização.

As melhorias incluem correções em recomendações de filmes, exclusão de dispositivos em lote, alias tmdb para IDs de provedor, correções de EPG, suporte a CACHEDIR.tag e remoção da configuração global de legendas. Muitas outras melhorias de desempenho e correções de bugs foram feitas em todo o servidor, web e transcodificador, abrangendo áreas como banco de dados, TV ao vivo, metadados, legendas, reprodução, interface web, plugins e plataforma. A atualização para .NET 10 e as mudanças de API para desenvolvedores também fazem parte desta versão.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *