Nowa wersja dostępna

PiotrFlix v2 — zupełnie nowy rozdział

Nowy onboarding, przeprojektowany interfejs i pełne GUI zamiast trybu konsolowego. Do tego cast na wybrane urządzenie do TV (bez Chromecasta), szybsze wyszukiwanie i solidny silnik metadanych TMDb.

GUI desktop = funkcjonalnie identyczne z aplikacją mobilną (biblioteka, cast, kolejki, tagi, TMDb, cleanup, offline).

Wersja: v1.0.7 Windows / macOS / Linux Licencja: MIT

Power funkcje

Cast na TV (wybrane urządzenie)

Wybierz urządzenie i startujemy z resume + pojedynczym seekiem. Stabilne, bez cofania widza i bez Chromecasta.

Losuj film 🎲

Nie możesz się zdecydować? Jednym kliknięciem losujemy tytuł z biblioteki — z filtrami po tagach, czasie trwania i ocenie.

Cleanup po 7 dniach

Autokasowanie obejrzanych pozycji (100%) razem z plakatem i wpisem z cache. Sprzątamy katalogi sezonów.

TMDb — plakaty i tagi

Automatyczne metadane (opis, ocena, gatunki), lokalny cache i backfill gatunków z jednego endpointu.

Tagi & kolekcje

Porządkuj bibliotekę po własnych tagach i kolekcjach. Wyszukiwanie pełnotekstowe po tytułach i obsadzie.

Tryb offline (PWA)

Service Worker, strona offline i cache zasobów — komfortowy podgląd biblioteki bez sieci.

Lokalny cache w %APPDATA%

Postępy oglądania, plakaty i metadane w cache — z autoczyszczeniem przy usuwaniu pozycji.

Watchdog w tle

Ciągły monitoring biblioteki i stanów plików — aplikacja ma pełną kontrolę nad danymi.

Onboarding krok-po-kroku

Prosty kreator instalacyjny prowadzi przez całą konfigurację.

PLEX: progres oglądania

Synchronizacja postępów z PLEX i pasek progresu w „Dostępne”.

Architektura

Aplikacja w Pythonie 3.x, GUI w PyQt6 (MVVM), lokalny indeks w SQLite + FTS, TMDb z cache i rate-limitem, cast z pojedynczym seekiem na starcie.

# przykładowy endpoint: losowanie filmu
@app.get("/random/movie")
def pick_random_movie():
    items = [m for m in available_cache.get_films() if m.get("progress",0) < 100]
    import random
    return {"pick": random.choice(items) if items else None}

Automatyzacja i cache

%APPDATA%: cache postępów i plakatów

Postępy oglądania, miniatury i metadane zapisujemy lokalnie w %APPDATA%/PiotrFlix. Podczas usuwania pozycji cache sprząta zbędne pliki, a przy dodawaniu — dociąga brakujące plakaty.

Watchdog katalogów

Proces w tle nasłuchuje zmian w bibliotekach (dodanie/usunięcie/zmiana). Interfejs odświeża listy w czasie rzeczywistym — aplikacja zachowuje pełną spójność danych.

Onboarding — zero zagubienia

Kreator przeprowadza przez ścieżki bibliotek, logowanie PLEX, klucz TMDb i test połączeń. Konfiguracja kończy się walidacją i zapisem profilu.

PLEX API: progres w „Dostępne”

Pobieramy poziom obejrzenia z API PLEX i pokazujemy pasek postępu bezpośrednio na kafelkach. Postęp synchronizuje się w tle.

Autentyczne obrazy i wideo

Wszystkie zrzuty ekranu i klipy pochodzą z działającej aplikacji. Operacje (cast, cleanup, tagi) nagrywamy w czasie rzeczywistym.

Co dokładnie wchodzi w skład v2?

Losowanie filmu na podstawie gatunku

Wybierz jeden lub wiele gatunków (z labeli gatunkowych), a PiotrFlix wylosuje tytuł spełniający kryteria. Dodatkowe filtry: minimalna ocena, czas trwania, rok produkcji.

Cast na PLEX z wyborem urządzenia

Po zalogowaniu do PLEX wybierasz docelowe urządzenie dostępne w sieci/konta i rozpoczynasz odtwarzanie z resume. Działa bez Chromecasta.

Wbudowany player do casta

Podczas castu widzisz tytuł, okładkę, czas i pasek postępu. Masz przyciski: pauza/wznów, stop, przewijanie (seek). Stan synchronizuje się z urządzeniem docelowym.

Wbudowany libtorrent (bez Deluge)

Dodajesz torrenty bez zewnętrznego klienta. Dostępne: limit prędkości, automatyczna pauza po zakończeniu, monitoring postępu i integracja z biblioteką (metadane z TMDb).

Livesearch w „Dostępne”

Filtrowanie w locie po tytule, obsadzie, gatunkach i tagach. Wyniki aktualizują się natychmiast dzięki lokalnemu indeksowi FTS.

Automatyczne usuwanie plików po 7 dniach

Filmy: po oznaczeniu jako obejrzane kasują się po 7 dniach (plik + cache). Seriale: kasujemy dopiero, gdy obejrzane są wszystkie odcinki wszystkich sezonów danej serii.

Labele gatunków filmowych

Czytelne etykiety gatunków (np. „Sci-Fi”, „Kryminalny”) do filtrowania, losowania i przeglądania. Spójne między desktopem i mobile.

Plan rozwoju

  1. Player w aplikacji mobilnej

    Dodanie playera wewnątrz aplikacji mobilnej

  2. Konta użytkowników

    Dodać możliwość tworzenia kont użytkowników

  3. Sterowanie komputerem

    Dodać sterowanie komputerem

Nowość

Zrzuty Ekranu Onboarding (Desktop)

Aplikacja prowadzi przez cały proces instalacji. Wyświetla jasne komunikaty, automatycznie skanuje sieć w poszukiwaniu serwera Plex oraz pobiera token dostępu do konta Plex. Użytkownik wybiera katalogi z Filmami i Serialami – lokalne oraz sieciowe. Dzięki obsłudze zasobów SMB/NAS możesz korzystać nie tylko z dysku lokalnego, ale też folderów w sieci lokalnej.

Platformy testowe

Poniższe konfiguracje zostały użyte do testów stabilności, wydajności oraz zgodności sterowników i bibliotek multimedialnych.

Desktop PC

Windows 11 64-bit
  • Pamięć HyperX 32 GB DDR4 3600 MHz
  • Procesor Intel® Core™ i9-9900K
  • Karta graficzna NVIDIA GeForce RTX 3080
  • Dysk Samsung 970 EVO 1 TB NVMe
  • Płyta główna MSI MPG Z390 Gaming Pro Carbon

Laptop

Windows 11 64-bit
  • Procesor Intel® Core™ i7-10870H
  • Model ASUSTeK Computer Inc. G512LV
  • Pamięć 16 GB RAM
  • Karta graficzna NVIDIA GeForce RTX 2060
  • Dysk Intel SSDPEKNW518GB

Zrzuty ekranu (Desktop)

Zrzuty ekranu (Mobile)

Szybki przegląd wideo

GitHub PiotrFlix