diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c1fedb6..a75b867 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,6 +3,13 @@ name: Deploy to GitHub Pages on: push: branches: [main] + # README-only and workflow-only edits don't change anything the app + # serves, so skip them: a redeploy would still bake a new commit hash + # into the PWA build and force the "update available" prompt on every + # visitor for no user-facing reason. + paths-ignore: + - 'README.md' + - '.github/**' workflow_dispatch: permissions: diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cd3fc28 --- /dev/null +++ b/LICENSE @@ -0,0 +1,27 @@ +MIT License + +Copyright (c) 2026 dubsector + +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. + +--- + +This license covers video-shrinker's own source code. The optional CPU-fallback +encoder it loads at runtime bundles third-party FFmpeg code under different, +copyleft terms — see the "Third-party licenses" section of README.md. diff --git a/README.md b/README.md index 678f658..8867508 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,23 @@ It's installable as an app. An in-page banner offers to install it directly, or - [vite-plugin-pwa](https://vite-pwa-org.netlify.app/) for the installable/offline bits - React + Vite, deployed to GitHub Pages via Actions +## License + +video-shrinker's own source is [MIT](LICENSE). + +The CPU-fallback encoder (`@ffmpeg/core`, only loaded when a browser can't do +WebCodecs hardware encoding) is a separately-distributed FFmpeg build compiled +with `--enable-gpl --enable-libx264 --enable-libx265`, which makes that binary +**GPL-2.0-or-later**, not MIT/LGPL. It's self-hosted from this repo as a static +asset. Its corresponding source is the upstream project at the exact version +in use: [ffmpegwasm/ffmpeg.wasm @ v0.12.10](https://github.com/ffmpegwasm/ffmpeg.wasm/tree/v0.12.10) +([build config](https://github.com/ffmpegwasm/ffmpeg.wasm/blob/v0.12.10/Dockerfile)). + +Everything else shipped to the browser is permissive: React and React-DOM +(MIT), `@ffmpeg/ffmpeg`'s JS wrapper and `@ffmpeg/types` (MIT), and Mediabunny +(MPL-2.0). Build-only tooling (Vite, TypeScript, oxlint, the PWA/static-copy +plugins) isn't distributed with the app and isn't covered here. + ## Development ```