Я работаю над программой Perl для загрузки торрентов с помощью индексаторов Jackett и API-интерфейсов torznab. Для индексаторов, которые предоставляют ссылку ma gnet непосредственно в XML, это очень просто, но другие предоставляют ссылку (которая после некоторого исследования выглядит как «точный источник» ma gnet)
Цель: преобразовать эту прямую ссылку в 'ma gnet :?' URL или .torrent файл для использования с qbittorrent
Вот что я пробовал до сих пор:
WWW :: Mechanize (вызывая get для xs ма gnet URL)
Error GETing magnet:?<rest of magnet link>: Protocol scheme 'magnet' is not supported
wget
HTTP request sent, awaiting response... 302 Found
Location: magnet:?<rest of magnet link>: Unsupported scheme ‘magnet’.
curl или curl -o
Не возвращено значение / пустой файл
Мне кажется, что есть простое решение этого вопроса, но пока я не добился успеха, уверен, что смогу отфильтровать сообщение об ошибке из mech или wget и вытащить URL-адрес таким образом, но это не похоже на правильный способ сделать это.
Заранее спасибо!
Обновление: Похоже, это ограничение Jackett (или, точнее, к индексаторам, к которым осуществляется доступ), поскольку прямая ссылка не может быть предоставлена через API.
Решение этого состоит в том, чтобы взять ссылку перенаправления из заголовков URL
curl '$URL' -si | grep -oP 'Location: \K.*'
, которые в этот случай вернет ма gnet ссылку