Skip to content

321BadgerCode/uniconverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Uniconverter logo

Uniconverter

Your files, your format!

HTML logo Python logo JavaScript logo Docker logo

πŸš€ Overview

Welcome to Uniconverter! This program allows you to convert files of one type to another using a simple web interface. It is designed to be user-friendly and efficient, making it easy for anyone to convert their files without any technical knowledge.

🎨 Features

  • πŸŒ‘ Dark Theme: The program features a sleek dark theme that is easy on the eyes and provides a modern look.
  • πŸ–±οΈ Drag and Drop: Users can easily drag and drop files into the program for conversion, making the process quick and intuitive.
  • πŸ“ File Preview: The program allows users to preview the files they want to convert, ensuring they select the correct files before conversion.
  • πŸ—ƒοΈ Folder Support: Users can upload entire folders of files, making it convenient for batch conversions.
  • πŸ”’ Multimodality Compatibility: The program can convert files to different formats, such as video to audio.
  • ♾️ No Conversion Limit: There are no caps on the number or size of files you can convert.
  • πŸ‘ Docker Compatibility: The program can be run in a Docker container, making it easy to deploy and use on any system.
  • πŸ«‚ PWA Support: The program can be installed as a Progressive Web App (PWA), allowing users to run it like a native application on their devices.
  • 🧩 Polyglot Merging: The program can merge files of different formats into a single output file.
  • ℹ️ Metadata Extraction: The program can extract metadata from files, providing users with additional information about their files.
  • πŸ—‘οΈ Metadata Deletion: The program can delete metadata from files, ensuring user privacy and reducing file size.

πŸ› οΈ Installation

To install, you only have to clone the repository

git clone https://github.com/321BadgerCode/uniconverter.git
cd ./uniconverter/
πŸ“¦ Dependencies

When using Docker, the only dependency for this repository is Docker itself.


Otherwise, the following dependencies are required:

  • Python: You can download Python from the Python website.
  • FFMpeg: The program requires FFmpeg to be installed on your system. You can download it from the FFmpeg website.
  • ExifTool: The program uses ExifTool for metadata extraction. You can download it from the ExifTool website.
  • Python Packages: The program uses several Python packages. You can install them using pip:
pip install -r requirements.txt

Note

Not all Python packages are required for the program to run, but some packages are needed for specific file conversions or features.

πŸ“ˆ Usage

To use the program, you can either run it with Python or within a Docker container:

Using Python

After installing the dependencies, the only command needed to run the program is:

python ./app.py

Then, just go to http://localhost:5000 to view the web interface.

Using Docker

πŸ“ Docker Notes
  1. Ensure you have Docker installed on your system. You can find installation instructions on the Docker website.
  2. The program uses Docker Compose to manage the container. Make sure you have Docker Compose installed as well.
  3. The program uses the docker compose command, which is the newer syntax for Docker Compose. If you have an older version of Docker Compose, you may need to use docker-compose instead.
  4. Some helpful commands:
groups # Check your user groups (you should see `docker` in the list)
newgrp docker # Create a new group session with the `docker` group
sudo usermod -aG docker $USER && sudo reboot # Add your user to the Docker group and reboot your device
  1. Build the Docker image
docker compose up
docker compose up -d # Run in detached mode
  1. Access the web interface Go to http://localhost:5000 in a web browser to access the Uniconverter web interface.
firefox http://127.0.0.1:5000
  1. Stop the Docker container (if ran in detached mode)
docker ps # List running containers
docker compose down
  1. Cleanup (optional)
docker compose down --volumes --remove-orphans # Remove volumes and orphan containers
docker images # List docker images
docker rmi uniconverter-web # Remove the Docker image
πŸ’» Command Line Arguments
Argument Description Default
-h & --help Help menu
--cleanup Delete optional files on exit False

πŸ› οΈ Build

To build the program into an executable (Electron app), you can run the following commands:

npm install -g nativefier
python ./app.py

Then, run the following in a separate terminal session:

nativefier --single-instance http://localhost:5000

Note

The nativefier command will create a standalone application that can be run on your system. You can find the generated folder in the current directory, labeled Uniconverter-linux-x64 (or similar, depending on your OS). You cannot delete the resource files found in that generated folder after building, as they are required for the application to run.

πŸ–ΌοΈ Screenshots

Example

🀝 Contributing

Contributions are welcome! If you have any suggestions or improvements, feel free to open an issue or submit a pull request. Please run the following to setup the development environment:

chmod +x ./setup_dev.sh
./setup_dev.sh

This establishes the Git commit template and commit-msg hook, which ensures that all commits follow the project's commit message guidelines.

πŸ“œ License

LICENSE