Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:blog:2021:08:plex-library

Исправление Plex-библиотеки

Точнее проверка вашей библиотеки с фильмами на предмет пропущенных сканером файлов. Собственно остро вопрос с этим встал после того, как я решил окончательно отказаться от неофициального агента Кинопоиска в пользу официального и нового агента Plex. Новый агент как-то жестко игнорировал некоторые файлы, а искать каждый и сверять показалось неинтересным.

Требования

  1. Собственно Plex
  2. PowerShell (Важно! Это не Windows PowerShell, а его Core-версия. Консоль у него тоже отдельная!)

Действуем

Открываем консоль Powershell pwsh.exe и переходим в каталог с фильмами. Например:

cd "D:\Films"

Теперь нам надо получить имена всех видео-файлов:

$files = Get-ChildItem -Recurse -Include *.mkv,*avi,*.mp4 | select -ExpandProperty name

Ну а теперь самое интересное - получение данных от Plex:

$token = '?X-Plex-Token=<ваш_ключ>' # меняем <ваш_ключ>
$url = 'https://<ваш_локальный_ip_plex>:32400' # меняем <ваш_локальный_ip_plex>
$librarySectionID = '<ваш_id_категории>' # меняем <ваш_id_категории>
[xml]$Library = (Invoke-WebRequest -Uri "$url/library/sections/$librarySectionID/all$Token" -SkipCertificateCheck).Content

Теперь, когда у нас есть выгрузка данных из определенной категории библиотеки мы, например, можем посмотреть соответствие названия фильма и файла:

$Library.MediaContainer.Video | Select-Object -Property "title",@{Name="File";Expression={$_.Media.Part.File}}

Ну а теперь попробуем найти все файлы, которые отсутствуют в библиотеке:

foreach ($file in $files) {
    # экранируем спецсимволы
    $tmp = $file -replace '\[','\[' -replace '\]','\]' -replace '\?','\?' -replace '\(','\(' -replace '\)','\)'
    $find = $Library.MediaContainer.Video | Where-Object {$_.Media.Part.file -match $tmp}
    if (!$find) {
        # если файл не найден, показать его имя
        $file
    }
}

При желании из всего этого можно сделать регулярную задачу или прикрутить скрипт к боту.

Только авторизованные участники могут оставлять комментарии.
docs/blog/2021/08/plex-library.txt · Последнее изменение: 28.12.2021 19:57 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki