Format paczki .storyflow

Wersja schematu 1 · propozycja w fazie budowy; może się zmienić przed wydaniem 1.0

Paczka .storyflow przenosi cały projekt Tellavio między urządzeniami: scenariusz, nagrane podejścia, zaimportowane dźwięki i ustawienia montażu. Ten opis jest dla zespołu i dla przyszłych integracji.

Budowa archiwum

To zwykłe archiwum ZIP. Rozszerzenie .storyflow identyfikuje format, a nie szyfrowanie: zawartość nie jest zaszyfrowana. W katalogu assets/ leżą niezmienione oryginały audio; nazwa pliku to identyfikator zasobu.

project.storyflow   (ZIP)
├── manifest.json
└── assets/
    ├── <assetId>.wav
    ├── <assetId>.m4a
    └── <assetId>.mp3

manifest.json

Manifest opisuje paczkę i zawiera dane projektu bez ścieżek absolutnych. Czasy w danych montażu są liczone w próbkach przy 48 kHz.

{
  "schemaVersion": 1,
  "app": { "name": "StoryFlow", "version": "0.1.0" },
  "projectId": "…",
  "sourceRevision": 42,
  "createdAt": "2026-10-05T12:00:00Z",
  "completeness": "all_takes",
  "assets": [
    { "path": "assets/9f1c….wav", "sha256": "…", "bytes": 1234567, "mime": "audio/wav" }
  ],
  "project": { "…": "…" },
  "chapters": [], "segments": [], "takes": [], "markers": [], "clips": [],
  "templateSnapshot": {}
}
Pola manifestu i ich znaczenie
PoleZnaczenie
schemaVersionWersja schematu paczki (liczba całkowita). Obecnie 1.
appNazwa i wersja aplikacji, która utworzyła paczkę.
projectIdIdentyfikator projektu na urządzeniu źródłowym. Import tworzy domyślnie nowy projekt z nowym ID.
sourceRevisionRewizja projektu w chwili eksportu paczki.
createdAtCzas utworzenia paczki (ISO 8601, UTC).
completenessall_takes: wszystkie podejścia, pełna historia; used_only: tylko podejścia użyte w montażu, aplikacja oznacza to jako niepełną kopię historii.
assetsLista plików z assets/: ścieżka względna, suma SHA-256, rozmiar w bajtach i typ MIME.
projectDane projektu (tytuł, ustawienia) bez ścieżek absolutnych.
chapters, segments, takes, markers, clipsRozdziały, fragmenty (segments), podejścia (takes), znaczniki (markers) i klipy montażu (clips).
templateSnapshotMigawka szablonu oprawy użytego w projekcie, aby paczka nie zależała od szablonów na urządzeniu docelowym.

Zasady importu

  • Archiwum jest rozpakowywane do obszaru tymczasowego i weryfikowane, zanim cokolwiek trafi do projektów.
  • Wpisy ze ścieżką zawierającą .., ścieżki absolutne i duplikaty ścieżek są odrzucane.
  • Obowiązuje limit rozmiaru po rozpakowaniu i liczby wpisów (ochrona przed zip bomb).
  • Suma SHA-256 i rozmiar każdego zasobu muszą zgadzać się z manifestem.
  • Paczka z nowszym schemaVersion, niż obsługuje aplikacja, jest odrzucana w całości, nie częściowo.
  • Brakujący lub uszkodzony zasób jest wymieniany w raporcie. Nigdy nie jest zastępowany ciszą.
  • Domyślnie paczka jest importowana jako nowa kopia projektu. Zastąpienie istniejącego projektu wymaga potwierdzenia i zachowuje jego poprzednią wersję.
  • Projekt jest zatwierdzany transakcyjnie: albo cały, albo wcale.

Prywatność

Paczka może zawierać nieudane podejścia i prywatne notatki. Przed udostępnieniem aplikacja pokazuje, co znajdzie się w paczce. Gotowy eksport audio (M4A, WAV) to coś innego niż paczka: nie zawiera notatek ani podejść.

Wersjonowanie

Zmiana schemaVersion następuje tylko wtedy, gdy nowa wersja aplikacji nadal importuje wszystkie starsze paczki. Pytania o format i integracje: kontakt@tellavio.com.