HN 日本語サマリー

← 一覧へ戻る
オープンソース

Jellyfin 12.0

Jellyfin 12.0 (jellyfin.org)

511 pointsby 0xC0ncord243 コメント

要約

Jellyfin 12.0は、データベース変換の完了、パフォーマンスの向上、書籍やコミックへのサポート強化に焦点を当てた新しい安定版リリースです。このバージョンでは、データベーススキーマの変更、ユーザー名のケースインセンシビリティ対応、および複数バージョンのエピソードサポートが導入されています。アップグレードには、データベースのバックアップ、Jellyfinの停止、およびライブラリのスキャンの実行が不可欠です。

全文翻訳

Jellyfin 12.0

Jellyfinの新しい安定版リリースである12.0をお届けできることを嬉しく思います。このリリースは10.11の方向性を引き継ぎ、データベース変換が開始したことを完了させ、その新しい基盤を実際のパフォーマンス作業に転換し、長年求められてきた書籍やコミックのサポートを最終的に提供します。

システムをアップグレードして実行するために知っておくべきことの簡単な概要だけを知りたい場合は、すぐ下の「TL; DR」セクションをお読みいただくか、Jellyfin 12.0のすべての主要機能と改善点の完全な説明を読むために続けてお読みください!また、サーバーおよびWebのGitHubリリースで完全な変更ログを確認することもできます。

  • Cody

TL; DR

info

Jellyfin 12.0にアップグレードする前に、このセクションを読むことが非常に重要です! そうしないと問題が発生する可能性があります!不明な点がある場合や問題が発生した場合は、いつでもチャットでヘルプを求めてください。

このリリースではデータベーススキーマが変更され、初回起動時にデータが積極的に書き換えられるため、以前のバージョンに戻る唯一の方法はバックアップのみです。

  1. 常にそうであるように、メジャーアップグレードの際は、Jellyfinを停止し、フルマニュアルバックアップをデータと設定ディレクトリに取得してからアップグレードしてください!

  2. Jellyfin 12.0にアップグレードする前に、Jellyfin 10.10.7または10.11.xのいずれかのリリースを実行している必要があります。10.11.xから直接アップグレードすることは完全にサポートされており、中間ステップは必要ありません。10.10.7より古いバージョンを使用している場合は、まず10.10.7にアップグレードしてから、12.0にアップグレードしてください。

  3. アップグレード前にユーザー名を確認してください。 ユーザー名は現在、大文字小文字を区別しないため、2つのアカウントで大文字小文字の違いだけを持つ名前は使用できません。このパターンに一致するユーザーがいる場合、データベース移行は失敗します。

  4. アップグレード後の完全なライブラリスキャンが必要です。 代替バージョンを保存する方法を修正する一環として、Jellyfinが自動的にグループ化したバージョン(自分でマージしたものではない)は、アップグレード中にクリアされます。スキャンを実行するまで、それらのバージョンは欠落しているように見えます。

  5. アップグレード後の最初のスキャンは、通常よりも大幅に時間がかかります。また、一部の映画は新規追加として表示される場合があります。これは予期された動作です。Jellyfinは現在、ライブラリのすべてのアイテムをディスク上のファイルと比較して、以前のバージョンの残骸をクリアし、以前に誤って分類されたものはすべて修正されます。移行の実行中にサーバーを停止しないでください。

  6. インストールが完了したら、UXの異常に気づいた場合は、Jellyfinインスタンスのハードリフレッシュ(例: Ctrl+Shift+Rなど)および/またはWebキャッシュのクリアを行ってください。キャッシュされたアセットの破損は、そのような問題の主な原因です。

  7. アップグレード前にサードパーティ製プラグインを削除してください。 10.11用にビルドされたプラグインは12.0ではロードされず、作者からのアップデートされたビルドが必要になるため、それらを再度追加する前に作者が対応する時間を確保してください。公式プラグインは12.0のサポートのために更新されています。

  8. 非常に古いサードパーティ製クライアントは動作しなくなります。 レガシーな/emby/および/mediabrowser/アドレスのサポートが削除され、サインインの非推奨の方法は、既存のサーバーでも無効になりました。長年アップデートされていないクライアントがこのリスクにさらされています。

  9. このリリースにはセキュリティ修正が含まれているため、準備ができたら古いリリースに留まるのではなく、アップグレードすることをお勧めします。

  10. Jellyfinのメジャーリリースでは常にバグが存在します。バグレポートには「[12.0]」をプレフィックスとして付けていただけると、迅速なトリアージが可能になります。また、ポイント1をもう一度確認してください:バックアップを取得してください。

それでは、クールな新機能に移りましょう!

なぜ12.0?

このリリースで最も目立つ変更はその名前です。バージョン命名規則からメジャーバージョン「10」を削除しました。本来10.12.0であったものは、単に12.0となり、サーバーはバージョンを12.0.0と報告します。10.11.xが古いスキームを使用した最後のリリースブランチでした。

理由は、1月に最初に提起し、5月に確認した10.11.0の後のフィードバックです。10.11.0のようなリリースは、合理的に見てメジャーリリースでしたが、バージョン番号はマイナーアップデートとして提示され、人々はそれに期待してアップグレードしました。先頭の10.は決して変わらず、何も伝えてこなかったため、実際に重要な数値を中央に押しやり、「メジャー」リリースをマイナーに見せていました。これを削除することで、リリースが大規模な場合に最初の数値が移動します。

Jellyfinのバージョン文字列を解析するクライアント、監視チェック、デプロイメントスクリプト、コンテナタグのピンなどを維持している場合は、アップグレード前に確認すべき項目です。

新しいデータベースのチューニング

Jellyfin 10.11.0はライブラリデータベースの仕組みを再構築し終え、このリリースでのパフォーマンス作業への道を開きました。まだ完了していませんが、ブラウジング時に大きな違いに気づくはずです。

最も大きな変更点の一つは、プレイリストとコレクションの保存方法です。以前は、プレイリスト内のすべてのものがプレイリスト自体の中に1つの大きなリストとして保持されており、データベースはそのリストの中を見ることができませんでした。知る必要があることは何でも、プレイリスト全体をロードして展開してからでないとできませんでした。アイテム数、視聴済み量の計算、単一ページの表示など、すべてが全体をロードするのと同じコストがかかっていました。編集も同様で、1つのアイテムの追加または削除は、リスト全体を書き戻すことを意味しました。しかし、現在、プレイリストの各アイテムは独自の行になっています。データベースは行数を数え、1ページを返し、残りに触れることなく単一のアイテムを追加または削除できるため、これは大規模なプレイリストで大きな改善になるはずです。コレクションとボックスセットも同様の方法で保存されており、同じ修正が適用されています。

それに加えて:

  • 大量のアイテムを一度に削除しても、途中で失敗しなくなりました。
  • 「視聴を続ける」、「次へ」、「再視聴」、「音楽の最新メディア」、「アーティスト検索」、およびフォルダの視聴済みカウントが高速化されました。
  • 重いデータベースメンテナンスはライブラリスキャン中に実行されなくなったため、両者が同じリソースを競合するのを停止します。

これらのほとんどは、以前フリーズしていたページがフリーズしなくなったという形で現れます。

この作業はJellyfinがライブラリを読み取る方法に適用されたものであり、ライブラリスキャナーには適用されていないことに注意してください。スキャナーが副次効果として少し速くなるかもしれませんが、今回はスピードアップは目標ではありませんでした。

初回起動時に実行されること

いつものように、Jellyfinの新しいリリースには複数のデータベースマイグレーションが付属しています。これらのマイグレーションは、ライブラリのサイズと蓄積された不正なデータの量に応じて完了するのに時間がかかります。

初回起動時に発生させるのではなく、このステップを意図的に実行したい場合は、サーバーは現在、--mode MigrateSystemを受け入れます。これはアップグレードを実行し、Jellyfinの残りの部分を開始せずに終了します。

エピソードの複数バージョン

代替バージョンは、導入以来、映画専用の機能でした。12.0ではエピソードにも対応するため、放送版と拡張版を持つシリーズや、同じエピソードの1080pと4Kのコピーなど、映画のようにグループ化できるようになりました。これには、実際に視聴していたバージョンに追従するレジュームデータも含まれます。

これは、アップグレード後の必須スキャン機能の背後にある機能でもあります。バージョンをエピソード用に正しく機能させるためには、バージョンリンクの保存方法を修正する必要があり、自動的に解決されたバージョンはディスク上のファイルから再構築する必要があります。

書籍とコミック、今回は正しく

書籍は、Jellyfinでのビデオ再生を優先するために、しばしば後回しにされてきましたが、このリリースはその状況を変えるための取り組みの始まりです。Bookshelfプラグインがかつて行っていたことのほとんどは、サーバー自体に移動されました。

サーバー側:

  • EPUBおよびサポートされているすべてのコミックアーカイブ形式のポスターが生成され、オーディオブックファイルには外部カバーが機能します。
  • 書籍のメタデータは、OPFおよびComicInfoファイル、またはComicBookInfoコメントから直接読み取られ、プラグインは不要です。
  • 名前、インデックス、年、シリーズは書籍のファイル名から読み取られ、ボリューム番号とチャプター番号は、存在する場合にコミックのファイル名から取得されます。
  • ページ数はコミックアーカイブとPDFから抽出されます。
  • チャプターはオーディオブックから抽出されます。
  • Bookshelfは、GoogleBooksとComicVineの個別のプロバイダーに分割され、新しいOpenLibraryプラグインがメタデータと画像を提供します。
  • ISBNの外部IDとリンクがサポートされています。

Webクライアント側:

  • ビュータイプとページングを備えたモダンな書籍ライブラリレイアウト、および著者、コレクション、フォルダタブがあります。
  • 書籍には著者に関する情報が表示され、著者には書籍とオーディオブックが表示されます。
  • リーディングインターフェースは、すべての書籍タイプで再設計および標準化され、統一されたフルスクリーン動作とPDF用のスワイプナビゲーションが備わっています。
  • サポートされている電子書籍の進捗インジケーターが再び機能し、インデックス番号とリリース日で並べ替えが可能になり、EPUBのフォントサイズ選択が改善されました。
  • iOSデバイスでオーディオブックのバックグラウンド再生が機能します。

note

Bookshelfプラグインは非推奨になりました。その機能はサーバーにマージされたか、ComicVineおよびGoogleBooksプロバイダーに抽出されました。

より良いレコメンデーションと、プラグインが拡張できる検索

「類似アイテム」や「おすすめ」行がアイデアを得る場所は、もはや固定されていません。ライブラリごとにメタデータプロバイダーを選択するのと同じ場所でソースを選択できるようになり、映画には1つのソースを、音楽には別のソースを使用できます。

ListenBrainzはサーバーにプロバイダーの1つとして同梱されています。音楽ライブラリをそれにポイントすると、類似アーティストのおすすめは、タグだけではなく実際のリスニングデータから取得されます。

検索も同様に機能するようになりました。プラグインはJellyfin自身の結果と並んで独自の結果を追加できます。Jellyfinが同時にどこか他の場所を検索することを望んだことがあるなら、それはフォークではなくプラグインになりました。どちらのシステムも、プラグイン作者向けにリリースノートに記載されています。

モダンレイアウトがデフォルトになりました

「実験的」として出荷されたレイアウトは、現在単にモダンレイアウトとなり、デスクトップとモバイルでは、明示的に別のものを選択していない限り、デフォルトになります。以前のレイアウトは引き続き利用可能で、現在はレガシーと呼ばれています。テレビは変更されていません。TVデバイスは引き続きTVレイアウトを使用しており、これはレガシーアプリ上で実行されます。

デフォルトにしたことに加えて、レイアウトはそれに伴う洗練を受けました:

  • すべてのテーマ(ダーク、ライト、WMC、ブルーラディアンス、Apple TV、パープルヘイズ)は、CSS変数上に構築された共有ベーステーマから派生するようになりました。カスタムテーマを維持している場合は、確認する価値があります。
  • ライブラリツールバーがアプリバーにマージされ、スティッキーなライブラリヘッダーが備わっています。
  • コレクションとプレイリストのタブはすべてのライブラリで利用可能になり、コレクションはアイテム詳細ページに表示されます。
  • ミュージックビデオ、ミックスメディア、コレクションとプレイリスト、書籍のビューはすべて更新され、ホームビデオと写真ライブラリにはデフォルトのタブオプションとフォルダビューが追加されました。
  • オーディオおよび字幕言語の新しいフィルター、フィルターリセットボタン、スタジオ検索。

[画像: 更新されたモダンUIの写真]

[画像: 更新されたモダンUI - ムービーライブラリの写真]

アップグレード後に気づく可能性のある変更点

10.11以降、いくつかの動作が異なります。上記でカバーされたレガシークライアントの削除以外にも:

  • 字幕設定は、サーバー全体で一度設定するのではなく、ライブラリごとに設定されるようになりました。そのため、古いサーバー全体の字幕オプションは存在しなくなりました。
  • 並べ替えがより一貫性のあるものになりました。これは、一部のライブラリが以前とはわずかに異なる順序で表示されることを意味します。
  • アートワークはもはや実際のサイズを超えて引き伸ばされなくなりました。 低解像度のポスターは、フィットするように拡大されるのではなく、実際のサイズで表示されるようになったため、小さく見えますがシャープです。
  • .oggファイルはビデオではなくオーディオとして扱われます。 .oggビデオファイルがあった場合、次回のスキャンで再ソートされます。
  • ユーザー名は大文字と小文字の間で変更できるようになりました。 その一部として、2つのアカウントで大文字小文字の違いだけを持つ名前を持つことはできなくなりました。サーバーに大文字小文字の違いだけを持つユーザー名がある場合、データベース移行は失敗します。
  • メディアのシンボリックリンクは、ライブラリスキャン時ではなく、再生時にたどられます。

セキュリティ

このリリースには、サーバーとWebクライアントの両方に多数のセキュリティ修正が含まれています。そのうちのいくつかは、細工されたリクエストがJellyfinが提供すべきディレクトリの外のファイルに到達する可能性のある方法を閉鎖します。その他は、設定ミスのあるサーバーでサインインせずにセットアップウィザードが再実行されるのを防ぎ、安全でない名前のプラグインパッケージを拒否し、より多くの場所でペアレンタルコントロールを適用し、Webクライアントのクロスサイトスクリプティングの問題を修正します。

新機能と機能強化

ユーザーエクスペリエンス - Webクライアント
  • 「視聴中」プロンプト。
  • 再生中に,と.でフレーム単位でシークします。
  • シークバーをドラッグするとプレビューバブルにチャプター名が表示され、再生情報オーバーレイはよりコンパクトになりながらも詳細を表示します。
  • フォルダを再生済みとしてマークできます。
  • 「次回の表示」ビューが改善され、シリーズライブラリに「すべて再生」および「シャッフル」ボタンが追加されました。
  • 写真の表示中や読書中はスクリーンセーバーが無効になり、モダンレイアウトでスクリーンセーバーの時間設定が利用可能です。
  • 複数の役割を持つクルーメンバーは単一のカードに統合され、テレビ番組のクリエイターがアイテム詳細ページに表示されます。
  • 写真スライドショーの遅延を設定可能になりました。
  • Webクライアントはブラウザにより多くのデータをキャッシュするため、以前に訪れた画面がより速く表示され、高解像度ディスプレイでアートワークがぼやけなくなります。
  • ゲームコントローラーのナビゲーション修正、ラテン文字以外のキーボードレイアウトで機能するキーボードショートカット、リモートの巻き戻しおよび早送りボタンのサポート。
管理者エクスペリエンス - Webクライアント
  • ログビューアはリフレッシュを必要とせず、ログをライブで追跡できます。
  • アクティビティページの並べ替えとフィルタリング。
  • 類似アイテムおよびレコメンデーションデータのソースは、ライブラリごとに設定可能です。
  • Jellyfinは現在、キャッシュディレクトリにCACHEDIR.tagをマークしているため、バックアップツールはそれらをスキップしてこれらのファイルをバックアップしないように認識します。
  • クライアントは特定の言語で応答を要求できるため、異なる言語を好むユーザーがいるサーバーの動作が改善されます。
  • データベースファイルをデフォルト以外の場所に保持できます。
  • 無効化されたプラグインは、再起動時に再度有効化されなくなりました。
  • バックアップは、破損したレコードにヒットしても完全に失敗しなくなり、バックアップを復元する前、またはライブラリスキャンが実行中にバックアップを開始する前に警告が表示されるようになりました。
  • バージョンとアクティビティ情報を表示する、再設計された起動インターフェース。
  • コレクションとプレイリストはライブラリでフィルタリングできるため、各ライブラリは自身のものだけを表示できます。
  • 人物を検索する際のフィルタリング方法が増え、オーディオのタイトル元の言語を優先するオプション、およびアイテムページに新しい「コレクション」リスト。
  • ライブTV:XMLTVの背景画像とエピソードサムネイルがインポートされ、到達不可能な「サーバーローカル」ストリーミングURLはクライアントに返されなくなり、XMLTVガイドのインポートは変更されていないプログラムをスキップするため、繰り返しガイドの更新が大幅に安価になります。
  • メタデータ:TVDB IDが映画に機能し、AudioDbアーティスト検索、ReplayGainアルバムゲインが音楽ファイルから読み取られ、MusicBrainzのルックアップはより回復力があり、ファイル名のWEB-DLタグが認識され、プロバイダーIDがシーズンとエピソードのフォルダ名に設定できます。
  • 既存の角括弧に加えて、波括弧と丸括弧がプロバイダー識別子値の解析でサポートされるようになりました。新しいエイリアスもサポートされています:tvdb(tvdbidの場合)、imdb(imdbidの場合)、tmdb(tmdbidの場合)。
  • データベース最適化タスクは、トリガー時およびシャットダウン時にDBを分析および真空化します。
  • 人物更新タスクは、削除された人物を適切にクリーンアップし、画像が欠落している人物の更新を確認します。
  • ライブTV:EPGはSchedulesDirect APIのエラーコードを尊重し、ロックアウトを防ぎます。HDHomeRunチューナーは、サポートするクライアントでダイレクトプレイするようになります。M3Uチューナーはダイレクトプレイしなくなり、代わりにレムキシングをデフォルトにします。
  • メタデータマネージャーを通じて、プレイリストライブラリ画像をすべてのユーザーに対して設定できるようになりました。プレイリストに重複するトラックが許可されるようになりました。
トランスコーディングとメディア処理
  • 新しいアップストリームFFmpeg 8.1に移行しました。
  • CUDAトランスポーズ、OCLスケーリング、OCLトーンマッピングのパフォーマンスを最適化しました。特に後者はMali GPUで最適化されました。
  • HLGトーンマッピングは、BT.2446 Method BのEOTFを使用するようになりました。
  • より良いデバイス互換性のために、Dolby Vision Profile 5の仕様準拠のdvh1 HLSバリアント。
  • ビデオをトランスコードしながらオーディオをレムキシングする際の、HLSでの潜在的なA/V非同期の問題を修正しました。
  • 字幕の書き込みはSubtitleEditを経由するようになり、古いSSAからASSへの変換とそれに伴うスタイルの損失を回避します。
  • VobSub字幕サポート、外部字幕はトランスコーディング時にMKVに埋め込むことができ、字幕抽出タイムアウトは設定可能で、画像ベースの字幕はレムキシング中にクライアントによってレンダリングできます。
  • 縦向きビデオを処理できないAndroid TVボックス向けのデバイスプロファイルオプション。これにより、横向きに撮影された携帯電話の映像が正しい向きで再生されます。
  • トリックプレイは、スキャン時に既に存在するファイルを再生成するのではなく取得し、インターレースビデオの重複を生成しなくなり、ソースファイルの不正なタイムスタンプで機能し、生成に失敗したときにクリーンアップします。
  • Webクライアントでのデバイスサポートの向上:webOS 25以降のMKVファイルでのDolby Vision、TVクライアントでのAV1ダイレクトストリーミング、Tizenでのアナモルフィックビデオダイレクトプレイ、iOSでは画面オフ時のバックグラウンド再生と、オーディオ正規化がピッチと速度に影響する問題の修正。

クライアント開発の変更点

以下の変更は、すべてのクライアントアプリケーション開発者に適用されます。徹底的にレビューし、必要に応じてアプリケーションを更新してください。

HTTP API
  • 非推奨の認証メカニズムはデフォルトで無効になりました。まだ移行していない場合は、このプルリクエストの詳細を確認してください。
  • GetItemsは非同期になり、includeItemTypesを含むリクエストに対してrecursiveが適用されます。同じクエリでも10.11とは異なる結果セットが返される場合があります。
  • ItemByNameの応答は制限され、人物は重複排除されます。
  • 新たに廃止されたがまだ機能するエンドポイント:GetTrailers(includeItemTypes=TrailerでGetItemsを使用)、GetArtistsおよびGetAlbumArtists(GetPersonsを使用)、GetArtistByName(GetPersonを使用)、GetMusicGenre(GetGenreを使用)、音楽ジャンルのインスタントミックスエンドポイント(GetInstantMixFromItemを使用)、GetRecordingsSeries、および起動ルート(設定エンドポイントを使用)。UserDto.HasPasswordも廃止され、有用な情報を提供しなくなりました。HLSコントローラーは仕様から非表示になりました。
  • Swashbuckleがv10に更新され、生成されるOpenAPIドキュメントが変更されました。SDKの再生成が必要です。
  • 削除されたルート:POST /Users/\{userId\}/EasyPassword、GET /Items/\{itemId\}/CriticReviews、GET /Environment/NetworkShares、POST /System/MediaEncoder/Path、およびGET /LiveTv/Recordings/Groups/\{groupId\}はすべて、403、404、または空の結果を返す廃止されたノーオペレーションでした。GET /QuickConnect/Initiateは機能し、POSTルートのエイリアスであったため、GET形式を使用しているクライアントはPOSTに切り替える必要があります。

APIサポートポリシーの一般的なリマインダーとして:エンドポイントがOpenAPI仕様にリストされていない場合は使用すべきではなく、エンドポイントまたはパラメータが廃止とマークされている場合は使用すべきではありません。非推奨は通常、削除される前にメジャーリリースサイクル全体でマークされます。

プラグイン
  • サーバーは.NET 10をターゲットとするようになり、いくつかのプラグインインターフェースが変更されました。 プラグインは12.0用に再ターゲットおよび再ビルドする必要があります。
  • プラグインが新しくできること: 検索結果の提供、類似性およびレコメンデーションデータの提供、コミックメタデータの提供、未放送および欠落しているエピソードデータの提供、キャストメンバーのための集計クレジットの使用、オーディオブックなどのビデオ以外のアイテムのチャプター保存、サーバーが認識しないユーザー名のパスワードリセット処理、アイテムデータの削除時に独自の抽出ファイルをクリーンアップすること。ライブTVプラグインは、サーバーを再実装するのではなく、サーバーを介してSchedules Directの可用性をクエリすることもできます。
  • 代替バージョンまたはプレイリストの内容を扱っていたプラグインは注意が必要です。それらはもはや親アイテム内に保存されていないためです。両方に対して新しいライブラリメソッドがあります。
  • 新しい、変更された、削除されたインターフェースの完全なリストはリリースノートにあります。ISearchEngine、IAuthenticationProvider.HasPassword、IItemRepositoryの一部、およびいくつかのIUserManagerメンバーが注目すべき変更点です。

内部TLS/SSLサポートの非推奨

10.11.0のリリースノートで、内部TLS/SSLサポートがこのリリースで削除されることを発表しました。その削除は将来のバージョンに延期されました。 理由に変更はありません。引き続きリバースプロキシの背後でJellyfinを実行することを推奨します。そのため、Jellyfinの組み込みTLSを使用してインターネットに公開されているインスタンスを実行している場合は、これは移行のための追加時間であり、猶予ではありません。

ハッピーウォッチング!