Проблема

У меня телевизор, который читает файлы с USB-флешки. Флешка отформатирована в FAT32, а значит — максимум 4 ГБ на файл. Типичный вечер выглядит так:

  1. Открыть браузер → найти торрент

  2. Открыть KTorrent → добавить → ждать

  3. Открыть файловый менеджер → скопировать на флешку

  4. Упс, файл 8 ГБ → найти mkvmerge → разбить → скопировать заново

  5. Безопасно извлечь

Пять шагов и три приложения. Мне надоело.

Решение

TorFlash — Linux-приложение на PyQt5, которое объединяет все эти шаги в одно окно:

  • Поиск по Rutor (с фоллбэком на зеркала), NoNaMe-Club и RuTracker (с логином и прокси)

  • Скачивание через libtorrent-rasterbar — параллельные загрузки, выбор файлов, возобновление

  • Копирование на флешку — автоматическое определение USB на /run/media/$USER/*

  • Умное разбиение для FAT32: MKV через mkvmerge --split (каждая часть — воспроизводимый файл), остальные форматы — побайтовое разбиение

Как выглядит

screenshot
screenshot

Слева — результаты поиска, справа — карточка с постером, скриншотами и mediainfo. Прогресс встроен в карточку: синий — скачивание, зелёный — копирование.

Что ещё умеет

Библиотека и раздача

  • Всё скачанное остаётся в ~/Storage и раздаётся, пока приложение открыто

  • При перезапуске раздача восстанавливается через resume_data

  • Пауза/возобновление/перепроверка для каждого торрента

Детали раздачи

  • Постер + галерея скриншотов (парсится со страницы торрента)

  • Mediainfo — кодек, разрешение, аудиодорожки, длительность

  • График скорости в реальном времени

  • Статистика за день и за всё время (хранение 90 дней)

Флешка

  • Вкладка управления: свободное место, список файлов, удаление, открыть в FM

  • Безопасное извлечение через udisksctl — показывает процесс, если устройство занято

  • “Отложенное копирование” — если флешка вставлена позже, копирование произойдёт автоматически

Приложение

  • Светлая/тёмная/авто тема

  • Русский и английский интерфейс

  • Автозапуск, сворачивание в трей, лимиты скорости

  • Автообновление с GitHub Releases

  • CLI-режим для headless: torflash_cli.py search "запрос"

Технические детали

Стек: Python 3.11, PyQt5, libtorrent-rasterbar, requests

Никаких BeautifulSoup или Scrapy — HTML парсится регулярками. Звучит как антипаттерн, но для конкретных сайтов с фиксированной структурой работает быстро и без лишних зависимостей.

Архитектура:

  • SearchWorker — скрапит HTML в отдельном потоке

  • SeedSession — единый libtorrent.session на всё приложение, библиотека в JSON

  • DownloadWorker — добавляет торренты в сессию, следит за прогрессом

  • 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)


  1. xotkot
    25.05.2026 18:12

    как то немного кринжово выглядит использование ограниченной FAT32

    там же в телевизоре наверное какая-то операционка на ядре linux крутиться, а значит можно использовать более продвинутую ФС

    exFAT - linux kernel 5.4 (2019)

    F2FS - linux kernel 3.8 (2013)

    да даже мохнатую EXT2 можно было бы расконсервировать если там уж совсем древний телек


    1. Granulex
      25.05.2026 18:12

      exFAT – правильный выбор и для флешки, и для совместимости: в ядро вошёл без лицензий с версии 5.4, SmartTV-прошивки его поддерживают лучше всего. F2FS не подходит для переносных накопителей – он делался под внутреннюю память телефонов и планшетов, смысл теряется, когда флешка ходит между устройствами. EXT2 в телевизоре – теоретически красиво, но шанс найти его поддержку там близок к нулю. Итого: exFAT решает задачу.


      1. xotkot
        25.05.2026 18:12

        exFAT – правильный выбор и для флешки, и для совместимости: в ядро вошёл без лицензий с версии 5.4, SmartTV-прошивки его поддерживают лучше всего.

        согласен, но как я писал выше это минимум 2019+ год, а то и намного выше, так как производители обычно используют старые обкатанные lts ядра и на новые не спешат переходить.

        F2FS не подходит для переносных накопителей – он делался под внутреннюю память телефонов и планшетов, смысл теряется, когда флешка ходит между устройствами.

        да всё там нормально, NAND она и в Африке NAND, там конечно может быть разная внутренняя геометрия и схема управления флэш-памятью, но даже если брать по дефолту, то для простой записи и чтения фильмов(больших файлов) файловая система вполне сгодиться.

        EXT2 в телевизоре – теоретически красиво, но шанс найти его поддержку там близок к нулю.

        наоборот, шанс там скорее всего 100%

        единственная проблема бывает в том что созданная ФС ext2 на флешке свежими инструментами e2fsprogs(mke2fs/mkfs.ext2) может не работать на системе где используется старый драйвер ext2, точнее новые функции "заложенные" при форматировании могут не пониматься старым драйвером.

        Поэтому порой проще, чтобы не разбираться и не подбирать параметры форматированния, отформатировать(ext2) флешку на телеке а потом уже использовать.

        п.с.

        еще как вариант это использовать ext4 но с отключёны журналом.


    1. exewebru Автор
      25.05.2026 18:12

      Сплитинг крупных файлов под FAT32 одна из опций, смысл проги скачивать торрент и заливать на флеху в один клик. Телик iFFALCON, exFAT он не видит, не знаю почему. Покупал в 2022.

      Вот что дипсик сказал:

      Телевизоры iFFALCON (суббренд компании TCL, работающий на операционных системах Android TV / Google TV) имеют специфические особенности работы с файловой системой exFAT.

      Основная проблема: «Из коробки» большинство моделей iFFALCON файловую систему exFAT не поддерживают. Если вы вставите флешку или внешний жесткий диск, отформатированный в exFAT, телевизор либо вообще её не увидит, либо выдаст сообщение о том, что накопитель поврежден или требует форматирования.


      1. xotkot
        25.05.2026 18:12

        Телик iFFALCON, exFAT он не видит, не знаю почему. Покупал в 2022.

        посмотрите версию ядра, для поддержки exFAT должно быть 5.4+

        к примеру, в этом видео видно что в 2022 году для iFFALCON iFF55Q72 использовался Android TV 11 с ядром 4.14


        1. exewebru Автор
          25.05.2026 18:12

          Посмотрел, версия ядра 4.14.


        1. exewebru Автор
          25.05.2026 18:12

          Лицензионные отчисления Microsoft: Технология exFAT является проприетарной и принадлежит Microsoft. Производителям устройств, желающим встроить поддержку exFAT в свою продукцию, необходимо покупать дорогостоящую лицензию. Чтобы избежать этих затрат, многие компании, включая TCL, выбирают изначально бесплатные форматы вроде FAT32 или частичную поддержку NTFS.

          https://chat.deepseek.com/share/0mboktrgi7yz5aw8yo


          1. xotkot
            25.05.2026 18:12

            НеИИ

            для начала посмотрим вики по exFAT

            In 2013, Samsung Electronics published a Linux driver for exFAT under GPL. On 28 August 2019, Microsoft published the exFAT specification and released the patent to the Open Invention Network (OIN) members. The Linux kernel introduced native exFAT support with the 5.4 release in November 2019.

            хм, написано что самсунг написал свою реализацию и выложил под GPL, а после микрософт виписала какой-то мутный патент для участников OIN.

            Окей, а какой патент используется для exFAT в линукс ядре ?

            наверное самый простой способ это посмотреть в коде этой ФС используемой в ядре.

            А где взять код ?

            конечно же глянем на kernel.org - EXFAT FILE SYSTEM

            и что мы видим ?

            EXFAT FILE SYSTEM
            M:	Namjae Jeon <linkinjeon@kernel.org>
            M:	Sungjong Seo <sj1557.seo@samsung.com>
            R:	Yuezhang Mo <yuezhang.mo@sony.com>
            L:	linux-fsdevel@vger.kernel.org
            S:	Maintained
            T:	git git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
            F:	fs/exfat/

            ну что-же, качаем и смотрим. Качать правда много, поэтому берём последний срез, заходим в fs/exfat/ и что же мы видим ?

            В начале всех файлов стоит примерно следующее:

            // SPDX-License-Identifier: GPL-2.0-or-later
            /*
             * Copyright (C) 2012-2013 Samsung Electronics Co., Ltd.
             */

            видим GPL2+ от самсунга, то есть, микрософт идёт лесом со своими патентами.

            Ну и на закуску. А что с набором программ которые обслуживают данную ФС ?

            чтобы долго не мариновать, вот ссылка exfatprogs/../COPYING - тоже GPL2+

            В общем, бери не хочу.

            g/c

            с ядром 4.14 вы пролетаете и exFAT вам естественно не доступна, можете попробовать обновить(если есть) прошивку ТВ, может там и подвезли ядро чуть свежее.

            Ну или использовать F2FS/EXT{2,3,4}, а чтобы избежать проблем несовместимости(свежие версии обратно совместимы со старыми, а вот наоборот не факт) данных ФС просто отформатируйте саму флешку средствами TV.


  1. Skalls
    25.05.2026 18:12

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


    1. ilyakruchinin
      25.05.2026 18:12

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


    1. Nickroc
      25.05.2026 18:12

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


      1. Skalls
        25.05.2026 18:12

        Тоже из личного опыта: суть также, но немного другая связка. Qbittorrent с веб мордой в контейнере, и minidlna, и все тот же vlc на устройствах.