Skip to content

πŸ’½ Simplified Media conversion, Powered by FFMPEG

Notifications You must be signed in to change notification settings

Ssenseii/monica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MONICA

Media Operations Navigator with Interactive Command-line Assistance

A simple, keyboard-driven interactive CLI application that makes FFmpeg easy to use without exposing FFmpeg syntax.

Features

  • Interactive menu - No need to remember command-line flags
  • Keyboard navigation - Arrow keys to move, Enter to select, Space to multi-select
  • Auto FFmpeg setup - Automatically downloads FFmpeg if not installed
  • Recipe-based operations - Pre-configured presets for common tasks
  • Progress display - Visual progress bar during conversions
  • Multi-file processing - Select multiple files and process them in queue
  • Cross-platform - Works on Windows and Linux

Supported Operations

Category Description
Convert Video MP4, MKV, WebM, AVI with various codecs (H.264, H.265, VP9)
Convert Audio MP3, AAC, FLAC, WAV, OGG, Opus
Extract Audio Extract audio tracks from video files
Resize/Compress Scale to 1080p, 720p, 480p, 360p or compress with quality presets
Remux Change container format without re-encoding

Installation

Prerequisites

  • Python 3.10 or higher
  • FFmpeg (auto-downloaded if not present)

Steps

  1. Clone the repository:

    git clone https://github.com/yourusername/monica.git
    cd monica
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python main.py

On first run, MONICA will check for FFmpeg and offer to download it automatically if not found.

Usage

  1. Place your input files in the /import folder
  2. Run python main.py
  3. Use arrow keys to navigate the menu
  4. Select an operation (e.g., "Convert video")
  5. Choose a preset (e.g., "MP4 (H.264)")
  6. Select files to process using Space, then press Enter
  7. Converted files appear in the /export folder

Output Naming

Output files are automatically named with a timestamp:

<original_name>_<YYYYMMDD_HHMMSS>_<FORMAT>_converted.<ext>

Example: video_20260108_143210_MP4_converted.mp4

Project Structure

monica/
β”œβ”€β”€ main.py              # Entry point
β”œβ”€β”€ requirements.txt     # Python dependencies
β”œβ”€β”€ README.md           # This file
β”œβ”€β”€ import/             # Input files go here
β”œβ”€β”€ export/             # Output files appear here
β”œβ”€β”€ logs/               # Log files
β”œβ”€β”€ docs/               # Documentation
β”‚   β”œβ”€β”€ introduction.md # Project specification
β”‚   β”œβ”€β”€ usage.md        # User guide
β”‚   └── recipes.md      # Recipe documentation
└── src/
    β”œβ”€β”€ __init__.py
    β”œβ”€β”€ ffmpeg_manager.py   # FFmpeg detection/download
    β”œβ”€β”€ menu.py             # Interactive menus
    β”œβ”€β”€ recipes.py          # Conversion presets
    β”œβ”€β”€ file_selector.py    # File picker
    β”œβ”€β”€ executor.py         # Job execution
    └── logger.py           # Logging

Configuration

Custom Recipes

You can add custom recipes by creating a custom_recipes.json file in the project root. See docs/recipes.md for details.

Dependencies

  • questionary - Interactive prompts and menus
  • colorama - Cross-platform colored terminal output
  • requests - HTTP client for FFmpeg download

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

πŸ’½ Simplified Media conversion, Powered by FFMPEG

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages