EscaliumEscalium

Open-source licenses

Escalium is built with open-source software. The components below are used under licenses that ask us to tell you where their source code is available.

Mediabunny

Reading and writing video files in your browser when the Video Editor exports a video on your device.

License
Mozilla Public License 2.0
Source code
https://github.com/Vanilagy/mediabunny
Copyright
Copyright (c) Vanilagy and contributors
Modifications
Used unmodified.

Video effects, transitions and animations

The Video Editor's effects, transitions and animations are Escalium's own work, except the MIT-licensed pieces listed below with their copyright notices.

# Third-party licenses — FX library

The FX library (`apps/frontend/src/lib/fx-library`: effects, transitions, animations, text animations and templates of the video editor) is almost entirely original work, MIT-licensed. The few pieces taken from third parties are listed here with their copyright notices and license text, as the MIT license requires. Every one also has an entry in `licenses/manifest.json` (source, pinned commit, license evidence, date verified).

Only MIT-licensed material is accepted. What was evaluated and left out, and why, is in `licenses/SKIPPED.md`.

The rest of the application's dependencies are covered by their own packages' licenses; the non-MIT ones are listed in `licenses/DEPENDENCIES-REPORT.md`.

---

## gl-transitions

Repository: https://github.com/gl-transitions/gl-transitions  
Pinned commit: 902218a1b63773ac0d0d9f491951da3392365bfe

Every imported transition keeps its original header comment (author and license) inside its GLSL source in apps/frontend/src/lib/fx-library/transitions/<family>/gl-*.ts.

```
MIT License

Copyright (c) 2017-present gl-transitions contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Note: Individual transitions in the transitions/ directory may have their own
license specified in their file header comments. When no license is specified,
the transition is covered by this MIT license.
```

Transitions included:

- transitions/BookFlip.glsl — © hong (as `gl-book-flip`, 3d)
- transitions/Bounce.glsl — © Adrian Purser (as `gl-bounce`, slide)
- transitions/BowTieHorizontal.glsl — © huynx (as `gl-bow-tie-horizontal`, shape)
- transitions/BowTieVertical.glsl — © huynx (as `gl-bow-tie-vertical`, shape)
- transitions/BowTieWithParameter.glsl — © KMojek (as `gl-bow-tie-with-parameter`, shape)
- transitions/Box.glsl — © lql (as `gl-box`, shape)
- transitions/ButterflyWaveScrawler.glsl — © mandubian (as `gl-butterfly-wave-scrawler`, warp)
- transitions/CrazyParametricFun.glsl — © mandubian (as `gl-crazy-parametric-fun`, warp)
- transitions/Directional.glsl — © Gaëtan Renaudeau (as `gl-directional`, slide)
- transitions/DirectionalScaled.glsl — © Thibaut Foussard (as `gl-directional-scaled`, slide)
- transitions/DoomScreenTransition.glsl — © Zeh Fernando (as `gl-drip-bars`, wipe)
- transitions/Dreamy.glsl — © mikolalysenko (as `gl-dreamy`, warp)
- transitions/DreamyZoom.glsl — © Zeh Fernando (as `gl-dreamy-zoom`, zoom)
- transitions/Drop_Zone_Flicker.glsl — © bread (as `gl-drop-zone-flicker`, glitch)
- transitions/EdgeTransition.glsl — © Woohyun Kim (as `gl-edge-transition`, fade)
- transitions/FilmBurn.glsl — © Anastasia Dunbar (as `gl-film-burn`, organic)
- transitions/HorizontalClose.glsl — © martiniti (as `gl-horizontal-close`, wipe)
- transitions/HorizontalOpen.glsl — © martiniti (as `gl-horizontal-open`, wipe)
- transitions/LeftRight.glsl — © zhmy (as `gl-left-right`, slide)
- transitions/LinearBlur.glsl — © gre (as `gl-linear-blur`, fade)
- transitions/Overexposure.glsl — © Ben Zhang (as `gl-overexposure`, fade)
- transitions/PolkaDotsCurtain.glsl — © bobylito (as `gl-polka-dots-curtain`, shape)
- transitions/Rectangle.glsl — © martiniti (as `gl-rectangle`, shape)
- transitions/RectangleCrop.glsl — © martiniti (as `gl-rectangle-crop`, shape)
- transitions/Revolve_Left.glsl — © bread (as `gl-revolve-left`, warp)
- transitions/Rolls.glsl — © Mark Craig (as `gl-rolls`, slide)
- transitions/RotateScaleVanish.glsl — © Mark Craig (as `gl-rotate-scale-vanish`, zoom)
- transitions/SimpleZoom.glsl — © 0gust1 (as `gl-simple-zoom`, zoom)
- transitions/SimpleZoomOut.glsl — © Tianshuo (as `gl-simple-zoom-out`, zoom)
- transitions/Slides.glsl — © Mark Craig (as `gl-slides`, slide)
- transitions/StarWipe.glsl — © Ben Lucas (as `gl-star-wipe`, shape)
- transitions/StaticFade.glsl — © Ben Lucas (as `gl-static-fade`, glitch)
- transitions/StripDatamoshGlitch.glsl — © bread (as `gl-strip-datamosh-glitch`, glitch)
- transitions/TopBottom.glsl — © zhmy (as `gl-top-bottom`, slide)
- transitions/VerticalClose.glsl — © martiniti (as `gl-vertical-close`, wipe)
- transitions/VerticalOpen.glsl — © martiniti (as `gl-vertical-open`, wipe)
- transitions/WaterDrop.glsl — © Paweł Płóciennik (as `gl-water-drop`, warp)
- transitions/ZoomLeftWipe.glsl — © Handk (as `gl-zoom-left-wipe`, zoom)
- transitions/ZoomRigthWipe.glsl — © Handk (as `gl-zoom-right-wipe`, zoom)
- transitions/angular.glsl — © Fernando Kuteken (as `gl-angular`, wipe)
- transitions/burn.glsl — © gre (as `gl-burn`, fade)
- transitions/cannabisleaf.glsl — © @Flexi23 (as `gl-cannabisleaf`, shape)
- transitions/chessboard.glsl — © lql (as `gl-chessboard`, wipe)
- transitions/circle.glsl — © Fernando Kuteken (as `gl-circle`, shape)
- transitions/circleopen.glsl — © gre (as `gl-circleopen`, shape)
- transitions/colorphase.glsl — © gre (as `gl-colorphase`, fade)
- transitions/coord-from-in.glsl — © haiyoucuv (as `gl-coord-from-in`, warp)
- transitions/crosswarp.glsl — © Eke Péter <peterekepeter@gmail.com> (as `gl-crosswarp`, warp)
- transitions/cube.glsl — © gre (as `gl-cube`, 3d)
- transitions/directional-easing.glsl — © Max Plotnikov (as `gl-directional-easing`, slide)
- transitions/directionalwarp.glsl — © pschroen (as `gl-directionalwarp`, warp)
- transitions/directionalwipe.glsl — © gre (as `gl-directionalwipe`, wipe)
- transitions/doorway.glsl — © gre (as `gl-doorway`, 3d)
- transitions/fade.glsl — © gre (as `gl-fade`, fade)
- transitions/fadecolor.glsl — © gre (as `gl-fadecolor`, fade)
- transitions/fadegrayscale.glsl — © gre (as `gl-fadegrayscale`, fade)
- transitions/flyeye.glsl — © gre (as `gl-flyeye`, warp)
- transitions/fragment.glsl — © lbl (as `gl-fragment`, shape)
- transitions/heart.glsl — © gre (as `gl-heart`, shape)
- transitions/kaleidoscope.glsl — © nwoeanhinnogaehr (as `gl-kaleidoscope`, warp)
- transitions/morph.glsl — © paniq (as `gl-morph`, warp)
- transitions/mosaic_transition.glsl — © YueDev (as `gl-mosaic-transition`, glitch)
- transitions/multiply_blend.glsl — © Fernando Kuteken (as `gl-multiply-blend`, fade)
- transitions/old_tv_lost_signal.glsl — © mernking gitlab: Godswork (as `gl-old-tv-lost-signal`, glitch)
- transitions/parametric_glitch.glsl — © Yoni Maltsman @friendlyspinach (as `gl-parametric-glitch`, glitch)
- transitions/pinwheel.glsl — © Mr Speaker (as `gl-pinwheel`, wipe)
- transitions/polar_function.glsl — © Fernando Kuteken (as `gl-polar-function`, shape)
- transitions/powerKaleido.glsl — © Boundless (as `gl-power-kaleido`, warp)
- transitions/randomNoisex.glsl — © towrabbit (as `gl-random-noise-x`, organic)
- transitions/randomsquares.glsl — © gre (as `gl-randomsquares`, organic)
- transitions/ripple.glsl — © gre (as `gl-ripple`, warp)
- transitions/rotateTransition.glsl — © haiyoucuv (as `gl-rotate-transition`, warp)
- transitions/rotate_scale_fade.glsl — © Fernando Kuteken (as `gl-rotate-scale-fade`, zoom)
- transitions/scale-in.glsl — © haiyoucuv (as `gl-scale-in`, zoom)
- transitions/splitSlideInHorizontal.glsl — © OllyOllyOlly (as `gl-split-slide-in-horizontal`, slide)
- transitions/splitSlideInOutHorizontal.glsl — © OllyOllyOlly (as `gl-split-slide-in-out-horizontal`, slide)
- transitions/splitSlideInOutVertical.glsl — © OllyOllyOlly (as `gl-split-slide-in-out-vertical`, slide)
- transitions/splitSlideInVertical.glsl — © OllyOllyOlly (as `gl-split-slide-in-vertical`, slide)
- transitions/splitSlideOutHorizontal.glsl — © OllyOllyOlly (as `gl-split-slide-out-horizontal`, slide)
- transitions/splitSlideOutVertical.glsl — © OllyOllyOlly (as `gl-split-slide-out-vertical`, slide)
- transitions/squareswire.glsl — © gre (as `gl-squareswire`, wipe)
- transitions/squeeze.glsl — © gre (as `gl-squeeze`, warp)
- transitions/static_wipe.glsl — © Ben Lucas (as `gl-static-wipe`, glitch)
- transitions/swap.glsl — © gre (as `gl-swap`, 3d)
- transitions/wind.glsl — © gre (as `gl-wind`, organic)
- transitions/windowblinds.glsl — © Fabien Benetou (as `gl-windowblinds`, wipe)
- transitions/windowslice.glsl — © gre (as `gl-windowslice`, wipe)
- transitions/wipeDown.glsl — © Jake Nelson (as `gl-wipe-down`, wipe)
- transitions/wipeLeft.glsl — © Jake Nelson (as `gl-wipe-left`, wipe)
- transitions/wipeRight.glsl — © Jake Nelson (as `gl-wipe-right`, wipe)
- transitions/wipeUp.glsl — © Jake Nelson (as `gl-wipe-up`, wipe)
- transitions/x_axis_translation.glsl — © lizhongjian (as `gl-x-axis-translation`, slide)
- transitions/zoomInOut.glsl — © OllyOllyOlly (as `gl-zoom-in-out`, zoom)

---

## AutoSubs (video editor transcription)

Repository: https://github.com/tmoroney/auto-subs  
Pinned commit: c98f6df804bf49ab8ff14ee8f24ef1413211dec2

Not part of the FX library: the advanced video editor's transcription. Its subtitle formatter
(`apps/frontend/src/lib/video-editor-advanced/transcription/segmenter.ts`) is a TypeScript rewrite of
the rules in `AutoSubs-App/src-tauri/crates/transcription-engine/src/formatting.rs`, and the
transcription panel (`apps/frontend/src/components/video-editor-advanced/transcription/TranscribePanel.tsx`)
follows the layout of AutoSubs' `transcription-panel-view.tsx`. No AutoSubs code is shipped as is;
its MMS forced aligner (CC BY-NC) is not used.

```
MIT License

Copyright (c) 2023 Tom Moroney

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

The speech models are OpenAI's Whisper (MIT), loaded at run time from the onnx-community
`_timestamped` ONNX exports on Hugging Face; they are not part of this repository.

---

## whisper.cpp and whisper-rs (desktop app's native transcription engine)

Not part of the FX library: the desktop apps carry `escalium-whisper` (desktop/native/escalium-whisper),
built from whisper-rs 0.16.0 / whisper-rs-sys 0.15.0, which bundle whisper.cpp (ggml 0.9.5).

- whisper-rs, whisper-rs-sys — https://github.com/tazz4843/whisper-rs — The Unlicense (public domain dedication).
- whisper.cpp / ggml — https://github.com/ggml-org/whisper.cpp

```
MIT License

Copyright (c) 2023-2024 The ggml authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

## Whisper models (OpenAI)

The desktop app downloads, on first use, the GGML conversions of OpenAI's Whisper models from
https://huggingface.co/ggerganov/whisper.cpp (pinned to commit 5359861c739e955e79d9a303bcbc70fb988958b1,
each file checked against its SHA-256; model card license: MIT). The weights are OpenAI's, MIT-licensed:

```
MIT License

Copyright (c) 2022 OpenAI

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

---

## Noto Color Emoji (the "Emoji burst" lyric style)

Repository: https://github.com/googlefonts/noto-emoji  
Copyright 2013 Google Inc. Font software under the SIL Open Font License 1.1 (https://scripts.sil.org/OFL); the tooling and images of the project under the Apache License 2.0.

`apps/frontend/public/fonts/NotoColorEmoji-subset.ttf` is the font cut down (glyph subset, unchanged outlines and bitmaps) to the ~45 emojis the "Emoji burst" lyric style can draw (`apps/frontend/src/lib/video-editor/lyric-emoji.ts`). It is downloaded only when that style is used. It is not part of the FX library, so it has no `licenses/manifest.json` entry (the manifest accepts MIT only). Apple's emoji artwork is proprietary and is not bundled: on Apple devices the style draws the system's own "Apple Color Emoji".