Проблема
У меня телевизор, который читает файлы с USB-флешки. Флешка отформатирована в FAT32, а значит — максимум 4 ГБ на файл. Типичный вечер выглядит так:
Открыть браузер → найти торрент
Открыть KTorrent → добавить → ждать
Открыть файловый менеджер → скопировать на флешку
Упс, файл 8 ГБ → найти mkvmerge → разбить → скопировать заново
Безопасно извлечь
Пять шагов и три приложения. Мне надоело.
Решение
TorFlash — Linux-приложение на PyQt5, которое объединяет все эти шаги в одно окно:
Поиск по Rutor (с фоллбэком на зеркала), NoNaMe-Club и RuTracker (с логином и прокси)
Скачивание через libtorrent-rasterbar — параллельные загрузки, выбор файлов, возобновление
Копирование на флешку — автоматическое определение USB на
/run/media/$USER/*Умное разбиение для FAT32: MKV через
mkvmerge --split(каждая часть — воспроизводимый файл), остальные форматы — побайтовое разбиение
Как выглядит

Слева — результаты поиска, справа — карточка с постером, скриншотами и mediainfo. Прогресс встроен в карточку: синий — скачивание, зелёный — копирование.
Что ещё умеет
Библиотека и раздача
Всё скачанное остаётся в
~/Storageи раздаётся, пока приложение открытоПри перезапуске раздача восстанавливается через
resume_dataПауза/возобновление/перепроверка для каждого торрента
Детали раздачи
Постер + галерея скриншотов (парсится со страницы торрента)
Mediainfo — кодек, разрешение, аудиодорожки, длительность
График скорости в реальном времени
Статистика за день и за всё время (хранение 90 дней)
Флешка
Вкладка управления: свободное место, список файлов, удаление, открыть в FM
Безопасное извлечение через
udisksctl— показывает процесс, если устройство занято“Отложенное копирование” — если флешка вставлена позже, копирование произойдёт автоматически
Приложение
Светлая/тёмная/авто тема
Русский и английский интерфейс
Автозапуск, сворачивание в трей, лимиты скорости
Автообновление с GitHub Releases
CLI-режим для headless:
torflash_cli.pysearch "запрос"
Технические детали
Стек: Python 3.11, PyQt5, libtorrent-rasterbar, requests
Никаких BeautifulSoup или Scrapy — HTML парсится регулярками. Звучит как антипаттерн, но для конкретных сайтов с фиксированной структурой работает быстро и без лишних зависимостей.
Архитектура:
SearchWorker— скрапит HTML в отдельном потокеSeedSession— единыйlibtorrent.sessionна всё приложение, библиотека в JSONDownloadWorker— добавляет торренты в сессию, следит за прогрессомCopyWorker— стриминговое копирование с разбиениемproviders/— подключаемые провайдеры поиска (легко добавить свой)
Собирается в один бинарник через PyInstaller (~50 МБ). Не требует pip install — только системные Qt5 и glibc.
Установка
# Бинарник (рекомендуется) curl -L -o TorFlash https://github.com/steveast/torflash/releases/latest/download/TorFlash chmod +x TorFlash && ./TorFlash # Из исходников (Arch) sudo pacman -S libtorrent-rasterbar python-pyqt5 python-requests mkvtoolnix-cli git clone https://github.com/steveast/torflash.git && cd torflash python3 src/rutor_search.py
Комментарии (12)

Skalls
25.05.2026 18:12Не проще ли было просто дома какой нибудь self-hosting сервер поднять, с качалкой и расшаренной папкой? далее ставим VLC тыкаем пальцем где находится сервер и просто смотрим с сервера? для большего удовольствия в плане поиска откуда скачать и прочее можно использовать утилиту Jackett.

ilyakruchinin
25.05.2026 18:12Проще вообще не заморачиваться и поставить https://www.stremio.com/ на Android-стик с нужнымы плагинами.

Nickroc
25.05.2026 18:12Личный опыт - deluge в контейнере с веб-мордой качает в папку куда смотрит serviio. VLC на телевизоре и других устройствах подхватывает

Skalls
25.05.2026 18:12Тоже из личного опыта: суть также, но немного другая связка. Qbittorrent с веб мордой в контейнере, и minidlna, и все тот же vlc на устройствах.
xotkot
как то немного кринжово выглядит использование ограниченной FAT32
там же в телевизоре наверное какая-то операционка на ядре linux крутиться, а значит можно использовать более продвинутую ФС
exFAT - linux kernel 5.4 (2019)
F2FS - linux kernel 3.8 (2013)
да даже мохнатую EXT2 можно было бы расконсервировать если там уж совсем древний телек
Granulex
exFAT – правильный выбор и для флешки, и для совместимости: в ядро вошёл без лицензий с версии 5.4, SmartTV-прошивки его поддерживают лучше всего. F2FS не подходит для переносных накопителей – он делался под внутреннюю память телефонов и планшетов, смысл теряется, когда флешка ходит между устройствами. EXT2 в телевизоре – теоретически красиво, но шанс найти его поддержку там близок к нулю. Итого: exFAT решает задачу.
xotkot
согласен, но как я писал выше это минимум 2019+ год, а то и намного выше, так как производители обычно используют старые обкатанные lts ядра и на новые не спешат переходить.
да всё там нормально, NAND она и в Африке NAND, там конечно может быть разная внутренняя геометрия и схема управления флэш-памятью, но даже если брать по дефолту, то для простой записи и чтения фильмов(больших файлов) файловая система вполне сгодиться.
наоборот, шанс там скорее всего 100%
единственная проблема бывает в том что созданная ФС ext2 на флешке свежими инструментами e2fsprogs(mke2fs/mkfs.ext2) может не работать на системе где используется старый драйвер ext2, точнее новые функции "заложенные" при форматировании могут не пониматься старым драйвером.
Поэтому порой проще, чтобы не разбираться и не подбирать параметры форматированния, отформатировать(ext2) флешку на телеке а потом уже использовать.
п.с.
еще как вариант это использовать ext4 но с отключёны журналом.
exewebru Автор
Сплитинг крупных файлов под FAT32 одна из опций, смысл проги скачивать торрент и заливать на флеху в один клик. Телик iFFALCON, exFAT он не видит, не знаю почему. Покупал в 2022.
Вот что дипсик сказал:
Телевизоры iFFALCON (суббренд компании TCL, работающий на операционных системах Android TV / Google TV) имеют специфические особенности работы с файловой системой exFAT.
Основная проблема: «Из коробки» большинство моделей iFFALCON файловую систему exFAT не поддерживают. Если вы вставите флешку или внешний жесткий диск, отформатированный в exFAT, телевизор либо вообще её не увидит, либо выдаст сообщение о том, что накопитель поврежден или требует форматирования.
xotkot
посмотрите версию ядра, для поддержки exFAT должно быть 5.4+
к примеру, в этом видео видно что в 2022 году для iFFALCON iFF55Q72 использовался Android TV 11 с ядром 4.14
exewebru Автор
Посмотрел, версия ядра 4.14.
exewebru Автор
Лицензионные отчисления Microsoft: Технология exFAT является проприетарной и принадлежит Microsoft. Производителям устройств, желающим встроить поддержку exFAT в свою продукцию, необходимо покупать дорогостоящую лицензию. Чтобы избежать этих затрат, многие компании, включая TCL, выбирают изначально бесплатные форматы вроде FAT32 или частичную поддержку NTFS.
https://chat.deepseek.com/share/0mboktrgi7yz5aw8yo
xotkot
НеИИ
для начала посмотрим вики по exFAT
хм, написано что самсунг написал свою реализацию и выложил под GPL, а после микрософт виписала какой-то мутный патент для участников OIN.
Окей, а какой патент используется для exFAT в линукс ядре ?
наверное самый простой способ это посмотреть в коде этой ФС используемой в ядре.
А где взять код ?
конечно же глянем на kernel.org - EXFAT FILE SYSTEM
и что мы видим ?
ну что-же, качаем и смотрим. Качать правда много, поэтому берём последний срез, заходим в
fs/exfat/и что же мы видим ?В начале всех файлов стоит примерно следующее:
видим GPL2+ от самсунга, то есть, микрософт идёт лесом со своими патентами.
Ну и на закуску. А что с набором программ которые обслуживают данную ФС ?
чтобы долго не мариновать, вот ссылка exfatprogs/../COPYING - тоже GPL2+
В общем, бери не хочу.
g/c
с ядром 4.14 вы пролетаете и exFAT вам естественно не доступна, можете попробовать обновить(если есть) прошивку ТВ, может там и подвезли ядро чуть свежее.
Ну или использовать F2FS/EXT{2,3,4}, а чтобы избежать проблем несовместимости(свежие версии обратно совместимы со старыми, а вот наоборот не факт) данных ФС просто отформатируйте саму флешку средствами TV.