Open source licences
Every open source component iHateFiles runs on, the licence each one carries, and where to get its source code.
The short version
iHateFiles is built almost entirely out of other people's work. None of these licences ask anything of you as a visitor: the files you convert are yours, and what you do with them is your business. The obligations here are ours, and this page is us meeting them.
The conversion engine
FFmpeg does every video and audio conversion on this site,
compiled to WebAssembly and running inside your browser tab. It is licensed under the
GPL-2.0-or-later, shipped here as @ffmpeg/core 0.12.10.
Your browser downloads that binary in order to run it, which means we are distributing GPL software to you. The licence requires that we tell you so, and that we make the corresponding source available. We do, and it is linked below.
- Build and packaging: github.com/ffmpegwasm/ffmpeg.wasm
- FFmpeg upstream: ffmpeg.org/download.html
- The licence itself, served from this site: GPL version 2
The binary we ship reports this configuration:
--enable-gpl --enable-libx264 --enable-libx265 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libzimg --enable-zlib
Of those, libx264 and libx265 are the GPL-licensed pieces, and they
are the reason the whole build is GPL rather than the more permissive LGPL.
Inside the engine
These libraries are compiled into that single binary rather than downloaded separately, so they are listed here for completeness.
- libx264 — H.264 video encoding. Licence: GPL-2.0-or-later.
- libx265 — HEVC video encoding. Licence: GPL-2.0-or-later.
- libvpx — VP8 and VP9 video encoding. Licence: BSD-3-Clause.
- libmp3lame — MP3 audio encoding. Licence: LGPL-2.0-or-later.
- libopus — Opus audio encoding. Licence: BSD-3-Clause.
- libvorbis — Vorbis audio encoding. Licence: BSD-3-Clause.
- libtheora — Theora video encoding. Licence: BSD-3-Clause.
- libwebp — WebP encoding. Licence: BSD-3-Clause.
- libass — Subtitle rendering. Licence: ISC.
- FreeType — Font rasterising. Licence: FTL or GPL-2.0-or-later.
- FriBidi — Bidirectional text. Licence: LGPL-2.1-or-later.
- zimg — Colour and scaling. Licence: WTFPL.
- zlib — Compression. Licence: zlib.
Everything else
-
ffmpeg.wasm 0.12.15 — The wrapper that loads the engine and talks to it from the page.
Licence: MIT. Source: github.com/ffmpegwasm/ffmpeg.wasm
-
mp4box.js 2.4.1 — Reads MP4 structure so the browser’s own video hardware can be used.
Licence: BSD-3-Clause. Source: github.com/gpac/mp4box.js
-
mp4-muxer 5.2.2 — Writes the MP4 files that hardware encoding produces.
Licence: MIT. Source: github.com/Vanilagy/mp4-muxer
-
ONNX Runtime Web 1.22 — Runs the background-removal model in the browser.
Licence: MIT. Source: github.com/microsoft/onnxruntime
-
ISNet (DIS) — The model that decides which pixels are the subject of a photograph.
Licence: Apache-2.0. Source: github.com/xuebinqin/DIS
-
Spleeter — The models that separate a mix into vocals, drums, bass and backing.
Licence: MIT. Source: github.com/deezer/spleeter
-
Transformers.js 3.7.6 — Runs the speech recognition model in the browser.
Licence: Apache-2.0. Source: github.com/huggingface/transformers.js
-
Whisper tiny.en — The model that turns speech into subtitles.
Licence: MIT. Source: github.com/openai/whisper
-
Tesseract.js 7.0.0 — Reads text out of images.
Licence: Apache-2.0. Source: github.com/naptha/tesseract.js
-
Tesseract English data — The trained data the text recognition needs.
Licence: Apache-2.0. Source: github.com/tesseract-ocr/tessdata
-
UTIF.js 3.1.0 — Decodes TIFF images, which browsers cannot open on their own.
Licence: MIT. Source: github.com/photopea/UTIF.js
-
heic2any 0.0.4 — Decodes the HEIC photos an iPhone produces.
Licence: MIT. Source: github.com/alexcorvi/heic2any
-
DejaVu Sans 2.37 — Draws subtitle and watermark text inside the engine.
Licence: Bitstream Vera Fonts Licence. Source: dejavu-fonts.github.io/
Asking us for source
Every component above links to the repository its shipped file was built from, so nothing should require asking. If a link ever rots or you want the exact bytes we served on a given day, write to us and we will send them.
Questions
Can I use iHateFiles commercially?
Yes. The licences below cover the code this site is built from, not the files you convert with it. What you make here is yours, and nothing about it is encumbered by them.
Why is the conversion engine under the GPL?
FFmpeg can be built either way. The build we use includes libx264 and libx265, which are themselves GPL, and that makes the whole binary GPL. Because your browser downloads that binary, we are distributing it to you, and the licence requires us to say so and to give you its source.
Where do I get the source code?
Every component below links to the repository the shipped file was built from. For FFmpeg specifically, the exact sources and build scripts are in the ffmpeg.wasm repository.
Do I have to publish my own code to use this?
No. The GPL places obligations on whoever distributes the software, which here is us. Using the site imposes nothing on you at all.