* Correct Album Artists merge logic and Artist equality checks
Correct Album Artists merge logic in MetadataService that causes empty
metadata sources to overwrite populated Album Artists arrays. This impacted
People-to-BaseItem relationships and caused orphaned records in Peoples.
Correct equality checks to be case-sensitive so Jelly metadata exactly
matches file metadata.
* use StringComparer.Ordinal
---------
Co-authored-by: Evan <evan@MacBook-Pro.local>
Follow TrickPlay example of running other background ffmpeg tasks as ProcessPriorityClass.BelowNormal:
- Keyframe extraction
- Media info probing during library scans
- Audio normalization
- Image extraction
Co-authored-by: Evan <evan@MacBook-Pro.local>
Follow TrickPlay example of running other background ffmpeg tasks as ProcessPriorityClass.BelowNormal:
- Keyframe extraction
- Media info probing during library scans
- Audio normalization
- Image extraction
For API call /Items/{item id} GetBaseItemDto will return the counts of related items e.g. artists, albums, songs. GetBaseItemDto currently does this by calling GetTaggedItems which retrieves the objects into memory to count them. Replace with SQL count.
Fixes:
This should be an improvement for any large libraries, but especially large music libraries. Example:
Request Library -> Genres -> any very popular genre in your large library, e.g. Classical
Number of albums = 1552, songs = 23515, ...
- Before change: Try to retrieve 1552 albums, 23515 songs, ... in memory, API never returns, database on fire
- After change: API returns in 367ms and Genre view opens with 200 albums in 2 seconds
I verified the numbers returned are correct but note that there is a bug somewhere else in Jellyfin that is setting TopParentId to NULL for a large portion of my MusicArtists, which causes them to not be counted by the existing GetCount(). This is not related to this change, also happens with the existing code, and does not seem to affect the Web UI.
Includes Cory's changes in:
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172211468
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172239154
Keyframe-only trickplay image extraction can fail for some media
files. The current behavior is to skip the media file and try again
on the next run, which will fail again.
This adds a fallback to regular non-keyframe-only extraction for
failed runs, so the extraction can complete.
Jellyfin implemented ARTISTS multivalue tag but did not implement the equivalent ALBUMARTISTS multivalue tag. This change adds ALBUMARTISTS support. If present and PreferNonstandardArtistsTag is set, ALBUMARTISTS will be used in preference to ALBUMARTIST. As with ARTISTS, the intent is to offer support for multiple album artists without affecting software that does not read ALBUMARTIST as a multivalued tag.
Example album before/after:
ALBUM : Amici e Rivali
ARTIST : Lawrence Brownlee / Michael Spyres
album_artist : Lawrence Brownlee
ARTISTS : Lawrence Brownlee;Michael Spyres
ALBUMARTISTS : Lawrence Brownlee;Michael Spyres
Before ALBUMARTISTS support, Jellyfin reports:
Album Artist: Lawrence Brownlee [hyperlinked]
On each track Artist: Lawrence Brownlee, Michael Spyres
After ALBUMARTISTS support, Jellyfin reoprts:
Album Artist: Lawrence Brownlee [hyperlinked], Michael Spyres [hyperlinked]
On each track Artist: none shown (no other artists in source metadata)
This is ideal as both key artists are hyperlinkable from their albums.
References to other products implementing ALBUMARTISTS:
- Navidrome: https://www.navidrome.org/docs/usage/tagging-guidelines/#handling-multiple-artists-and-collaborations
- Kodi: https://kodi.wiki/view/Music_tagging#albumartists
- MusicBrainz Picard: https://picard-docs.musicbrainz.org/en/variables/variables_basic.html (_albumartists tag)
Co-authored-by: Evan <evan@MacBook-Pro.local>
Jellyfin implemented ARTISTS multivalue tag but did not implement the equivalent ALBUMARTISTS multivalue tag. This change adds ALBUMARTISTS support. If present and PreferNonstandardArtistsTag is set, ALBUMARTISTS will be used in preference to ALBUMARTIST. As with ARTISTS, the intent is to offer support for multiple album artists without affecting software that does not read ALBUMARTIST as a multivalued tag.
Example album before/after:
ALBUM : Amici e Rivali
ARTIST : Lawrence Brownlee / Michael Spyres
album_artist : Lawrence Brownlee
ARTISTS : Lawrence Brownlee;Michael Spyres
ALBUMARTISTS : Lawrence Brownlee;Michael Spyres
Before ALBUMARTISTS support, Jellyfin reports:
Album Artist: Lawrence Brownlee [hyperlinked]
On each track Artist: Lawrence Brownlee, Michael Spyres
After ALBUMARTISTS support, Jellyfin reoprts:
Album Artist: Lawrence Brownlee [hyperlinked], Michael Spyres [hyperlinked]
On each track Artist: none shown (no other artists in source metadata)
This is ideal as both key artists are hyperlinkable from their albums.
References to other products implementing ALBUMARTISTS:
- Navidrome: https://www.navidrome.org/docs/usage/tagging-guidelines/#handling-multiple-artists-and-collaborations
- Kodi: https://kodi.wiki/view/Music_tagging#albumartists
- MusicBrainz Picard: https://picard-docs.musicbrainz.org/en/variables/variables_basic.html (_albumartists tag)
Any prebuilt version newer than that does not work with debian based arm64 system and currently build from source is the only way to use those versions. Pin the latest good version for now instead to make our life and our downstream packagers' life easier.
for file in Jellyfin.Data.dll MediaBrowser.Common.dll MediaBrowser.Controller.dll MediaBrowser.Model.dll Emby.Naming.dll Jellyfin.Extensions.dll Jellyfin.MediaEncoding.Keyframes.dll Jellyfin.Database.Implementations.dll; do
for file in Jellyfin.Data.dll MediaBrowser.Common.dll MediaBrowser.Controller.dll MediaBrowser.Model.dll Emby.Naming.dll Jellyfin.Extensions.dll Jellyfin.MediaEncoding.Keyframes.dll Jellyfin.Database.Implementations.dll Jellyfin.CodeAnalysis.dll; do
new FileStackRule(@"^(?<filename>.*?)(?:(?<=[\]\)\}])|[_.-]+)[\(\[]?(?<parttype>cd|dvd|part|pt|dis[ck])[_.-]*(?<number>[0-9]+)[\)\]]?(?:\.[^.]+)?$", true),
new FileStackRule(@"^(?<filename>.*?)(?:(?<=[\]\)\}])|[_.-]+)[\(\[]?(?<parttype>cd|dvd|part|pt|dis[ck])[_.-]*(?<number>[a-d])[\)\]]?(?:\.[^.]+)?$", false)
new EpisodeExpression(@".*(\\|\/)(?<seriesname>((?[][._-]*[Ee]([0-9]+))[^\\\/])*)?[Ss](?<seasonnumber>[0-9]+)[][._-]*[Ee](?<epnumber>[0-9]+)([^\\/]*)$")
@@ -102,17 +104,13 @@ public class PeopleValidator
IsLocked=false
});
foreach(varitemindeadEntities)
{
_logger.LogInformation("Deleting dead {ItemType} {ItemId} {ItemName}",item.GetType().Name,item.Id.ToString("N",CultureInfo.InvariantCulture),item.Name);
"TaskExtractMediaSegmentsDescription":"يستخرج مقاطع وسائط من إضافات MediaSegment المُفعّلة.",
"TaskMoveTrickplayImages":"تغيير مكان صور المعاينة السريعة",
"TaskMoveTrickplayImagesDescription":"تُنقل ملفات التشغيل السريع الحالية بناءً على إعدادات المكتبة."
"TaskMoveTrickplayImagesDescription":"تُنقل ملفات التشغيل السريع الحالية بناءً على إعدادات المكتبة.",
"CleanupUserDataTask":"مهمة تنظيف بيانات المستخدم",
"CleanupUserDataTaskDescription":"مسح جميع بيانات المستخدم (حالة المشاهدة، والحالة المفضلة وما إلى ذلك) من الوسائط التي لم تعد موجودة لمدة 90 يومًا على الأقل."
"UserPolicyUpdatedWithName":"Палітыка карыстальніка абноўлена для {0}",
"TaskCleanActivityLogDescription":"Выдаляе старэйшыя за зададзены ўзрост запісы ў журнале актыўнасці.",
"TaskCleanActivityLogDescription":"Выдаляе запісы старэйшыя за зададзены ўзрост ў журнале актыўнасці.",
"TaskRefreshChapterImagesDescription":"Стварае мініяцюры для відэа, якія маюць раздзелы.",
"TaskCleanLogsDescription":"Выдаляе файлы журналу, якім больш за {0} дзён.",
"TaskUpdatePluginsDescription":"Спампоўвае і ўсталёўвае абнаўленні для плагінаў, якія настроены на аўтаматычнае абнаўленне.",
"TaskUpdatePluginsDescription":"Спампоўвае і ўсталёўвае абнаўленні для плагінаў, якія сканфігураваныя на аўтаматычнае абнаўленне.",
"TaskRefreshChannelsDescription":"Абнаўляе інфармацыю аб інтэрнэт-канале.",
"TaskDownloadMissingSubtitlesDescription":"Шукае ў інтэрнэце адсутныя субтытры на аснове канфігурацыі метададзеных.",
"TaskOptimizeDatabaseDescription":"Ушчыльняе базу дадзеных і скарачае вольную прастору. Выкананне гэтай задачы пасля сканавання бібліятэкі або ўнясення іншых змяненняў, якія прадугледжваюць мадыфікацыю базы дадзеных, можа палепшыць прадукцыйнасць.",
"TaskDownloadMissingSubtitlesDescription":"Шукае ў інтэрнэце адсутныя субцітры на аснове канфігурацыі метададзеных.",
"TaskOptimizeDatabaseDescription":"Ушчыльняе базу дадзеных і скарачае вольную прастору. Выкананне гэтай задачы пасля сканавання бібліятэкі або ўнясення іншых зменаў, якія прадугледжваюць мадыфікацыю базы дадзеных, можа палепшыць выдайнасць.",
"TaskKeyframeExtractorDescription":"Выдае ключавыя кадры з відэафайлаў для стварэння больш дакладных спісаў прайгравання HLS. Гэта задача можа працаваць у працягу доўгага часу.",
"TaskRefreshTrickplayImages":"Стварыце выявы Trickplay",
"TaskRefreshTrickplayImagesDescription":"Стварае прагляд відэаролікаў для Trickplay у падключаных бібліятэках.",
"TaskKeyframeExtractorDescription":"Выдае ключавыя кадры з відэафайлаў для стварэння больш дакладных плэй-лістоў HLS. Гэта задача можа працягнуцца шмат часу.",
"TaskRefreshTrickplayImages":"Стварыць выявы Trickplay",
"TaskRefreshTrickplayImagesDescription":"Стварае перадпрагляды відэаролікаў для Trickplay у падключаных бібліятэках.",
"TaskMoveTrickplayImages":"Перанесці месцазнаходжанне выявы Trickplay"
"TaskMoveTrickplayImages":"Перанесці месцазнаходжанне выявы Trickplay",
"CleanupUserDataTask":"Задача па ачыстцы дадзеных карыстальніка",
"CleanupUserDataTaskDescription":"Ачысьціць усе дадзеныя карыстальніка (стан прагляду, абранае іг.д.) для медыяфайлаў, што адсутнічаюць больш за 90 дзён."
"TaskExtractMediaSegmentsDescription":"Изважда медиини сегменти от MediaSegment плъгини.",
"TaskMoveTrickplayImages":"Мигриране на Локацията за Trickplay изображения",
"TaskMoveTrickplayImagesDescription":"Премества съществуващите trickplay изображения спрямо настройките на библиотеката.",
"TaskExtractMediaSegments":"Сканиране за сегменти"
"TaskExtractMediaSegments":"Сканиране за сегменти",
"CleanupUserDataTask":"Задача за почистване на потребителски данни",
"CleanupUserDataTaskDescription":"Почиства всички потребителски данни (статус на гледане, любими и т.н.) от медия, която вече не е налична от поне 90 дни."
"TaskOptimizeDatabaseDescription":"তথ্যভাণ্ডার সুবিন্যস্ত করে ও অব্যবহৃত জায়গা ছেড়ে দেয়। লাইব্রেরী স্ক্যান অথবা যেকোনো তথ্যভাণ্ডার পরিবর্তনের পর এই প্রক্রিয়া চালালে তথ্যভাণ্ডারের তথ্য প্রদান দ্রুততর হতে পারে।",
"External":"বাহ্যিক",
"TaskOptimizeDatabase":"তথ্যভাণ্ডার সুবিন্যাস",
"TaskKeyframeExtractor":"কি-ফ্রেম নিষ্কাশক",
"TaskKeyframeExtractorDescription":"ভিডিয়ো থেকে কি-ফ্রেম নিষ্কাশনের মাধ্যমে অধিকতর সঠিক HLS প্লে লিস্ট তৈরী করে। এই প্রক্রিয়া দীর্ঘ সময় ধরে চলতে পারে।",
"TaskRefreshTrickplayImages":"ট্রিকপ্লে ইমেজ তৈরি করুন",
"TaskExtractMediaSegmentsDescription":"MediaSegment সক্ষম প্লাগইনগুলি থেকে মিডিয়া সেগমেন্টগুলি বের করে বা প্রাপ্ত করে।",
"TaskDownloadMissingLyrics":"অনুপস্থিত গান ডাউনলোড করুন"
"TaskExtractMediaSegmentsDescription":"মিডিয়া সেগমেন্ট সক্ষম প্লাগইনগুলি থেকে মিডিয়া সেগমেন্ট বের করে বা অর্জন করে।",
"TaskDownloadMissingLyrics":"অনুপস্থিত গান ডাউনলোড করুন",
"TaskMoveTrickplayImagesDescription":"লাইব্রেরির সেটিং অনুযায়ী বিদ্যমান ট্রিকপ্লে ফাইলগুলো সরিয়ে নেবে।",
"TaskAudioNormalizationDescription":"অডিও নর্মালাইজেশন তথ্যের জন্য ফাইল স্ক্যান করবে।",
"CleanupUserDataTaskDescription":"৯০ দিন বা তার বেশি সময় ধরে অনুপস্থিত মিডিয়া থেকে সকল ব্যবহারকারীর ডেটা (ওয়াচ স্টেট, ফেভারিট স্ট্যাটাস ইত্যাদি) মুছে ফেলবে।",
"TaskMoveTrickplayImages":"ট্রিকপ্লে ইমেজের অবস্থান পরিবর্তন",
"ServerNameNeedsToBeRestarted":"S'ha de reiniciar {0}",
"Shows":"Sèries",
"Songs":"Cançons",
"StartupEmbyServerIsLoading":"El servidor de Jellyfin s'està carregant. Proveu de nou en una estona.",
"StartupEmbyServerIsLoading":"El servidor de Jellyfin s'està carregant. Proveu-ho de nou en una estona.",
"SubtitleDownloadFailureForItem":"Subtitles failed to download for {0}",
"SubtitleDownloadFailureFromForItem":"Els subtítols per a {1} no s'han pogut baixar de {0}",
"Sync":"Sincronitzar",
"Sync":"Sincronitza",
"System":"Sistema",
"TvShows":"Sèries de TV",
"User":"Usuari",
@@ -89,52 +89,54 @@
"UserPolicyUpdatedWithName":"La política d'usuari s'ha actualitzat per a {0}",
"UserStartedPlayingItemWithValues":"{0} ha començat a reproduir {1} a {2}",
"UserStoppedPlayingItemWithValues":"{0} ha parat de reproduir {1} a {2}",
"ValueHasBeenAddedToLibrary":"S'ha afegit {0} a la teva biblioteca",
"ValueHasBeenAddedToLibrary":"S'ha afegit {0} a la mediateca",
"ValueSpecialEpisodeName":"Especial - {0}",
"VersionNumber":"Versió {0}",
"TaskDownloadMissingSubtitlesDescription":"Cerca a internet els subtítols que faltin a partir de la configuració de metadades.",
"TaskDownloadMissingSubtitles":"Descarrega els subtítols que faltin",
"TaskDownloadMissingSubtitles":"Descàrrega dels subtítols que faltin",
"TaskRefreshChannelsDescription":"Actualitza la informació dels canals per internet.",
"TaskRefreshChannels":"Actualitza els canals",
"TaskCleanTranscodeDescription":"Elimina els arxius de transcodificacions que tinguin més d'un dia.",
"TaskCleanTranscode":"Neteja les transcodificacions",
"TaskUpdatePluginsDescription":"Actualitza els complements que estan configurats per a actualitzar-se automàticament.",
"TaskUpdatePlugins":"Actualitzaels complements",
"TaskRefreshPeopleDescription":"Actualitza les metadades dels actors i directors de la teva biblioteca de mitjans.",
"TaskRefreshPeople":"Actualitza les persones",
"TaskCleanLogsDescription":"Esborra els logs que tinguin més de {0} dies.",
"TaskCleanLogs":"Neteja els registres",
"TaskRefreshLibraryDescription":"Escaneja la biblioteca de mitjans buscant fitxers nous i refresca les metadades.",
"TaskRefreshLibrary":"Escaneja la biblioteca de mitjans",
"TaskRefreshChapterImagesDescription":"Crea les miniatures dels vídeos que tinguin capítols.",
"TaskRefreshChapterImages":"Extreure les imatges dels capítols",
"TaskCleanCacheDescription":"Elimina la memòria cau no necessària per al servidor.",
"TaskCleanCache":"Elimina la memòria cau",
"TaskCleanTranscodeDescription":"Elimina els fitxers de transcodificacions que tinguin més d'un dia.",
"TaskCleanTranscode":"Neteja de les transcodificacions",
"TaskUpdatePluginsDescription":"Descarrega i instal·la els complements que estiguin configurats per a actualitzar-se automàticament.",
"TaskUpdatePlugins":"Actualització dels complements",
"TaskRefreshPeopleDescription":"Actualització de les metadades dels actors i directors de la mediateca.",
"TaskRefreshPeople":"Actualització de les persones",
"TaskCleanLogsDescription":"Esborra els registres que tinguin més de {0} dies.",
"TaskCleanLogs":"Neteja dels registres",
"TaskRefreshLibraryDescription":"Escaneja les mediateques, a la cerca de fitxers nous i refresca les metadades.",
"TaskRefreshLibrary":"Escaneig de les mediateques",
"TaskRefreshChapterImagesDescription":"Creació de les miniatures dels vídeos que tinguin capítols.",
"TaskRefreshChapterImages":"Extracció de les imatges dels capítols",
"TaskCleanCacheDescription":"Eliminació de la memòria cau no necessària per al servidor.",
"TaskCleanCache":"Eliminació de la memòria cau",
"TasksChannelsCategory":"Canals per internet",
"TasksApplicationCategory":"Aplicatiu",
"TasksLibraryCategory":"Biblioteca",
"TasksLibraryCategory":"Mediateca",
"TasksMaintenanceCategory":"Manteniment",
"TaskCleanActivityLogDescription":"Eliminades les entrades del registre d'activitats més antigues que l'antiguitat configurada.",
"TaskCleanActivityLog":"Buidar el registre d'activitat",
"TaskCleanActivityLogDescription":"Eliminació de les entrades del registre d'activitats més antigues que l'antiguitat configurada.",
"TaskCleanActivityLog":"Buidatge del registre d'activitat",
"Undefined":"Indefinit",
"Forced":"Forçat",
"Default":"Per defecte",
"TaskOptimizeDatabaseDescription":"Compacta la base de dades i trunca l'espai lliure. Executar aquesta tasca després d’escanejar la biblioteca o fer altres canvis que impliquin modificacions a la base de dades pot millorar el rendiment.",
"TaskOptimizeDatabase":"Optimitzar la base de dades",
"TaskKeyframeExtractorDescription":"Extreu fotogrames clau dels fitxers de vídeo per crear llistes de reproducció HLS més precises. Aquesta tasca pot durar molt de temps.",
"TaskKeyframeExtractor":"Extractor de fotogrames clau",
"TaskOptimizeDatabaseDescription":"Compacta la base de dades i trunca l'espai lliure. Executar aquesta tasca després d’escanejar la mediateca o fer d'altres canvis que impliquin modificacions a la base de dades pot millorar el rendiment.",
"TaskOptimizeDatabase":"Optimització de la base de dades",
"TaskKeyframeExtractorDescription":"Extracció de fotogrames clau dels fitxers de vídeo per a crear llistes de reproducció HLS més precises. Aquesta tasca pot allargar-se molt en el temps.",
"TaskKeyframeExtractor":"Extracció de fotogrames clau",
"External":"Extern",
"HearingImpaired":"Discapacitat auditiva",
"TaskRefreshTrickplayImages":"Generar miniatures de línia de temps",
"TaskRefreshTrickplayImagesDescription":"Crear miniatures de línia de temps per vídeos en les biblioteques habilitades.",
"TaskRefreshTrickplayImages":"Generació d'imatges de previsualització",
"TaskRefreshTrickplayImagesDescription":"Creació d'imatges de previsualització per a vídeos en les mediateques habilitades.",
"TaskCleanCollectionsAndPlaylistsDescription":"Esborra elements de col·leccions i llistes de reproducció que ja no existeixen.",
"TaskCleanCollectionsAndPlaylists":"Neteja les col·leccions i llistes de reproducció",
"TaskAudioNormalizationDescription":"Escaneja arxius per dades d'estabilització d'àudio.",
"TaskDownloadMissingLyricsDescription":"Baixar les lletres de les cançons",
"TaskDownloadMissingLyrics":"Baixar les lletres que falten",
"TaskCleanCollectionsAndPlaylists":"Neteja de les col·leccions i llistes de reproducció",
"TaskAudioNormalization":"Estabilització de l'àudio",
"TaskAudioNormalizationDescription":"Escaneja els fitxer per a obtenir dades de normalització de l'àudio.",
"TaskDownloadMissingLyricsDescription":"Descàrrega de les lletres de les cançons",
"TaskDownloadMissingLyrics":"Descàrrega de les lletres que faltin",
"TaskExtractMediaSegments":"Escaneig de segments multimèdia",
"TaskExtractMediaSegmentsDescription":"Extreu o obté segments multimèdia usant els connectors MediaSegment activats.",
"TaskMoveTrickplayImages":"Migra la ubicació de la imatge de Trickplay",
"TaskMoveTrickplayImagesDescription":"Mou els fitxers trickplay existents segons la configuració de la biblioteca."
"TaskMoveTrickplayImages":"Migració de la ubicació de la imatge de previsualització",
"TaskMoveTrickplayImagesDescription":"Mou els fitxers existents d'imatges de previsualització segons la configuració de la mediateca.",
"CleanupUserDataTaskDescription":"Neteja totes les dades d'usuari (estat de la visualització, estat dels preferits, etc.) del contingut multimèdia que no ha estat present durant almenys 90 dies.",
"CleanupUserDataTask":"Tasca de neteja de dades d'usuari"
"TaskExtractMediaSegmentsDescription":"Extrahiert oder empfängt Mediensegmente von Plugins die Mediensegmente nutzen.",
"TaskMoveTrickplayImages":"Verzeichnis für Trickplay-Bilder migrieren",
"TaskMoveTrickplayImagesDescription":"Trickplay-Bilder werden entsprechend der Bibliothekseinstellungen verschoben."
"TaskMoveTrickplayImagesDescription":"Trickplay-Bilder werden entsprechend der Bibliothekseinstellungen verschoben.",
"CleanupUserDataTask":"Aufgabe zur Bereinigung von Benutzerdaten",
"CleanupUserDataTaskDescription":"Löscht alle Benutzerdaten (Abspielstatus, Favoritenstatus, usw.) von Medien, die seit mindestens 90 Tagen nicht mehr vorhanden sind."
"TaskExtractMediaSegmentsDescription":"Εξάγει ή βρίσκει τμήματα πολυμέσων από επεκτάσεις που χρησιμοποιούν το MediaSegment."
"TaskExtractMediaSegmentsDescription":"Εξάγει ή βρίσκει τμήματα πολυμέσων από επεκτάσεις που χρησιμοποιούν το MediaSegment.",
"CleanupUserDataTaskDescription":"Καθαρίζει όλα τα δεδομένα χρήστη (κατάσταση παρακολούθησης, κατάσταση αγαπημένων κ.λπ.) από πολυμέσα που δεν υπάρχουν πλέον για τουλάχιστον 90 ημέρες.",
"TaskExtractMediaSegments":"Escanear Segmentos de Media",
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medio de plugins habilitados para MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Mueve archivos existentes de trickplay de acuerdo a la configuración de la biblioteca.",
"TaskMoveTrickplayImages":"Migrar Ubicación de Imagen de Trickplay"
"TaskMoveTrickplayImages":"Migrar Ubicación de Imagen de Trickplay",
"CleanupUserDataTaskDescription":"Limpia todos los datos del usuario (estado de visualización, estado de los favoritos, etc.) que no están presentes en la biblioteca por al menos 90 días.",
"CleanupUserDataTask":"Tarea de limpieza de datos de usuarios"
"TaskExtractMediaSegments":"Escaneo de segmentos de medios",
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medios de plugins habilitados para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay",
"TaskMoveTrickplayImagesDescription":"Mueve archivos de trickplay existentes según la configuración de la biblioteca."
"TaskMoveTrickplayImagesDescription":"Mueve archivos de trickplay existentes según la configuración de la biblioteca.",
"CleanupUserDataTask":"Tarea de limpieza de los datos del usuario",
"CleanupUserDataTaskDescription":"Limpia toda la información de usuario (Estado de última vez visto, favoritos, etc) del archivo media que no está presente por los últimos 90 días."
"TaskMoveTrickplayImagesDescription":"Mueve archivos de trickplay existentes según la configuración de la biblioteca.",
"TaskExtractMediaSegments":"Escaneo de segmentos de medios",
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medios de plugins habilitados para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay"
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay",
"CleanupUserDataTask":"Tarea de limpieza de datos del usuario",
"CleanupUserDataTaskDescription":"Limpia todos los datos del usuario (estado de visualización, favoritos, etc.) de los medios que ya no están disponibles desde hace al menos 90 días."
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medios de complementos habilitados para MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Mueve archivos de trickplay existentes según la configuración de la biblioteca.",
"TaskExtractMediaSegments":"Escaneo de segmentos de medios",
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay"
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay",
"CleanupUserDataTask":"Tarea de limpieza de datos de usuario",
"CleanupUserDataTaskDescription":"Limpia todos los datos de usuario (estado de visualización, favoritos, etc.) que no están presentes en la biblioteca por al menos 90 días."
"TaskMoveTrickplayImagesDescription":"Lehendik dauden trickplay fitxategiak liburutegiaren ezarpenen arabera mugitzen dira.",
"TaskAudioNormalizationDescription":"Audio normalizazio datuak lortzeko fitxategiak eskaneatzen ditu."
"TaskAudioNormalizationDescription":"Audio normalizazio datuak lortzeko fitxategiak eskaneatzen ditu.",
"CleanupUserDataTaskDescription":"Gutxienez 90 egunez dagoeneko existitzen ez den multimediatik erabiltzaile-datu guztiak (ikusteko egoera, gogokoen egoera, etab.) garbitzen ditu.",
"CleanupUserDataTask":"Erabiltzaileen datuak garbitzeko zeregina"
"CleanupUserDataTaskDescription":"Puhdistaa kaikki käyttäjätiedot (katselutila, suosikit ym.) medioista, joita ei ole ollut saatavilla yli 90 päivään."
"TaskMoveTrickplayImagesDescription":"Déplace les fichiers trickplay existants en fonction des paramètres de la bibliothèque.",
"TaskDownloadMissingLyrics":"Télécharger les paroles des chansons manquantes",
"TaskMoveTrickplayImages":"Changer l'emplacement des images Trickplay",
"TaskExtractMediaSegmentsDescription":"Extrait ou obtient des segments de média à partir des plugins compatibles avec MediaSegment."
"TaskExtractMediaSegmentsDescription":"Extrait ou obtient des segments de média à partir des plugins compatibles avec MediaSegment.",
"CleanupUserDataTaskDescription":"Nettoie toutes les données utilisateur (état de la montre, statut favori, etc.) des supports qui ne sont plus présents depuis au moins 90 jours.",
"CleanupUserDataTask":"Tâche de nettoyage des données utilisateur"
"TaskExtractMediaSegments":"Analyse des segments de média",
"TaskMoveTrickplayImages":"Changer l'emplacement des images Trickplay",
"TaskExtractMediaSegmentsDescription":"Extrait ou obtient des segments de média à partir des plugins compatibles avec MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Déplace les fichiers trickplay existants en fonction des paramètres de la bibliothèque."
"TaskMoveTrickplayImagesDescription":"Déplace les fichiers trickplay existants en fonction des paramètres de la bibliothèque.",
"CleanupUserDataTaskDescription":"Nettoie toutes les données utilisateur (état de la montre, statut favori, etc.) des supports qui ne sont plus présents depuis au moins 90 jours.",
"CleanupUserDataTask":"Tâche de nettoyage des données utilisateur"
"CleanupUserDataTaskDescription":"Glanann sé gach sonraí úsáideora (stádas faire, stádas is fearr leat srl.) ó mheáin nach bhfuil i láthair a thuilleadh ar feadh 90 lá ar a laghad."
"TaskMoveTrickplayImages":"Migrar a localización da imaxe de Trickplay",
"TaskMoveTrickplayImagesDescription":"Move os ficheiros de reprodución con trickplay existentes segundo a configuración da biblioteca.",
"TaskRefreshTrickplayImages":"Xerar imaxes de Trickplay",
"TaskAudioNormalizationDescription":"Analiza ficheiros para obter datos de normalización de audio."
"TaskAudioNormalizationDescription":"Analiza ficheiros para obter datos de normalización de audio.",
"CleanupUserDataTask":"Tarefa de limpeza de datos do usuario",
"CleanupUserDataTaskDescription":"Limpa todos os datos do usuario (Estado de visualización, estado de favorito, etc) da multimedia que leve non presente polo menos durante 90 días."
"CleanupUserDataTaskDescription":"Briše sve korisničke podatke (stanje gledanja, status favorita itd.) s medija koji više nisu prisutni najmanje 90 dana."
"TaskMoveTrickplayImagesDescription":"A médiatár-beállításoknak megfelelően áthelyezi a meglévő trickplay fájlokat.",
"TaskExtractMediaSegmentsDescription":"Kinyeri vagy megszerzi a médiaszegmenseket a MediaSegment támogatással rendelkező bővítményekből."
"TaskExtractMediaSegmentsDescription":"Kinyeri vagy megszerzi a médiaszegmenseket a MediaSegment támogatással rendelkező bővítményekből.",
"CleanupUserDataTaskDescription":"Legalább 90 napja nem elérhető médiákhoz kapcsolódó összes felhasználói adat (pl. megtekintési állapot, kedvencek) törlése.",
"CleanupUserDataTask":"Felhasználói adatok tisztítása feladat"
"TaskAudioNormalizationDescription":"Pindai file untuk data normalisasi audio.",
"TaskAudioNormalization":"Normalisasi Audio",
"TaskCleanCollectionsAndPlaylists":"Bersihkan koleksi dan daftar putar",
"TaskCleanCollectionsAndPlaylistsDescription":"Menghapus item dari koleksi dan daftar putar yang sudah tidak ada."
"TaskCleanCollectionsAndPlaylistsDescription":"Menghapus item dari koleksi dan daftar putar yang sudah tidak ada.",
"TaskDownloadMissingLyricsDescription":"Unduh lirik untuk lagu",
"TaskExtractMediaSegmentsDescription":"Mengekstrak atau memperoleh segmen media dari plugin yang mendukung MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Memindahkan file trickplay yang sudah ada sesuai dengan pengaturan pustaka.",
"CleanupUserDataTaskDescription":"Membersihkan semua data pengguna (status tontonan, status favorit, dll.) dari media yang sudah tidak ada selama setidaknya 90 hari.",
"TaskExtractMediaSegments":"Scan Segmen media",
"TaskMoveTrickplayImages":"Migrasikan Lokasi Gambar Trickplay",
"TaskDownloadMissingLyrics":"Unduh Lirik yang Hilang",
"CleanupUserDataTask":"Tugas Pembersihan Data Pengguna"
"TaskCleanCollectionsAndPlaylists":"Hreinsa söfn og spilunarlista",
"TaskCleanCollectionsAndPlaylistsDescription":"Fjarlægir hluti úr söfnum og spilalistum sem eru ekki lengur til.",
"TaskDownloadMissingLyricsDescription":"Sækja söngtexta fyrir lög",
"TaskDownloadMissingLyrics":"Sækja söngtexta sem vantar"
"TaskDownloadMissingLyrics":"Sækja söngtexta sem vantar",
"TaskExtractMediaSegments":"Skönnun efnishluta",
"CleanupUserDataTask":"Hreinsun notendagagna",
"CleanupUserDataTaskDescription":"Hreinsar öll notendagögn (spilunarstöðu, uppáhöld o.s.frv.) um gögn sem hafa ekki verið til staðar í að lámarki 90 daga."
"CleanupUserDataTask":"Task di pulizia dei dati utente",
"CleanupUserDataTaskDescription":"Pulisce tutti i dati utente (stato di visione, status preferiti, ecc.) dai contenuti non più presenti da almeno 90 giorni."
"TaskRefreshChapterImagesDescription":"Sukuria vaizdo įrašų, kuriuose yra skyrių, miniatiūras.",
"TaskRefreshChapterImages":"Ištraukti skyrių vaizdus",
"TaskCleanCache":"Išvalyti talpyklą",
"TaskCleanCacheDescription":"Ištrina talpyklos failus, kurių daugiau nereikia sistemai.",
"TasksChannelsCategory":"Internetiniai Kanalai",
"TasksChannelsCategory":"Internetiniai kanalai",
"TasksApplicationCategory":"Programa",
"TasksLibraryCategory":"Mediateka",
"TasksLibraryCategory":"Biblioteka",
"TasksMaintenanceCategory":"Priežiūra",
"TaskCleanActivityLog":"Išvalyti veiklos žurnalą",
"Undefined":"Neapibrėžtas",
"Forced":"Priverstas",
"Forced":"Priverstinis",
"Default":"Numatytas",
"TaskCleanActivityLogDescription":"Ištrina veiklos žuranlo įrašus, kurie yra senesni nei nustatytas amžius.",
"TaskCleanActivityLogDescription":"Ištrina senesnius nei nustatytas amžius veiklos žurnalo įrašus.",
"TaskOptimizeDatabase":"Optimizuoti duomenų bazę",
"TaskKeyframeExtractorDescription":"Iš vaizdo įrašo paruošia reikšminius kadrus, kad būtų sukuriamas tikslenis HLS grojaraštis. Šios užduoties vykdymas gali ilgai užtrukti.",
"TaskOptimizeDatabaseDescription":"Suspaudžia duomenų bazę ir atlaisvina vietą. Paleidžiant šią užduotį, po bibliotekos skenavimo arba kitų veiksmų kurie galimai modifikuoja duomenų bazę, gali pagerinti greitaveiką.",
"TaskMoveTrickplayImagesDescription":"Perkelia egzistuojančius trickplay failus pagal bibliotekos nustatymus.",
"TaskDownloadMissingLyricsDescription":"Parsisiųsti dainų žodžius"
"TaskDownloadMissingLyricsDescription":"Parsisiųsti dainų žodžius",
"CleanupUserDataTask":"Naudotojo duomenų valymo užduotis",
"CleanupUserDataTaskDescription":"Iš medijos, kurios nebėra bent 90 dienų, išvalo visus naudotojo duomenis (žiūrėjimo būseną, mėgstamiausią būseną ir t. t.)."
"CleanupUserDataTask":"Lietotāju datu tīrīšanas uzdevums",
"CleanupUserDataTaskDescription":"Notīra visus lietotāja datus (skatīšanās stāvokļus, favorītu statusi utt.) no medijiem, kas vairs nav pieejami vismaz 90 dienas."
"AuthenticationSucceededWithUserName":"{0} berjaya disahkan",
"Books":"Buku-buku",
"Books":"Buku",
"CameraImageUploadedFrom":"Gambar baharu telah dimuat naik melalui {0}",
"Channels":"Saluran",
"ChapterNameValue":"Bab {0}",
@@ -99,7 +99,7 @@
"TasksMaintenanceCategory":"Penyelenggaraan",
"Undefined":"Tidak ditentukan",
"Forced":"Dipaksa",
"Default":"Lalai",
"Default":"Default",
"TaskCleanCache":"Bersihkan Direktori Cache",
"TaskCleanActivityLogDescription":"Padamkan entri log aktiviti yang lebih tua daripada usia yang dikonfigurasi.",
"TaskRefreshPeople":"Segarkan Orang",
@@ -136,5 +136,7 @@
"TaskCleanCollectionsAndPlaylists":"Bersihkan koleksi dan senarai audio video",
"TaskAudioNormalization":"Normalisasi Audio",
"TaskAudioNormalizationDescription":"Mengimbas fail-fail untuk data normalisasi audio.",
"TaskCleanCollectionsAndPlaylistsDescription":"Mengalih keluar item daripada koleksi dan senarai audio video yang tidak wujud lagi."
"TaskCleanCollectionsAndPlaylistsDescription":"Mengalih keluar item daripada koleksi dan senarai audio video yang tidak wujud lagi.",
"CleanupUserDataTaskDescription":"Membersihkan semua data pengguna (keadaan tontonan, status kegemaran, dan sebagainya) daripada media yang tidak lagi wujud sekurang-kurangnya selama 90 hari.",
"CleanupUserDataTask":"Tugas pembersihan data pengguna"
"TaskDownloadMissingLyricsDescription":"Last ned sangtekster",
"TaskExtractMediaSegments":"Skann mediasegment",
"TaskMoveTrickplayImages":"Migrer bildeplassering for Trickplay",
"TaskMoveTrickplayImagesDescription":"Flytter eksisterende Trickplay-filer i henhold til bibliotekseinstillingene.",
"TaskExtractMediaSegmentsDescription":"Trekker ut eller henter mediasegmenter fra plugins som støtter MediaSegment."
"TaskMoveTrickplayImagesDescription":"Flytter eksisterende Trickplay-filer i henhold til biblioteksinstillingene.",
"TaskExtractMediaSegmentsDescription":"Trekker ut eller henter mediasegmenter fra plugins som støtter MediaSegment.",
"CleanupUserDataTaskDescription":"Sletter all brukerdata (avspillings-status, favoritter osv.) fra innhold som har vært utilgjengelig i minst 90 dager.",
"CleanupUserDataTask":"Oppgave for opprydding av brukerdata"
"TaskMoveTrickplayImagesDescription":"Verplaatst bestaande trickplay-bestanden op basis van de bibliotheekinstellingen.",
"TaskExtractMediaSegments":"Scannen op mediasegmenten"
"TaskExtractMediaSegments":"Scannen op mediasegmenten",
"CleanupUserDataTaskDescription":"Wist alle gebruikersgegevens (kijkstatus, favorieten, etc.) van media die al minstens 90 dagen niet meer aanwezig zijn.",
"TaskMoveTrickplayImages":"Migruj lokalizację obrazu Trickplay",
"TaskExtractMediaSegmentsDescription":"Wyodrębnia lub pobiera segmenty mediów z wtyczek obsługujących MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Przenosi istniejące pliki Trickplay zgodnie z ustawieniami biblioteki."
"TaskMoveTrickplayImagesDescription":"Przenosi istniejące pliki Trickplay zgodnie z ustawieniami biblioteki.",
"CleanupUserDataTaskDescription":"Usuwa wszystkie dane użytkownika (stan oglądanych, status ulubionych itp.) z mediów, które nie są dostępne od co najmniej 90 dni.",
"CleanupUserDataTask":"Zadanie czyszczenia danych użytkownika"
"TaskMoveTrickplayImagesDescription":"Move os arquivos do trickplay de acordo com as configurações da biblioteca.",
"TaskExtractMediaSegments":"Varredura do segmento de mídia",
"TaskExtractMediaSegmentsDescription":"Extrai ou obtém segmentos de mídia de plug-ins habilitados para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar o local da imagem do Trickplay"
"TaskMoveTrickplayImages":"Migrar o local da imagem do Trickplay",
"CleanupUserDataTask":"Tarefa de limpeza de dados do usuário",
"CleanupUserDataTaskDescription":"Limpa todos os dados do usuário (estado de visualização, status de favorito, etc.) de mídias que não estão presentes por pelo menos 90 dias."
"TaskMoveTrickplayImages":"Migrar a localização da imagem do Trickplay",
"TaskDownloadMissingLyricsDescription":"Transferir letra para músicas",
"TaskExtractMediaSegmentsDescription":"Extrai ou obtém segmentos de multimédia a partir de plugins com suporte para MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Move os ficheiros trickplay existentes de acordo com as definições da mediateca."
"TaskMoveTrickplayImagesDescription":"Move os ficheiros trickplay existentes de acordo com as definições da mediateca.",
"CleanupUserDataTaskDescription":"Apaga todos os dados de utilizador (estados de reprodução, favoritos, etc) de arquivos média não presentes há 90 dias ou mais.",
"CleanupUserDataTask":"Limpeza de dados de utilizador"
"TaskMoveTrickplayImagesDescription":"Move os ficheiros trickplay existentes de acordo com as definições da mediateca.",
"TaskExtractMediaSegments":"Analisar segmentos de multimédia",
"TaskExtractMediaSegmentsDescription":"Extrai ou obtém segmentos de multimédia a partir de plugins com suporte para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar a localização da imagem do Trickplay"
"TaskMoveTrickplayImages":"Migrar a localização da imagem do Trickplay",
"CleanupUserDataTask":"Task de limpeza de dados do usuário",
"CleanupUserDataTaskDescription":"Remove todos os dados do usuário (progresso, favoritos etc) de mídias que não estão presentes há pelo menos 90 dias."
"TaskDownloadMissingLyricsDescription":"Descarcă versuri pentru melodii"
"TaskDownloadMissingLyricsDescription":"Descarcă versuri pentru melodii",
"CleanupUserDataTask":"Sarcina de curatare a datelor utilizatorului",
"CleanupUserDataTaskDescription":"Sterge toate datele utilizatorului (starea vizionarii, starea favoritelor etc.) de pe suporturile media care nu mai sunt prezente timp de cel puțin 90 de zile."
"CleanupUserDataTaskDescription":"Очищает все пользовательские данные (состояние просмотра, статус избранного и т.д.) с медиа, отсутствующих по меньшей мере в течение 90 дней."
"TaskCleanCollectionsAndPlaylists":"Pastron koleksionet dhe listat e këngëve",
"TaskCleanCollectionsAndPlaylistsDescription":"Heq elementet nga koleksionet dhe listat e këngëve që nuk ekzistojnë më.",
"TaskAudioNormalization":"Normalizimi i audios",
"TaskAudioNormalizationDescription":"Skannon skedarët për të dhëna të normalizimit të audios."
"TaskAudioNormalizationDescription":"Skannon skedarët për të dhëna të normalizimit të audios.",
"CleanupUserDataTaskDescription":"Pastron të gjitha të dhënat e përdorueseve (gjendja e shikimit, statusi i të preferuarave etj.) nga mediat që nuk janë më të pranishme për të paktën 90 ditë.",
"CleanupUserDataTask":"Veprim për pastrimin të dhënave të përdorueseve"
"TaskExtractMediaSegments":"Skanning av mediesegment",
"TaskExtractMediaSegmentsDescription":"Extraherar eller hämtar ut mediesegmen från tillägg som stöder MediaSegment.",
"TaskMoveTrickplayImages":"Migrera platsen för Trickplay-bilder",
"TaskMoveTrickplayImagesDescription":"Flyttar befintliga trickplay-filer enligt bibliotekets inställningar."
"TaskMoveTrickplayImagesDescription":"Flyttar befintliga trickplay-filer enligt bibliotekets inställningar.",
"CleanupUserDataTaskDescription":"Tar bort all användardata (såsom vad du sett, favoriter med mera) för media som inte funnits på enheten på minst 90 dagar.",
"CleanupUserDataTask":"Uppgift för rensning av användardata"
"TaskMoveTrickplayImages":"ட்ரிக்பிளே பட இருப்பிடத்தை நகர்த்து",
"TaskMoveTrickplayImagesDescription":"நூலக அமைப்புகளுக்கு ஏற்ப ஏற்கனவே உள்ள ட்ரிக்பிளே கோப்புகளை நகர்த்துகிறது."
"TaskMoveTrickplayImagesDescription":"நூலக அமைப்புகளுக்கு ஏற்ப ஏற்கனவே உள்ள ட்ரிக்பிளே கோப்புகளை நகர்த்துகிறது.",
"TaskExtractMediaSegments":"மீடியா பிரிவு ஸ்கேன்",
"TaskExtractMediaSegmentsDescription":"மீடியாசெக்மென்ட் இயக்கப்பட்ட செருகுநிரல்களிலிருந்து மீடியா பிரிவுகளைப் பிரித்தெடுக்கிறது அல்லது பெறுகிறது.",
"CleanupUserDataTaskDescription":"குறைந்தது 90 நாட்களுக்கு இல்லாத மீடியாவிலிருந்து அனைத்து பயனர் தரவையும் (கண்காணிப்பு நிலை, பிடித்த நிலை போன்றவை) சுத்தம் செய்கிறது.",
"CleanupUserDataTask":"பயனர் தரவை சுத்தம் செய்யும் பணி"
"CleanupUserDataTaskDescription":"En az 90 gün boyunca artık mevcut olmayan medyadaki tüm kullanıcı verilerini (İzleme durumu, favori durumu vb.) temizler."
"TaskMoveTrickplayImages":"Змінити місце розташування Trickplay-зображень",
"TaskExtractMediaSegmentsDescription":"Витягує або отримує медіа-сегменти з плагінів з підтримкою MediaSegment."
"TaskExtractMediaSegmentsDescription":"Витягує або отримує медіа-сегменти з плагінів з підтримкою MediaSegment.",
"CleanupUserDataTask":"Завдання очищення даних користувача",
"CleanupUserDataTaskDescription":"Очищає всі дані користувача (стан перегляду, статус обраного тощо) з медіа, які перестали бути доступними щонайменше 90 днів тому."
"TaskExtractMediaSegmentsDescription":"Trích xuất hoặc lấy các phân đoạn phương tiện từ các plugin hỗ trợ MediaSegment.",
"TaskMoveTrickplayImages":"Di chuyển vị trí hình ảnh Trickplay",
"TaskMoveTrickplayImagesDescription":"Di chuyển các tập tin trickplay hiện có theo cài đặt thư viện.",
"TaskExtractMediaSegments":"Quét Phân Đoạn Phương Tiện"
"TaskExtractMediaSegments":"Quét Phân Đoạn Phương Tiện",
"CleanupUserDataTask":"Tác vụ dọn dẹp dữ liệu người dùng",
"CleanupUserDataTaskDescription":"Làm sạch tất cả dữ liệu người dùng (trạng thái xem, trạng thái yêu thích, v.v.) từ phương tiện không còn có mặt trong ít nhất 90 ngày."
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.