Обещанный комментарий:
_______________________________________________________
Разный content id для одного infohash - это в принципе нормально. От ОС не должно зависеть. Движок кэширует транспортные файлы локально, поэтому возможна такая ситуация:
- сделали запрос на content id по infohash на одном движке, движок получил content id и сохранил его в кэш;
- на другом движке сделали такой же запрос, но позже;
- между двумя запросами был сгенерирован новый content id для этого же infohash;
- второй движок получит и запишет в кэш новый content id (так как использует самый последний по времени);
- теперь движки будут отдавать разный content id на один infohash.
Как правило, разные content id для одного infohash генерируются в том случае, когда бродкастер перезапускает трансляцию с измененным списком трекеров, но при этом не меняет другие параметры (остается тот же infohash).
В таком случае более ранние content id будут ссылаться на старый транспортный файл со старым списком трекеров. Однако на запуск трансляции это не должно кардинально повлиять, так как помимо трекеров используется DHT.
По второму вопросу:
Если стоит задача содержать у себя базу данных каналов - то нужно использовать общий запрос (all). Частный запрос предназначен в первый очередь для поиска по названию. Обновлять нужно не чаще, чем 1 раз в час.
Если у нескольких вариантов трансляций одного канала (одно и то же название, но разные infohash) одинаковые значения полей availability и availability_updated_at, то у них одинаковые шансы быть рабочими.
Если одинаковый availability_updated_at, но разный availability - нужно выбирать трансляцию с бОльшим availability.
При этом конечному пользователю всегда нужно предоставлять возможность выбора из доступных вариантов трансляций, так как система определение доступности трансляций не может гарантировать 100% актуальность данных. Пример - видео поток с некой статической надписью (типа "Доступ запрещен") вместо самой трансляции. Сейчас движок никак не может определить, что трансляция не идет. Видео поток есть - значит статус трансляции будет "рабочая".