Say "Enough 😤" to online converters cluttered with ads and malware. Streamline the conversion of legacy file formats to modern web standards into a single command execution. Simply place files in a designated directory and let Kotvertka handle the rest.
This project is officially hosted on Codeberg, with mirror repositories accessible on GitHub and GitLab.
- Why Kotvertka?
- Prerequisites
- Installation
- Usage
- Troubleshooting
- Invalid usage. A directory path argument needs to be provided.
- Invalid usage. A directory path argument needs to target an existing directory.
- Invalid usage. A directory path argument needs to target an existing directory, not a file.
- Invalid usage. WebP quality argument needs to be between 0 and 100.
- Contributing
- License
Your instincts take you to the nearest "png to webp convertor" out there. The convertor will serve you a bunch of ads, obtain your files, and, if you think https://jpegwebp.xx3.com.ua is a legit website, might even distribute malware to your device.
Kotvertka solves all of this by delegating the work to dedicated tools that run locally.
The releases are available on Codeberg under the Release page of the project.
To utilize Kotvertka, the following tools must be installed on the system and added to the PATH
environment variable. These are endorsed by the authors of the modern file formats, ensuring optimal compatibility and accuracy.
Please note that this is a temporary requirement, and efforts are underway to eliminate these dependencies. For more information and to track progress, refer to the following issues on Codeberg:
- Eliminate the dependency on local cwebp installation
- Eliminate the dependency on local ffmpeg installation
libwebp is used for converting images to WebP format.
ffmpeg is a multimedia processing tool that is used for converting audio and video files.
Please note that there are plans to improve the installation experience as publish the application through package managers.
Multi-User Installation
To install Kotvertka for all users, simply copy the binary to /usr/local/bin
directory. You will likely need sudo
permission for this operation.
sudo mv ~/Downloads/kotvertka/kotvertka /usr/local/bin/kotvertka
Single-User Installation
To install Kotvertka for a single user, simply copy the binary to ~/.local/bin
directory.
mv ~/Downloads/kotvertka/kotvertka ~/.local/bin/kotvertka
Multi-User Installation
To install Kotvertka for all users, use the following commands:
Copy-Item $HOME\Downloads\kotvertka "C:\Program Files\Kotvertka" -Recurse
[Environment]::SetEnvironmentVariable("Path", $env:PATH + ";C:\Program Files\Kotvertka", "Machine")
Single-User Installation
To install Kotvertka for a single user, use the following commands:
Copy-Item $HOME\Downloads\kotvertka $HOME\AppData\Local\Kotvertka -Recurse
[Environment]::SetEnvironmentVariable("Path", $env:PATH + ";$HOME\AppData\Local\Kotvertka", "User")
kotv [OPTIONS...]
Required flags:
-p, --path Set a directory with files to convert
Optional flags:
-h, --help Display help
--pq, --webpq Set a quality to use for WebP conversion (0 - 100)
--mq, --webmq Set a quality to use for WebM conversion (0 - 63)
--ro, --recursive-output Store the output in respect to the directory structure
Example:
kotv -p /the-project/assets --pq 100 --mq 25
The tool supports convertion of the following formats:
Input | Output |
---|---|
AVI | WEBM |
FLV | WEBM |
GIF | WEBP |
JPEG | WEBP |
JPG | WEBP |
M4V | WEBM |
MKV | WEBM |
MOV | WEBM |
MP4 | WEBM |
MPG | WEBM |
OGG | WEBM |
OTF | WOFF2 |
PAM | WEBP |
PGM | WEBP |
PNG | WEBP |
PPM | WEBP |
TIF | WEBP |
TIFF | WEBP |
TTF | WOFF2 |
WEBP | WEBP |
WEBM | WEBM |
WMV | WEBM |
WOFF | WOFF2 |
WOFF2 | WOFF2 |
- Animated PNG and WebP files are not supported for the conversion into WebP.
To solve this problem ensure that the path
arguments is available. Refer to the Usage section for more information.
To solve this problem ensure that the directory you target exists.
To solve this problem ensure that the directory you target is not a file.
To solve this problem ensure that the webpq
arguments is a number between 0 and 100. Refer to the Usage section for more information.
To solve this problem ensure that the webmq
arguments is a number between 0 and 63. Refer to the Usage section for more information.
To solve this proble ensure that the libwebp utility is installed. Refer to the Intallation section for more information.
The project is open for the contributions. All the contributions are published under the license outlined in the License. Please review the contribution disclaimer carefully before submitting any contributions.
-
JavaScript
-
TypeScript
-
Deno
All files of this project are published under the BSD-3-Clause license, unless otherwise specified. For more information, refer to the LICENSE
file.
The files under /src/tests/fonts
are published under the MIT License. For more information, refer to the LICENSE
file in the particular directory.