Skip to content

feat: add batch / multi-preset export support#721

Open
jaygaikar-09 wants to merge 2 commits into
magic-peach:mainfrom
jaygaikar-09:feat/batch-export
Open

feat: add batch / multi-preset export support#721
jaygaikar-09 wants to merge 2 commits into
magic-peach:mainfrom
jaygaikar-09:feat/batch-export

Conversation

@jaygaikar-09
Copy link
Copy Markdown
Contributor

Description

Implemented the Batch / Multi-Preset Export feature for Reframe, allowing users to export the same video in multiple formats (YouTube, Instagram, TikTok, etc.) in a single run using FFmpeg.wasm.

This implementation follows all acceptance criteria mentioned in issue #668 and preserves the existing single-export workflow.

What was implemented

  • Added a Batch Export mode toggle
  • Added multi-select preset support using checkboxes
  • Sequential export processing using a single FFmpeg.wasm worker
  • Live export queue progress:
    • Export X of N
    • current exporting preset filename
  • Individual download support for each generated file
  • ZIP download support using fflate
  • Graceful cancellation support during batch processing
  • FFmpeg cleanup + memory reset between sequential exports
  • Preserved backward compatibility with single export mode

Technical Enhancements

  • Added reusable BatchExportPanel component
  • Added batch progress + cancel state types
  • Added abort + terminate handling for FFmpeg worker reset
  • Added unique FFmpeg virtual filesystem paths per export
  • Improved export lifecycle cleanup using finally
  • Refactored queue management for sequential processing

Related Issue

Closes #668

Type of Contribution

  • Bug fix
  • New feature
  • Documentation update
  • GSSoC contribution

Participant Info

  • GitHub username: jaygaikar-09
  • Contribution level (Beginner/Intermediate/Advanced): Advanced

Screen Recording

Recording / Loom link:

Video.Project.1.2.mp4

Checklist

  • I have read the contribution guidelines
  • My changes follow the project structure
  • I have tested my changes in Chrome, Firefox, and Safari
  • bun run lint passes (no ESLint errors)
  • bunx tsc --noEmit passes (no TypeScript errors)
  • New interactive elements have aria-label / accessible names
  • No console.log statements left in
  • This PR is related to a valid issue
  • Screen recording attached above (required for UI/feature/design changes)

@vercel
Copy link
Copy Markdown

vercel Bot commented May 19, 2026

@jaygaikar-09 is attempting to deploy a commit to the magic-peach1's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
Copy link
Copy Markdown
Contributor

👋 Thanks for your PR, @jaygaikar-09!

Welcome to Reframe — a browser-based video editor built for everyone 🎬

🟠 GSSoC'26 PR detected — thanks for contributing under GirlScript Summer of Code 2026!

What happens next

  1. 🤖 Automated checks — build & TypeScript typecheck will run automatically
  2. Vercel preview — a preview deployment will be created (requires maintainer authorization for fork PRs)
  3. 👀 Code review — a maintainer will review your changes
  4. 🚀 Merge — once approved, your PR will be merged!

Quick checklist

  • PR title follows Conventional Commits (e.g. feat: add dark mode)
  • Linked the issue this PR closes (e.g. Closes #123)
  • Tested the changes locally (bun run dev)
  • Build passes (bun run build)

Useful links

Happy coding! 🎉

@github-actions github-actions Bot added level:advanced Advanced level - 55 pts type:bug Bug fix type:design UI/UX design type:docs Documentation type:feature New feature type:refactor Code refactor gssoc'26 GirlScript Summer of Code 2026 labels May 19, 2026
@github-actions
Copy link
Copy Markdown
Contributor

✅ PR Format Check Passed — @jaygaikar-09

Basic format checks passed. A maintainer will review your code changes.

This does not mean the PR is approved — it just means the format is correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc'26 GirlScript Summer of Code 2026 level:advanced Advanced level - 55 pts type:bug Bug fix type:design UI/UX design type:docs Documentation type:feature New feature type:refactor Code refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: batch / multi-preset export — export the same video in multiple formats at once

1 participant