XBMC (Kodi): поиск и база данных медиатеки — как всё устроено

Если поиск в XBMC (ныне Kodi) не находит фильмы, которые точно есть в медиатеке, или выдаёт устаревшие результаты, первое, что стоит проверить, — целостность базы данных медиатеки: именно из неё, а не напрямую с диска, плеер берёт результаты поиска. Файлы MyVideos.db и MyMusic.db — это сердце всей библиотеки, и большинство проблем с поиском сводится к рассинхронизации этой базы с реальным содержимым папок.

В этой статье разберём, как устроена база данных Kodi, где она лежит на разных платформах, как работает встроенный поиск и что делать, если результаты поиска не соответствуют действительности. Инструкции даются в общем виде: точные пути и пункты меню могут отличаться в зависимости от версии программы и операционной системы, поэтому при расхождениях сверяйтесь с документацией вашей сборки.

Что такое база данных медиатеки XBMC/Kodi

Когда вы добавляете источник видео или музыки, Kodi сканирует файлы и записывает метаданные (название, год, жанр, актёров, обложки) в локальную базу данных формата SQLite. После этого интерфейс библиотеки и поиск работают уже с базой, а не с файловой системой — поэтому библиотека открывается быстро, даже если диск с фильмами сейчас недоступен.

Отсюда следует важное следствие: если вы добавили или удалили файлы вручную, мимо сканирования, база об этом не узнает. Поиск продолжит показывать удалённое и игнорировать новое, пока вы не обновите библиотеку через соответствующий пункт меню.

  • 🎬 MyVideos — база фильмов, сериалов и клипов;
  • 🎵 MyMusic — база музыкальной коллекции;
  • 🖼️ Textures — кэш обложек и миниатюр;
  • 📺 отдельные базы могут создавать некоторые дополнения и PVR-клиенты.

Где хранятся файлы базы данных

Расположение папки пользовательских данных зависит от платформы. Обычно базы лежат в подкаталоге Database внутри профиля пользователя Kodi. Типичные пути выглядят так (у вас они могут отличаться в зависимости от версии и способа установки):

ПлатформаТипичный путь к профилю
Windows%APPDATA%\Kodi\userdata\Database
AndroidAndroid/data/org.xbmc.kodi/files/.kodi/userdata/Database
Linux~/.kodi/userdata/Database
macOS~/Library/Application Support/Kodi/userdata/Database

Имя файла обычно содержит номер версии схемы, например MyVideos119.db — цифра меняется от версии к версии программы. Это нормально: при обновлении Kodi может создать новую базу и мигрировать данные из старой.

⚠️ Внимание: перед любыми действиями с файлами базы закройте Kodi и сделайте копию папки Database. Удалённая без резервной копии база восстанавливается только полным пересканированием библиотеки, а ручные пометки «просмотрено» будут потеряны.

Как работает поиск в Kodi

Глобальный поиск доступен из главного меню библиотеки: он ищет совпадения по названиям фильмов, сериалов, эпизодов, исполнителей и альбомов, хранящимся в базе. В некоторых скинах поиск вынесен в отдельный пункт, в других вызывается иконкой лупы. Дополнения (плагины) имеют собственный поиск внутри себя, который к локальной базе отношения не имеет.

Если поиск находит не всё, проверьте три вещи: добавлен ли нужный каталог как источник, был ли он просканирован в библиотеку и не отфильтрованы ли результаты текущим представлением (например, «только непросмотренные»).

📊 С какой проблемой поиска в Kodi вы столкнулись?
Поиск не находит новые файлы
Поиск показывает удалённые файлы
Библиотека вообще пустая
Всё работает, изучаю тему

Почему поиск не находит файлы: типичные причины

Самая частая причина — файлы лежат в папке, которая не добавлена как источник или добавлена без сканирования в библиотеку. Второй по частоте сценарий — сканер не смог распознать файл из-за нестандартного имени: если название не содержит года или не совпадает с записью в онлайн-каталоге, элемент может попасть в базу с ошибкой или не попасть вовсе.

  • 🔍 источник добавлен, но не просканирован в библиотеку;
  • 📝 имя файла не распознано скрапером (нет года, лишние символы);
  • 🗂️ файл находится в исключённой папке или имеет неподдерживаемый формат;
  • 🔄 база рассинхронизирована после ручного удаления файлов.

Для диагностики откройте раздел «Файлы» вместо библиотеки: если там файл виден и воспроизводится, а в библиотеке его нет — проблема именно в сканировании или распознавании, а не в доступе к диску.

Обновление и очистка библиотеки

Чтобы привести базу в соответствие с реальным содержимым дисков, используются две штатные операции. Обновление библиотеки сканирует источники и добавляет новые элементы. Очистка библиотеки удаляет из базы записи о файлах, которых больше нет на диске. Оба пункта находятся в настройках медиатеки; точные названия зависят от версии и локализации.

☑️ Порядок восстановления поиска

Выполнено: 0 / 5

Если обновление и очистка не помогают, возможна порча самой базы. В этом случае осторожный путь — при закрытой программе переименовать файл базы (например, добавить суффикс .bak) и запустить Kodi: будет создана чистая база, которую нужно наполнить полным пересканированием. Исходный файл сохранится как резервная копия.

⚠️ Внимание: не редактируйте файлы базы сторонними SQLite-редакторами, если не понимаете структуру таблиц. Ручное изменение связей между таблицами может сделать базу нечитаемой для Kodi, и программа начнёт аварийно завершаться при обращении к библиотеке.
Как узнать, что база повреждена

Типичные признаки — Kodi зависает при открытии библиотеки, поиск выдаёт пустой результат при полном списке файлов, в журнале (kodi.log) появляются ошибки SQLite. Журнал лежит в корне папки пользовательских данных и открывается обычным текстовым редактором.

Расширенные возможности: общая база для нескольких устройств

Если Kodi установлен на нескольких устройствах в доме, локальные базы можно заменить общей сетевой на сервере MySQL/MariaDB — тогда библиотека, статусы просмотра и результаты поиска будут одинаковыми везде. Настройка выполняется через файл advancedsettings.xml в папке пользовательских данных, где указываются адрес сервера и учётные данные.

Это уже продвинутый сценарий: он требует постоянно работающего сервера и одинаковых версий Kodi на всех устройствах, поскольку разные версии могут использовать разные схемы базы. Перед настройкой изучите официальную документацию проекта и убедитесь, что готовы поддерживать такую конфигурацию.

<advancedsettings>

<videodatabase>

<type>mysql</type>

<host>адрес_сервера</host>

<name>MyVideos</name>

</videodatabase>

</advancedsettings>

Профилактика проблем с базой и поиском

Чтобы поиск оставался точным, достаточно соблюдать несколько простых привычек. Добавляйте новые файлы через обновление библиотеки, а не рассчитывайте, что они появятся сами. Держите имена файлов в едином понятном формате с годом выпуска. А перед обновлением версии Kodi делайте копию папки userdata — это страхует и базу, и настройки.

Также полезно периодически запускать очистку библиотеки, особенно если вы часто перемещаете или удаляете файлы. Регулярная очистка — единственный штатный способ убрать из поиска «мёртвые» записи о несуществующих файлах.

Частые вопросы

Почему поиск находит фильм, но он не воспроизводится?

Запись осталась в базе, а файл с диска удалён или диск недоступен. Запустите очистку библиотеки — запись исчезнет из результатов поиска.

Можно ли перенести базу на другой компьютер?

Да, если версии Kodi совпадают и пути к файлам на новом устройстве такие же. Иначе проще пересканировать библиотеку заново на новом месте.

Чем отличается поиск в библиотеке от поиска в дополнениях?

Поиск библиотеки работает по локальной базе ваших файлов. Поиск внутри дополнений обращается к онлайн-источникам конкретного плагина и к базе Kodi отношения не имеет.

Удалится ли база при обновлении Kodi?

Обычно нет: программа мигрирует данные в новую версию схемы. Но перед крупным обновлением резервная копия папки userdata настоятельно желательна.

Где смотреть ошибки, если библиотека не обновляется?

В файле журнала kodi.log в папке пользовательских данных. Там видно, на каком файле или источнике сканирование остановилось и с какой ошибкой.