Skip to content

Settings and browser storage

Pinchana Web keeps ordinary UI/download preferences in browser local storage and keeps authentication/custom-instance state in HttpOnly cookies.

The current client initializes these settings before applying any saved preferences:

Setting Default
Save automatically after processing On
ZIP multiple files On
Filename style Pretty
Decorative paws On
Reduce motion Off
Convert Twitter/X looping video to GIF when saving On
Preferred download mode Media
YouTube video quality 1080p
YouTube codec H.264
YouTube container MP4
YouTube audio format MP3
YouTube audio bitrate 128 kb/s
Prefer better YouTube audio Off
Dubbed track Original
Embedded subtitle None
Anonymous performance monitoring Off

DLP capability data can remove unsupported quality/codec/container/audio options from the UI. A saved value that is not advertised by the selected API falls back to an available choice.

The normal settings object is stored under pinchana-settings and currently contains:

{
"autoSave": true,
"zipMultiple": true,
"filenameStyle": "pretty",
"pawsEnabled": true,
"reduceMotion": false,
"convertTwitterGifs": true,
"downloadMode": "media",
"dlpQuality": "1080p",
"dlpCodec": "h264",
"dlpContainer": "mp4",
"dlpAudioFormat": "mp3",
"dlpAudioBitrate": "128",
"preferBetterAudio": false,
"dubLanguage": "original",
"subtitleLanguage": "none"
}

Monitoring is a build-time deployment choice and a separate user preference.

  • If SENTRY_MONITORING_ENABLED=false, the Web build does not use a supplied DSN for monitoring.
  • If monitoring is enabled by the deployment, browser error reporting is sanitized.
  • Anonymous browser performance measurements require the visitor’s explicit opt-in.

The preference is stored as versioned JSON under pinchana-privacy-preferences. Its anonymousAnalytics value defaults to false. The old pinchana_cookie_consent key is removed when the new privacy preference is written.

Name Storage Purpose
pinchana-settings local storage UI and download preferences
pinchana-privacy-preferences local storage Monitoring acknowledgement and anonymous performance opt-in
pinchana_web_session HttpOnly, SameSite=Strict cookie Signed API browser-session token
pinchana_instance HttpOnly, SameSite=Strict cookie Selected project-signed custom-instance certificate
pinchana_locale HttpOnly, SameSite=Lax cookie Interface language
Cookie Vault payload IndexedDB One encrypted vault containing profile labels, domains, and cookies
cf_clearance Cloudflare cookie, conditional May exist when Cloudflare clearance/challenge features are enabled

Session/instance cookies use Secure in production. Changing the selected API instance clears the current browser session so verification is repeated against the correct API/Turnstile configuration.

Cookie Vault is separate from pinchana-settings. It stores a single AES-256-GCM encrypted payload in IndexedDB. PBKDF2-SHA256 uses a device-calibrated iteration count with a 600,000-iteration minimum, and the derived key is not persisted.

Profiles are selected explicitly. Plaintext cookie values are recovered only in browser memory when the unlocked vault is used for a DLP request, then encrypted again for that specific worker before leaving the browser.

English (en) and Ukrainian (uk) are currently active interface languages. The server resolves locale from pinchana_locale first and Accept-Language second. English is the default.

English and Ukrainian are also currently approved legal locales. Translation catalogs are ordinary JSON files in messages/app and messages/legal.

The About view shows the public Web revision, sanitized API build manifest, active service count, DLP capability state, session state, generic activity, and coarse device/browser information.

The copy action intentionally excludes submitted URLs, media titles/metadata, Cookie Vault contents, custom API origins, secrets, IP addresses, and the full browser user agent.

Clearing browser site data removes these preferences, sessions, selected instance state, locale choice, and Cookie Vault data. Files already saved through the browser download manager are unaffected.