Watch Sync: dokumentacja
Watch Sync to wtyczka do Obsidiana, która importuje bibliotekę, historię oglądania i postęp odtwarzania ze Stremio albo Nuvio do zwykłych notatek Markdown o filmach i serialach. Każdą zmianę pokazuje najpierw w podglądzie, domyślnie nie rusza ręcznie napisanej treści i nigdy nie wysyła danych z sejfu z powrotem do serwisu.
Opis dotyczy wersji 26.8.6. Pełna, aktualizowana razem z kodem dokumentacja po angielsku jest w README na GitHubie. Jeżeli ta strona i README się różnią, rozstrzyga README.
Co robi
- tworzy notatki filmów i seriali z konta Stremio albo Nuvio;
- zaznacza obejrzane odcinki i dopisuje nowe, już wyemitowane sezony;
- zapisuje wybrane properties, na przykład datę premiery, datę ostatniego oglądania, czas trwania, plakat i link źródłowy;
- korzysta z szablonów Handlebars, a bez własnego szablonu z wbudowanego;
- ostrożnie dopasowuje istniejące notatki, a niejednoznaczne przypadki pokazuje jako konflikty;
- pobiera metadane z Cinemeta, opcjonalnie wzbogacone przez TMDB;
- działa na komputerze i telefonie, bez telemetrii.
Czego nie robi: nie usuwa notatek, nie zmienia ich nazw, nie rozwiązuje konfliktów za Ciebie i nie synchronizuje niczego w drugą stronę.
Wymagania i instalacja
Potrzebujesz Obsidiana 1.13.0 lub nowszego, konta Stremio albo Nuvio z istniejącą biblioteką oraz, opcjonalnie, klucza API TMDB dla polskich i bogatszych metadanych.
Do czasu przyjęcia do katalogu Community plugins instalacja jest ręczna:
- Pobierz
main.js,manifest.jsonistyles.cssz najnowszego wydania. - Utwórz folder
<sejf>/.obsidian/plugins/watch-sync/. - Skopiuj do niego wszystkie trzy pliki.
- Przeładuj Obsidiana i włącz Watch Sync w Community plugins.
Nie instaluj archiwum z kodem źródłowym. Trzy pliki z wydania to cały pakiet.
Pierwsza konfiguracja
Świeża instalacja celowo nic nie zapisuje. Synchronizacja jest zablokowana, dopóki nie wybierzesz źródła, zakresu importu i folderów.
- Wybierz Sync source: Stremio albo Nuvio. Aktywne jest jedno źródło naraz.
- Połącz konto:
- Stremio: wybierz Connect, otwórz stronę zatwierdzenia, sprawdź, czy kod się zgadza, i potwierdź. Wtyczka dostaje klucz autoryzacji, nigdy hasło. Akceptowane są wyłącznie strony HTTPS w domenie
stremio.com. - Nuvio: wybierz Connect, zatwierdź logowanie na stronie Nuvio, a potem wybierz profil. Bez profilu synchronizacja pozostaje zablokowana. Adres własnego backendu musi używać HTTPS.
- Stremio: wybierz Connect, otwórz stronę zatwierdzenia, sprawdź, czy kod się zgadza, i potwierdź. Wtyczka dostaje klucz autoryzacji, nigdy hasło. Akceptowane są wyłącznie strony HTTPS w domenie
- Włącz co najmniej jeden zakres importu:
| Zakres | Co importuje |
|---|---|
| Library | zapisane filmy i seriale |
| Watch history | tytuły oznaczone jako obejrzane |
| Playback progress | ostatnią niedokończoną pozycję odtwarzania |
- Wskaż istniejące foldery na filmy i seriale.
- Uruchom Watch Sync: Show library summary. Polecenie niczego nie zapisuje, a pokazuje liczby, statusy i to, ile tytułów zostałoby zsynchronizowanych.
Dane logowania trafiają do SecretStorage Obsidiana, a nie do notatek ani do data.json.
Bezpieczna pierwsza synchronizacja
- Zrób kopię folderów z filmami i serialami albo upewnij się, że obejmuje je odzyskiwanie plików.
- Zostaw Existing note body na Leave alone.
- Uruchom Watch Sync: Preview changes (writes nothing). Podgląd grupuje operacje według tytułu i pokazuje docelową ścieżkę.
- Rozwiń sekcje Conflicts, Skipped i Metadata warnings.
- Zaznacz kilka jednoznacznych tytułów i wybierz Apply selected.
- Otwórz zmienione notatki i sprawdź properties, checkboxy odcinków oraz własny tekst. Dopiero potem poszerz zakres.
Odznaczone operacje wrócą przy następnym uruchomieniu. Nie uruchamiaj synchronizacji jednocześnie na telefonie i komputerze dla tego samego sejfu.
Jak wtyczka rozpoznaje status
Serwisy nie przechowują jednoznacznej informacji „naprawdę to obejrzałem”, więc Watch Sync przypisuje każdemu tytułowi jeden z czterech statusów.
| Status | Znaczenie |
|---|---|
watched | obejrzane według serwisu albo powyżej progu Treat as watched above (domyślnie 70%) |
in-progress | rozpoczęte, ale nieskończone |
sampled | odtwarzane krócej niż Treat as sampled below (domyślnie 5 minut) |
unwatched | nigdy nieodtwarzane |
Serial liczy się jako obejrzany dopiero wtedy, gdy obejrzane są wszystkie wyemitowane odcinki. Domyślnie wtyczka pomija tytuły tylko „podejrzane” i uwzględnia nieodtwarzane pozycje z biblioteki. Jeżeli podgląd jest większy albo mniejszy, niż się spodziewasz, przyczyną zwykle jest próg, zakres albo jeden z tych przełączników, nie szablon.
Properties i szablony
Properties są opt-in. Nic nie trafia do frontmattera, dopóki w Template keys and properties nie nadasz nazwy property dla danego klucza. Rozsądny początek:
| Klucz szablonu | Property | Wartość |
|---|---|---|
released | released | data premiery, YYYY-MM-DD |
watched | end | ostatnie odtwarzanie |
duration | duration | minuty, dla serialu suma odcinków |
cover | cover | URL plakatu |
link | source | link do pozycji, najpewniejszy klucz dopasowania |
Nazwij property dla link. Bez niej każde dopasowanie istniejącej notatki jest tylko domysłem.
Szablony działają wyłącznie przy tworzeniu notatki. Puste pole oznacza wbudowany szablon. Najważniejsze klucze: title, year, years, released, description, genres, cover, link, status, progress, seasons. Przydatne skróty:
{{> seasons}} sekcje sezonów z listą odcinków
{{join genres " · "}} łączy listę separatorem
{{#if description}}…{{/if}} renderuje tylko przy niepustej wartości
Pełną listę kluczy z przykładami pokazuje ekran ustawień wtyczki.
Istniejąca treść notatki
| Tryb | Co zmienia pod frontmatterem |
|---|---|
| Leave alone (domyślny) | tylko checkboxy odcinków i brakujące wyemitowane sezony |
| Keep the managed block up to date | dodatkowo obszar między %% watch-sync %% a %% /watch-sync %% |
| Rewrite from the template | całą treść, na nowo z szablonu |
Zacznij od Leave alone. Pełne przepisanie zostaw dla notatek, których cała treść ma pochodzić z szablonu, i zawsze czytaj podgląd przed zatwierdzeniem.
Dopasowanie i konflikty
Wtyczka szuka notatki dla pozycji w kolejności: link źródłowy w property, lokalny indeks, alias, nazwa pliku, końcówka nazwy pliku z tym samym rokiem. Pewny jest tylko pierwszy poziom. Konflikt pojawia się, gdy kilka notatek pasuje na tym samym poziomie albo docelowa ścieżka jest zajęta przez inną notatkę. Konflikty są pomijane, nigdy rozstrzygane automatycznie.
Jak rozwiązać konflikt: otwórz wszystkie wskazane notatki, wybierz właściwą, wpisz do niej link źródłowy i uruchom podgląd ponownie. Nie dodawaj ogólnych aliasów tylko po to, żeby wymusić dopasowanie.
Polecenia
| Polecenie | Działanie |
|---|---|
| Watch Sync: Sync now | pobiera bibliotekę i planuje synchronizację; przy włączonym Ask before writing pokazuje podgląd |
| Watch Sync: Preview changes (writes nothing) | zawsze pokazuje podgląd |
| Watch Sync: Show library summary | raport tylko do odczytu |
| Watch Sync: Clear the metadata cache | usuwa cache.json, metadane zostaną pobrane ponownie |
Synchronizacja w tle jest domyślnie wyłączona, działa tylko na komputerze, minimalny interwał to 15 minut i nigdy nie zapisuje niczego przed pierwszą potwierdzoną synchronizacją.
Prywatność i sieć
Nie ma telemetrii, analityki ani zewnętrznego serwisu wtyczki. Treść notatek nie jest wysyłana. Wtyczka łączy się tylko z usługami źródła, które połączysz, z Cinemeta i opcjonalnie z TMDB. Pełną listę adresów zawiera README.
Najczęstsze problemy
- Synchronizacja jest zablokowana. Komunikat podaje przyczynę: brak źródła, zakresu, profilu Nuvio, folderu, poprawnego szablonu albo zdublowany klucz property.
- Brakuje tytułu w podglądzie. Uruchom podsumowanie biblioteki. Tytuł mógł zostać uznany za
sampledalbounwatchedi odfiltrowany. - Istniejąca notatka nie jest dopasowana. Nazwij property dla
linki wpisz do notatki link źródłowy. - Nic nie trafia do frontmattera. To domyślny stan, nazwij properties w ustawieniach.
- Aktualizacja do 26.8.6. Identyfikator wtyczki zmienił się ze
stremio-syncnawatch-sync. Połącz konto i wybierz foldery ponownie, a w snippetach CSS zamień prefiks klasstremio-sync-nawatch-sync-. Notatki pozostają bez zmian.
Błędy zgłaszaj w GitHub Issues. Nie dołączaj kluczy, sesji, data.json, cache.json ani prywatnych notatek.