mediacurator/README.md
Fabrice Quenneville 5ba0f84d12 **Summary:**
This release introduces a major overhaul of the `mediacurator` command-line interface (CLI) and comprehensive updates to the documentation. The CLI has transitioned from a custom argument parsing system to utilizing Python's `argparse` and `argcomplete` libraries, greatly enhancing usability and flexibility. Due to these significant changes, the version is incremented from **0.0.13** to **1.0.1**.

- **Refactored** `tools.py` for standardized command-line argument handling using `argparse` and `argcomplete`.
- **Improved** user interaction with structured arguments and built-in help, error handling, and validation.
- **Consolidated** video detail printing logic into a reusable method within the `Video` class.
- **Enhanced** `MediaLibrary` class with better clarity, functionality, and expanded support for video formats.
- **Reorganized** `main.py` to streamline argument handling and improve error feedback.
- **Updated** `setup.py` for release preparation, including new classifiers and dependencies.

- **Revised** README.md for clarity, including structured command usage and improved descriptions.
- **Moved** and improved old documentation, removing outdated content and adding new screenshots.
- **Maintained** legacy commands for backward compatibility while enhancing usability with clear examples.

- **Removed** non-existent `bcolors` from the public API.
- **Upgraded** requirements.txt to include `argcomplete` for command-line completion.
- **Updated** docstrings and function documentation for clarity on functionality and parameters.
2024-10-20 23:19:42 -04:00

79 lines
2.9 KiB
Markdown

# mediacurator
mediacurator is a Python command line tool to manage a media database.
- List all the videos and their information with or without filters
- Batch find and repair/convert videos with encoding errors
- Batch recode videos to more modern codecs (x265 / AV1) based on filters: extensions, codecs, resolutions …
## Documentation
The documentation is available on the following [link](https://fabquenneville.github.io/mediacurator/)
## Releases
mediacurator is released on [PyPi](https://pypi.org/project/mediacurator/).
Installation instructions are found on the [GitHub page](https://fabquenneville.github.io/mediacurator/usage/installation.html).
## Usage
```bash
mediacurator <command> [options]
# Command options
mediacurator [list convert] [-del/--delete]
[-i/--inputs any 3gp asf avi divx dv f4v flv gif m2ts m4v mkv mov mp4 mpeg mpg mts ogm ogv rm swf ts vid vob webm wmv]
[-fl/--filters fferror old lowres hd 720p 1080p uhd mpeg mpeg4 x264 wmv3 wmv]
[-o/--outputs mkv/mp4 x265/av1]
[-p/--printop list formatted verbose]
[-d/--dirs "/mnt/media/" "/mnt/media2/"]
[-f/--files "file1.ext" "file2.ext"]
```
**Available commands:**
- `list`: List all videos with specified filters.
- `convert`: Convert videos to specified formats.
**Options:**
- `-del` or `--delete`: Delete found results after successful operations. **Use with caution**.
- `-i <input>` or `--inputs <input>`: Specify input file formats (default: `any`).
- `-fl <filter>` or `--filters <filter>`: Apply filters to the selection of videos.
- `-o <output>` or `--outputs <output>`: Specify output formats (default: `mkv`, `x265`).
- `-p <print_option>` or `--printop <print_option>`: Set print options (default: `list`).
- `-f <file>` or `--files <file>`: Specify files to process.
- `-d <directory>` or `--dirs <directory>`: Specify directories to process.
**For multiple files or filenames, use space-separated values ( ).**
**Default options (if not specified):**
- `-i/--inputs`: `any`
- `-fl/--filters`: (none)
- `-o/--outputs`: `mkv`, `x265`
- `-p/--printop`: `list`
### Examples
```bash
# List all videos with old codecs in formatted output
mediacurator list --filters old --printop formatted --dirs "/mnt/media/" "/mnt/media2/" >> ../medlist.txt
# Convert all MPEG4 videos to AV1 in MP4 format, and delete originals after conversion
mediacurator convert --delete --filters mpeg4 --outputs av1 mp4 --dirs "/mnt/media/" "/mnt/media2/"
# Convert videos with AVI or MPG extensions, print formatted and verbose output, and delete originals
mediacurator convert --delete --inputs avi mpg --printop formatted verbose --dirs "/mnt/media/" "/mnt/media2/"
```
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)