Я сделал Torrio с ChatGPT: поиск и загрузка торрентов прямо на Android
Обычно я рассказываю о чужих проектах с GitHub: нахожу, ставлю, проверяю и объясняю, зачем они нужны обычному человеку.
В этот раз всё получилось наоборот.
Мне хотелось упростить одну задачу: найти BitTorrent-раздачу и скачать файл прямо на Android. Без десятка вкладок и возни с magnet-ссылками.
Я не программист. Поэтому открыл ChatGPT и начал объяснять, что именно хочу получить.
Так появился Torrio — мой открытый скрипт для Termux. Сейчас в репозитории версия 1.3, а запускается одной командой:
torrio
Зачем понадобился свой скрипт
Termux давно стоит у меня на Android. Внутри можно установить Python, aria2 и другие консольные программы. aria2 уже умеет работать с BitTorrent.
Проблема была не в загрузке. Проблема была в маршруте до неё.
Допустим, мне нужен образ Debian. Открываю браузер, ищу раздачу, просматриваю страницы, копирую magnet-ссылку, возвращаюсь в Termux или торрент-клиент. Ничего сложного. Просто слишком много мелких действий.
Мне хотелось написать название, уточнить формат или версию, увидеть список и выбрать номер.
Полезный инструмент иногда начинается не с великой идеи, а с раздражения от пяти лишних нажатий.
Я так и сформулировал задачу ChatGPT. Потом мы меняли меню, поиск, отображение длинных названий, папку загрузки и работу при выключенном экране. Скрипт переделывался, пока не стал утилитой, которой я сам готов пользоваться.
Что умеет Torrio
После запуска появляется меню:
Torrio 1.3
Android torrent search & download for Termux
[1] Paste magnet link or .torrent URL
[2] Select a local .torrent file
[3] Search torrents
[0] Exit
>
Если magnet-ссылка или адрес ".torrent" уже есть, выбираем первый пункт. Torrio передаёт ссылку aria2.
Второй пункт ищет локальные ".torrent"-файлы в Download, "Download/Torrio", домашней папке Torrio и текущем каталоге. Найденные файлы выводятся списком.
Во встроенном поиске Torrio задаёт четыре вопроса:
What are you looking for?
Format / type [Enter = any]:
Version / year / date [Enter = any]:
Exclude words or phrases [Enter = none]:
Заполнить обязательно только первое поле.
Можно написать "Debian", затем уточнить "netinst amd64". Или искать музыкальный релиз и добавить "flac". Ненужные слова исключаются отдельным полем.
Скрипт обращается к Knaben, FOSS Torrents и Internet Archive. Результаты объединяются, дубликаты убираются, список пересортировывается. Длинные названия переносятся, а не обрезаются — на телефоне это важная мелочь.
Установка Torrio с нуля
Нужен Android 7 или новее и Termux. Я рекомендую ставить Termux из F-Droid или официального репозитория проекта на GitHub.
Обновляем пакеты:
pkg update && pkg upgrade -y
Даём Termux доступ к общей памяти Android:
termux-setup-storage
Подтверждаем разрешение и устанавливаем нужные программы:
pkg install python aria2 curl -y
Теперь скачиваем Torrio и устанавливаем его как обычную команду:
curl -L https://raw.githubusercontent.com/Ayuemin/torrio/main/torrio.py -o ~/torrio.py
install -m 755 ~/torrio.py $PREFIX/bin/torrio
Запускаем:
torrio
На этом всё. Root-права не нужны, сторонних Python-библиотек Torrio тоже не требует.
Куда сохраняются загрузки
Если выполнена "termux-setup-storage", Torrio создаёт папку:
Download/Torrio
Она видна обычным файловым менеджерам Android. Если доступ к общей памяти не настроен, скрипт использует "~/Torrio".
Ещё одна функция, которую мне хотелось получить, — автоматический wake lock. Перед запуском aria2 Torrio пытается включить "termux-wake-lock", а после завершения снимает блокировку. Экран можно выключить, не прерывая загрузку только из-за сна процессора.
Но у Android есть свой характер. Некоторые прошивки агрессивно ограничивают фоновые приложения. Если Termux выгружается после сворачивания, придётся разрешить ему работу без жёсткой экономии батареи.
Скрипт может попросить Android не засыпать. Убедить особо заботливую прошивку иногда приходится владельцу.
Нашёл результат — что дальше
После выбора номера Torrio показывает карточку: источник, название, размер, число сидов или загрузок и другие доступные данные.
Дальше появляется меню:
[m] Fetch BitTorrent metadata
[d] Download with aria2c
[c] Copy magnet/.torrent URL
[o] Open source page
[q] Quit
Нажимаю "d" — aria2 начинает загрузку в папку Torrio.
Для magnet-ссылки можно сначала получить метаданные. Ссылку можно скопировать, страницу источника — открыть, если нужные команды Termux доступны.
Аргументы командной строки запоминать не нужно. Я как раз хотел маршрут «запустил — ответил на вопросы — выбрал номер».
Что мне в Torrio пока не нравится
Это не красивое Android-приложение с большими кнопками. Нужно поставить Termux и один раз выполнить несколько команд.
Интерфейс пока английский. Поиск работает с Unicode и кириллицей, но само меню не переведено.
Поиск зависит от трёх внешних источников. Их API или ленты могут временно не отвечать либо измениться. Torrio ничего не хранит у себя и не раздаёт контент.
BitTorrent — технология передачи данных. Ответственность за то, что вы ищете и скачиваете, остаётся на пользователе. Для тестов проще брать свободно распространяемые Linux-образы и другие легальные материалы.
Я не хочу называть Torrio «убийцей торрент-клиентов». Это просто другой маршрут:
открыл Termux → написал "torrio" → нашёл → выбрал номер → запустил загрузку.
Для меня этого достаточно.
Самое интересное здесь даже не торренты
Ещё недавно идея «сделаю себе консольную утилиту» для человека без опыта разработки означала бы отдельное изучение Python.
Я начал с описания проблемы. Говорил ChatGPT, что хочу увидеть, проверял результат и просил переделать неудобные места.
Я не стал программистом за один чат. Но получил инструмент, которого вчера у меня не было.
Мне кажется, это одна из самых полезных сторон ИИ. Не обязательно строить стартап. Иногда можно взять маленькую личную проблему и довести её до рабочего скрипта.
Torrio я выложил на GitHub под лицензией MIT. Код открыт. Можно посмотреть, как всё устроено, предложить изменение или написать об ошибке.
Если будете тестировать, мне особенно интересно, как Torrio поведёт себя на разных смартфонах и прошивках Android.
А я пока продолжу пользоваться командой, которой ещё недавно просто не существовало:
torrio
Источник: "Torrio"
Похожие статьи
Если вам интересны Termux, загрузчики и полезные инструменты для Android, посмотрите также: