https://github.com/alpha1337/save-sora
Sora is leaving us! Use this Chrome extension to bulk rename, and selectively download the Sora videos and drafts from your logged-in browser session.
https://github.com/alpha1337/save-sora
automation backup bulk-operation chrome-extension javascript save sora
Last synced: 2 months ago
JSON representation
Sora is leaving us! Use this Chrome extension to bulk rename, and selectively download the Sora videos and drafts from your logged-in browser session.
- Host: GitHub
- URL: https://github.com/alpha1337/save-sora
- Owner: alpha1337
- License: mit
- Created: 2026-03-30T19:02:46.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-08T04:34:15.000Z (3 months ago)
- Last Synced: 2026-04-08T06:28:04.120Z (3 months ago)
- Topics: automation, backup, bulk-operation, chrome-extension, javascript, save, sora
- Language: JavaScript
- Homepage: https://alpha1337.github.io/save-sora/
- Size: 12.2 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Save Sora
Save Sora is a Manifest V3 Chrome extension for fetching, reviewing, exporting, and organizing Sora videos in a fullscreen dashboard.
## Runtime Architecture
- `src/`: React app (UI, controllers, store, normalization, ZIP planning)
- `background/`: extension service worker + hidden-tab worker pool
- `injected/`: authenticated Sora-side fetch runtime
- `workers/`: ZIP worker
- `public/`: extension static assets (icons)
- `docs/`: architecture and data flow notes
## Build and Release
- `npm run dev`: run app development server
- `npm run build`: build extension runtime into `.build/`
- `npm run build:dist`: package `dist/save-sora-v.zip`
- `npm run check`: file-size rule, typecheck, lint, tests
## Data Migration Compatibility
This mainline keeps the migration path for users on `1.24.1` and older:
- `src/lib/db/legacy-v1-migration.ts` is still executed during bootstrap.
- Legacy IndexedDB data from `saveSoraVolatileBackup` is read once and migrated.
- Migration metadata is persisted to avoid repeated migrations.
## Organizer
ZIP exports include organizer scripts in `organizer/` inside the archive:
- macOS: `Install Organizer.command`
- Windows: `Run Organizer.bat`
A standalone Windows installer source is available in:
- `organizer/windows-installer/`
Build it on Windows with NSIS installed:
- `npm run build:organizer-installer:win`
## Permissions
The extension uses only permissions required for local session-based fetch + export workflows.
See `manifest.json` for the authoritative permission list.
Permission rationale:
- `downloads`: saves selected Sora videos and generated ZIP archives to the user-selected local download directory.
- `scripting`: injects authenticated fetch helpers into active Sora/ChatGPT tabs.
- `storage`: persists user preferences and lightweight extension state.
- `tabs`: discovers/reuses authenticated Sora tabs and manages hidden worker tabs for fetch orchestration.
- `unlimitedStorage`: stores large, user-requested local session metadata (normalized row data, selection state, download history indexes, CSV-ready data) without premature quota eviction during high-volume fetches.
Privacy policy (GitHub Pages):
- `https://alpha1337.github.io/save-sora/privacy.html`