Compare commits

..

16 Commits

Author SHA1 Message Date
4a06bd4d63 docs: Update README to include installation methods via APT and PyPi
- Added information on installing mediacurator from APT repository and PyPi.
- Included relevant links for installation instructions, APT repository, and PyPi page.
2024-10-30 02:33:30 -04:00
a82e97de75 feat: Add APT installation instructions to documentation
- Updated installation documentation to include instructions for installing mediacurator via APT repository.
- Added a table of contents for easier navigation.
- Moved FFmpeg installation instructions to the bottom, noting that they are only required when installing via pip if not already installed.
2024-10-30 02:26:41 -04:00
cc6fe4943c feat: add debian/ directory for packaging
- Included necessary files for .deb package creation.
- Corrected email address in setup.py for proper attribution.
2024-10-22 23:31:53 -04:00
cf3473610d Minor .gitignore addition 2024-10-22 21:57:49 -04:00
767a5cfbd6 docs: Update release notes for version 1.0.1
- Added detailed highlights of the major CLI overhaul and expanded format support.
- Clarified dropped support section to reflect changes in the CLI API and naming conventions.
- Enhanced the new features section to accurately list all improvements and modifications.
2024-10-20 23:40:24 -04:00
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
635cfc710e Updated 1.0.1 Release Notes 2024-10-18 01:23:54 -04:00
c42271b0e4 Feat: Enhance video conversion process on odd pixel dimensions
- Added line break in conversion output before each video for improved readability.
- Implemented handling for odd pixel dimensions by adding black pixel padding to ensure even width and height.
2024-10-18 01:21:34 -04:00
5ad78b33f2 Fix makedocs script to run from project root and update 1.0.1 release notes
- Modified makedocs script to allow execution from the project root directory, updating paths for source and build directories.
- Fixed a missing sentence in the 1.0.1 release notes, ensuring clarity and completeness in the changelog documentation.
2024-10-17 20:20:12 -04:00
448c673385 chore: applied code formatting across mediacurator modules
Formatted code to improve consistency and readability across the following files:
- mediacurator/__init__.py
- mediacurator/library/__init__.py
- mediacurator/library/medialibrary.py
- mediacurator/library/tools.py
- mediacurator/library/video.py
- mediacurator/mediacurator.py
- setup.py

No functional changes were made, only cosmetic improvements.
2024-10-17 20:12:17 -04:00
89452e8fa4 Updated docs 2024-10-17 20:01:27 -04:00
80ef63eccd Rename MediaCurator to mediacurator and update to version 1.0.1
- Breaking change: Renamed the project from 'MediaCurator' to 'mediacurator' to standardize naming conventions (all lowercase).
- Updated all references across documentation and source files:
  - README.md
  - Various .rst documentation files (installation, manual, use cases, errors, warnings)
  - Python source files in 'mediacurator/library' and main 'mediacurator.py'
  - setup.py
- Incremented version from 0.0.13 to 1.0.1 to reflect breaking changes.
- Added release notes for 1.0.1 in docsource/source/releasenotes/1.0.1-changelog.rst
2024-10-17 19:58:25 -04:00
53f6da9835 feat: Preserve metadata during conversion
Added '-map_metadata', '0' to the ffmpeg command to ensure all metadata from the input file is preserved in the output file. This change enhances the output quality by retaining important information such as title, year, and other metadata associated with the media files.
2024-10-17 16:24:36 -04:00
8319851836 Improved ffmpeg conversion script with stream mapping, quality control, and new format support
- Added explicit stream mapping for video (-map 0:v), audio (-map 0:a?), and subtitles (-map 0:s?) to preserve all streams during conversion.
- Removed '-strict experimental' for AV1 as it's no longer necessary for most ffmpeg builds.
- Introduced CRF (Constant Rate Factor) settings for AV1 and x265 for better control over quality and file size.
- Standardized audio and subtitle copying with '-c:a copy' and '-c:s copy' for efficiency.
- Added support for .mov and .ts formats in MediaCurator.
2024-10-17 15:38:35 -04:00
1516b6a321 Updated docs 2024-05-01 17:55:16 -04:00
6a0fd8f2dc Added a line break and fixed a typo. 2024-04-24 19:35:31 -04:00
117 changed files with 6801 additions and 14715 deletions

2
.gitignore vendored
View File

@ -13,6 +13,8 @@ renamelist.txt
# Setuptools distribution folder. # Setuptools distribution folder.
/dist/ /dist/
*.whl
*.tar.gz
# Python egg metadata, regenerated from source files by setuptools. # Python egg metadata, regenerated from source files by setuptools.
/*.egg-info /*.egg-info

View File

@ -1,41 +1,86 @@
# MediaCurator # mediacurator
MediaCurator is a Python command line tool to manage a media database. 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 - List all the videos and their information with or without filters
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions … - 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 ## Documentation
The documentation is available on the following [link](https://fabquenneville.github.io/MediaCurator/) The documentation is available on the following [link](https://fabquenneville.github.io/mediacurator/)
## Releases ## Releases
MediaCurator is released on [PyPi](https://pypi.org/project/MediaCurator/). mediacurator can be installed via the following methods:
Instalation instructions are found on the [Github page](https://fabquenneville.github.io/MediaCurator/usage/installation.html).
- APT repository for Debian/Ubuntu systems
- PyPi using pip
For detailed installation instructions, please visit the following links:
- [Installation Instructions](https://fabquenneville.github.io/mediacurator/usage/installation.html)
- [APT Repository](https://debrepo.fabq.ca/)
- [PyPi Page](https://pypi.org/project/mediacurator/)
## Usage ## Usage
mediacurator [list,convert] [-del] [-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] [-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] [-out:mkv/mp4,x265/av1] [-print:list,formated,verbose] [-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
> for multiple files or filenames use double comma separated values ",,"
default options are:
-in:any
-filters:
-out:mkv,x265
-print:list
Examples:
```bash ```bash
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt mediacurator <command> [options]
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/"
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ # 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 ## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. 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. Please make sure to update tests as appropriate.
## License ## License
[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)
[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
mediacurator (1.0.1-1) UNRELEASED; urgency=low
* Initial release of mediacurator 1.0.1.
-- Fabrice Quenneville <fabrice@fabq.ca> Tue, 22 Oct 2024 02:07:36 -0400

14
debian/control vendored Normal file
View File

@ -0,0 +1,14 @@
Source: mediacurator
Section: utils
Priority: optional
Maintainer: Fabrice Quenneville <fabrice@fabq.ca>
Build-Depends: debhelper-compat (= 13), dh-python, python3-all
Standards-Version: 4.6.0
Homepage: https://fabquenneville.github.io/mediacurator
Vcs-Git: https://github.com/fabquenneville/mediacurator
Package: mediacurator
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends}, ffmpeg
Description: A media curation tool with CLI interface
This package provides a Python-based media curation tool that automates media file conversions using the FFMPEG library.

7
debian/copyright vendored Normal file
View File

@ -0,0 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: mediacurator
Source: https://github.com/fabquenneville/mediacurator
Files: \*
Copyright: 2024, Fabrice Quenneville <fabrice@fabq.ca>
License: GPLv3

8
debian/rules vendored Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/make -f
%:
dh $@ --with python3 --buildsystem=pybuild
clean:
dh_clean
rm -rf dist/ *.whl *.tar.gz docs/ docsource/

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

1
debian/source/options vendored Normal file
View File

@ -0,0 +1 @@
extend-diff-ignore = "dist/.*|(^|/)(\.pybuild|mediacurator\.egg-info/)"

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 224 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,19 +1,26 @@
.. MediaCurator documentation master file, created by
sphinx-quickstart on Fri Nov 20 22:46:06 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
======================================== ========================================
Welcome to MediaCurator's documentation! Welcome to mediacurator's documentation!
======================================== ========================================
MediaCurator is a Python command line tool to manage a media database. mediacurator is a Python command line tool to manage a media database.
* List all the video's and their information with or without filters * List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors * Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions ... * Batch recode videos to more modern codecs (x265 / AV1) based on filters: extensions, codecs, resolutions ...
The source code can be found on `GitHub <https://github.com/fabquenneville/MediaCurator>`_ The source code can be found on `GitHub <https://github.com/fabquenneville/mediacurator>`_
.. warning::
**Breaking changes in version 1.0.1:**
Starting with version 1.0.1, the command-line interface (CLI) has undergone major changes, and the usage is **not backwards-compatible** with previous versions.
If you are using `mediacurator < 1.0.1`, please refer to the legacy documentation available below (:ref:`legacy_docs`).
----------------------------------------
Documentation
----------------------------------------
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
@ -30,6 +37,38 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
:maxdepth: 1 :maxdepth: 1
:caption: Release Notes: :caption: Release Notes:
releasenotes/1.0.1-changelog
----
.. _legacy_docs:
----------------------------------------
Legacy Documentation (Pre 1.0)
----------------------------------------
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. toctree::
:maxdepth: 1
:caption: Legacy Usage:
legacy_usage/warnings
legacy_usage/installation
legacy_usage/quickstart
legacy_usage/manual
legacy_usage/use_cases
legacy_usage/errors
.. toctree::
:maxdepth: 1
:caption: Legacy Release Notes:
releasenotes/0.0.13-changelog
releasenotes/0.0.12-changelog
releasenotes/0.0.11-changelog
releasenotes/0.0.10-changelog releasenotes/0.0.10-changelog
releasenotes/0.0.9-changelog releasenotes/0.0.9-changelog
releasenotes/0.0.8-changelog releasenotes/0.0.8-changelog

View File

@ -0,0 +1,41 @@
======
Errors
======
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
FFmpeg can detect quite a few errors in the encoding of your source video's encoding and can also be used to repair these errors.
Repairable Encoding Errors
--------------------------
Here are some example errors that mediacurator will print and can possibly repair by re-encoding:
* **"Referenced QT chapter track not found"**: Indicates that the video references a chapter that doesn't exist.
* **"Error, header damaged or not MPEG-4 header"**: The file's header is corrupted or missing.
* **"Header missing"**: The file lacks the necessary header information for decoding.
* **"SEI type"**: Issues related to SEI (Supplemental Enhancement Information) data.
* **"no frame!"**: No video frames available for processing.
* **"Error while decoding MPEG audio frame."**: Issues decoding the audio stream.
* **"big_values too big"**: Indicates that certain values in the file are larger than expected.
* ...
FFmpeg Issues
-------------
While using FFmpeg, you may encounter other errors (such as segfaults) depending on your version. Mediacurator will also print information when that occurs and will move on to the next video after cleaning up any failures.
If you experience these errors, consider the following steps:
* **Update FFmpeg**: Ensure you are using the latest version by downloading it from `ffmpeg.org <https://ffmpeg.org/download.html>`_, as many distributions provide outdated versions in their repositories.
* **Run with Verbose Option**: Execute mediacurator with the verbose print option, which will display the raw FFmpeg output for better troubleshooting.
* **Retry**: In my experience, some errors do not necessarily recur...
Other Bugs
----------
If you encounter other bugs, issues, or would like to suggest features, feel free to open a bug report on `GitHub <https://github.com/fabquenneville/mediacurator/issues>`_.
For further assistance, you can reach out through the GitHub repository or the projects support channels.

View File

@ -0,0 +1,45 @@
============
Installation
============
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
This package has been tested on GNU/Linux (e.g., Debian, Ubuntu, Fedora) and Windows, and requires FFmpeg to be installed. For now, it will be distributed on `GitHub <https://github.com/fabquenneville/mediacurator.git>`_.
Install FFmpeg
--------------
To install FFmpeg, you can follow the instructions for your platform:
- **On Debian and Ubuntu**:
.. code-block:: bash
sudo apt update
sudo apt install ffmpeg
- **On Fedora**:
.. code-block:: bash
sudo dnf install ffmpeg
- **On Windows**:
- Download the latest build from `FFmpeg <https://ffmpeg.org/download.html>`_.
- Follow the installation instructions provided on the site.
To verify your FFmpeg installation, you can run:
.. code-block:: bash
ffmpeg -version
Install from PyPi
-----------------
You can install the `mediacurator` package directly from PyPi using the following command:
.. code-block:: bash
pip install MediaCurator

View File

@ -0,0 +1,185 @@
======
Manual
======
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
Name
----
mediacurator
Synopsis
--------
.. code-block:: bash
mediacurator <command> [options]
mediacurator [list,convert] [-del]
[-in:any,avi,divx,flv,m4v,mkv,mp4,mpg,ogm,vid,webm,wmv]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv,vob]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**Available commands:**
- `list`: List all videos with specified filters.
- `convert`: Convert videos to specified formats.
**Options:**
- `-del`: Delete found results after successful operations. **Use with caution**.
- `-in <input>`: Specify input file formats (default: `any`).
- `-filters <filter>`: Apply filters to the selection of videos.
- `-out <output>`: Specify output formats (default: `mkv`, `x265`).
- `-print <print_option>`: Set print options (default: `list`).
- `-files <file>`: Specify files to process.
- `-dirs <directory>`: Specify directories to process.
**For multiple files or filenames, use double comma separated values (,,).**
**Default options (if not specified):**
- `-in`: `any`
- `-filters`: (none)
- `-out`: `mkv`, `x265`
- `-print`: `list`
Description
-----------
**mediacurator** is a Python command-line tool designed to manage a media database. It allows you to:
- List all videos and their metadata, optionally filtered by specified criteria.
- Batch find, repair, or convert videos with encoding errors.
- Batch recode videos to modern codecs (e.g., x265, AV1) based on filters (e.g., container, codec, resolution).
Options
-------
list
====
Search and list videos filtered by the user-provided parameters.
convert
=======
Search and convert all videos filtered by the user-provided parameters.
-del:
=====
Deletes the original videos after successful completion of operations (e.g., conversion or listing). **Use with caution**.
See :doc:`warnings`
-in:
====
[**any**, avi, divx, flv, m4v, mkv, mp4, mpg, ogm, vid, webm, wmv]
Filters videos by file format (container extensions). The default is `any`, meaning all formats are included.
-filters:
=========
[fferror, old, lowres, hd, 720p, 1080p, uhd, mpeg, mpeg4, x264, wmv3, wmv]
Filters videos based on specific criteria:
- **fferror**: Select videos with encoding errors (see :doc:`errors`)
- **old**: Select videos using outdated codecs (anything except hevc or av1)
- **hd**: Select videos in HD (720p, 1080p, UHD)
- **lowres**: Select videos that are not in HD
- **uhd**: Select Ultra-HD videos (width or height >= 2160)
- **1080p**: Select Full-HD videos (1440 <= width < 2160 or 1080 <= height < 2160)
- **720p**: Select HD videos (1280 <= width < 1440 or 720 <= height < 1080)
- **sd**: Select standard-definition videos (480 <= height < 720)
- **subsd**: Select substandard-definition videos (height < 480)
- **mpeg, mpeg4, x264, wmv3, wmv, vob**: Filter by video codec
-out:
=====
[**mkv**/mp4, x265/av1]
Specifies the output format for video conversions:
- **mkv**: (**Default**) Package the output video in a `Matroska <https://en.wikipedia.org/wiki/Matroska>`_ container.
- **mp4**: Package the output video in an MP4 container.
- **x265** or **hevc**: (**Default**) Encode the video using `x265 <https://en.wikipedia.org/wiki/X265>`_ (HEVC).
- **av1**: Encode the video using `AOMedia Video 1 <https://en.wikipedia.org/wiki/AV1>`_ (AV1).
-print:
=======
[**list**, formated, verbose]
Specifies how the output should be displayed:
- **list**: (**Default**) Prints video info in a concise, single-line format.
.. image:: ../_static/Screenshot-print_list-single.png
:width: 600
:alt: List videos (single-line output)
- **formated**: Prints video info in a more readable format with line breaks.
.. image:: ../_static/Screenshot-print_formatted-single.png
:width: 400
:alt: List videos (formatted output)
- **verbose**: Prints the FFmpeg output during conversions.
-dirs:
======
["/mnt/media/",,"/mnt/media2/"]
Specifies directories to scan, separated by **double commas** (,,).
-files:
=======
["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"]
Specifies individual video files to process, separated by **double commas** (,,).
Examples
--------
.. code-block:: bash
# This command lists all videos in the specified directories that use old codecs and
# formats the output.
mediacurator list -filters:old -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
# This command converts all MPEG4 videos found in the specified directories to AV1 format
# in MP4 containers and deletes the originals.
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/",,"/mnt/media2/"
# This command converts AVI or MPG videos, displays detailed output during conversion, and
# deletes originals.
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:"/mnt/media/",,"/mnt/media2/"
For more examples, see :doc:`use_cases`
See Also
--------
- `FFmpeg <https://ffmpeg.org/>`_
Glossary
--------
- **Codec**: A program or device that compresses and decompresses digital media.
- **Container**: A file format that holds video, audio, and metadata.
- **UHD**: Ultra High Definition, refers to video resolutions of 3840x2160 pixels or higher.
Error Handling
--------------
Common issues users might encounter include:
- **Encoding Errors**: If videos have encoding errors, they can be filtered using the `-filters fferror` option.
- **Unsupported Formats**: Ensure that input formats specified in `-in` are supported by mediacurator.
Author
------
Fabrice Quenneville

View File

@ -0,0 +1,40 @@
==========
Quickstart
==========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. code-block:: bash
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**for multiple files or filenames use double comma separated values ",,"**
default options are:
.. code-block:: bash
-in:any
-filters:
-out:mkv,x265
-print:list
Examples:
.. code-block:: bash
# List all videos with old codec in formated format
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt
# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/"
# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
More examples in :doc:`use_cases`

View File

@ -0,0 +1,106 @@
=========
Use cases
=========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
The main reasons to use mediacurator would be the following:
* :ref:`legacy_list_cmd` on a video library such as:
- How many videos of the lot are in HD vs standard or substandard definitions
- What videos are in older codecs
- Are there videos in the library with encoding or corruption errors
* :ref:`legacy_purge` selected videos in a media library
* :ref:`legacy_fferror` on selected videos in a media library
* :ref:`legacy_convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _legacy_list_cmd:
Print information
-----------------
List all videos with old codec in formatted output
.. code-block:: bash
mediacurator list -filters:old -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
List all videos with substandard definitions with a formatted output
.. code-block:: bash
mediacurator list -filters:subsd -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_purge:
Purge
-----
Please see :doc:`warnings`
List and delete all videos using the `Windows Media Video <https://en.wikipedia.org/wiki/Windows_Media_Video>`_ codecs
.. code-block:: bash
mediacurator list --delete -filters:wmv -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete all videos using `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
mediacurator list --delete -in:avi -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete any videos with encoding errors
.. code-block:: bash
mediacurator list --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
mediacurator list -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete any videos with encoding errors
.. code-block:: bash
mediacurator list --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
Convert all videos with encoding errors to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ and delete the originals
.. code-block:: bash
mediacurator convert --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_convert:
Batch re-encode
---------------
Convert all videos with old codecs to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ to save space and delete the originals
.. code-block:: bash
mediacurator convert --delete -filters:old -dirs:"/mnt/media/",,"/mnt/media2/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
mediacurator convert -filters:mpeg4 -out:av1,mkv -dirs:"/mnt/media/",,"/mnt/media2/"
Convert any video with avi or mpg extensions, print formatted text including ffmpeg's output, and then delete the originals
.. code-block:: bash
mediacurator convert --delete -in:avi,mpg -print:formated,verbose -dirs:"/mnt/media/",,"/mnt/media2/"

View File

@ -0,0 +1,67 @@
========
Warnings
========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. warning::
Before using the **delete feature**, we strongly recommend running several dry runs to get acquainted with `mediacurator`, as incorrect usage can cause irreversible damage to your media library.
The `-del` flag will **permanently delete** files, so it is crucial to ensure that the command is executed correctly. Below are some examples of how the delete feature works.
Example use Cases for the `-del` Flag
-----------------------------------------
1. **Delete all non-HD (low-resolution) videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:lowres -dirs:"/mnt/media/"
2. **Delete all substandard quality videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:subsd -dirs:"/mnt/media/"
.. image:: ../_static/Legacy-Screenshot-delete.png
:width: 600
:alt: Deleting videos
3. **Delete all videos in a folder with encoding errors:**
.. code-block:: bash
mediacurator list -del -filters:fferror -dirs:"/mnt/media/"
4. **Convert (repair) and then delete all videos in a folder with encoding errors:**
.. code-block:: bash
mediacurator convert -del -filters:fferror -dirs:"/mnt/media/"
5. **Delete all videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:lowres -dirs:"/mnt/media/"
Important Notes
---------------
- **Irreversibility**: All of these commands involve permanent deletion. Once a file is deleted using the `-del` flag, it cannot be recovered.
- **Run without `-del` first**: Always perform several dry runs by omitting the `-del` flag to ensure that the correct files are selected for deletion. Familiarizing yourself with the tool before using destructive commands is essential to avoid unintended consequences.
- **Specific File Selection**: If you're unsure about applying filters to an entire directory, you can use the `-files` option to target individual files for deletion or conversion, further reducing the risk of unintended deletions.
- **Backup Recommendation**: Before running any commands with the `-del` flag, it is a good practice to back up your media library or the specific directories being processed, especially if they contain valuable or irreplaceable files.
Dry run example (without deletion)
----------------------------------
.. code-block:: bash
mediacurator list -filters:lowres -dirs:"/mnt/media/"
Make sure you carefully verify the output and files selected during the dry runs to prevent accidental data loss.

View File

@ -37,7 +37,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -10,14 +10,7 @@ Added support to mpeg filetype.
Dropped Support Dropped Support
=============== ===============
Future Changes Compatibility Notes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI
Compatibility notes
=================== ===================
Python Support Python Support
@ -33,13 +26,11 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============
Improvements Improvements
============ ============
@ -47,7 +38,12 @@ Improvements
Changes Changes
======= =======
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI
Deprecations Deprecations
============ ============

View File

@ -0,0 +1,53 @@
========================================
MediaCurator 0.0.11 Release Notes
========================================
Highlights
==========
Code improvements.
Dropped Support
===============
Compatibility Notes
====================
Python Support
--------------
MediaCurator has been tested on Python 3.7 - 3.9.7.
FFMPEG Support
--------------
MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.
OS Support
----------
MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.
New Features
============
Improvements
============
* Rectified a bug where MediaLibrary would encounter an error due to a missing directory.
* Enhanced clarity by refining comments.
* Improved code readability through cleanup and organization.
* Ensured consistency and enhanced readability by adjusting variable names.
Changes
=======
Deprecations
============
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI

View File

@ -0,0 +1,50 @@
========================================
MediaCurator 0.0.12 Release Notes
========================================
Highlights
==========
Code improvements.
Dropped Support
===============
Compatibility Notes
====================
Python Support
--------------
MediaCurator has been tested on Python 3.7 - 3.9.7.
FFMPEG Support
--------------
MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.
OS Support
----------
MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.
New Features
============
Improvements
============
* Rectified a bug where MediaLibrary would be unable to gather the videos to operate.
Changes
=======
Deprecations
============
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI

View File

@ -0,0 +1,50 @@
========================================
MediaCurator 0.0.13 Release Notes
========================================
Highlights
==========
Added a line break for readability.
Dropped Support
===============
Compatibility Notes
====================
Python Support
--------------
MediaCurator has been tested on Python 3.7 - 3.9.7.
FFMPEG Support
--------------
MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.
OS Support
----------
MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.
New Features
============
Improvements
============
Added a line break for readability.
Changes
=======
Deprecations
============
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI

View File

@ -37,7 +37,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -38,7 +38,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -41,7 +41,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -37,7 +37,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -33,7 +33,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -33,7 +33,7 @@ Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to
OS Support OS Support
---------- ----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows
New Features New Features
============ ============

View File

@ -0,0 +1,85 @@
========================================
mediacurator 1.0.1 Release Notes
========================================
Highlights
==========
This release introduces a major overhaul of the command-line interface (CLI) for `mediacurator`, improving usability, maintainability, and flexibility. The CLI now utilizes Python's `argparse` library for enhanced user interaction and support for a broader range of formats.
Dropped Support
===============
- The project has been **renamed** from 'MediaCurator' to 'mediacurator' to standardize naming conventions (all lowercase).
- The CLI API has undergone significant changes, resulting in a new command structure that is not compatible with the old format. The previous and new structures are as follows:
**Before:**
.. code-block:: bash
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**After:**
.. code-block:: bash
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"]
Compatibility Notes
====================
- This release includes breaking changes, necessitating the version bump from **0.0.13** to **1.0.1**.
Python Support
--------------
- `mediacurator` has been tested on Python 3.12.6.
FFMPEG Support
--------------
- `mediacurator` has been tested to work with FFMPEG version 7.0.2.
OS Support
----------
- `mediacurator` has been tested to work on various GNU/Linux distributions as well as Windows.
New Features
============
- **Major CLI Overhaul**: Refactored the command-line argument handling to use `argparse`, allowing structured command definitions, built-in help, validation, and error messages.
- **Expanded Format Support**:
- **Input Formats**: Added support for a broader range of input formats, including:
- From: `avi, divx, flv, m4v, mkv, mp4, mpg, ogm, vid, webm, wmv`
- To: `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`
- **CRF Settings**: Introduced CRF (Constant Rate Factor) settings for AV1 and x265 to provide better control over quality and file size.
- **Even Dimensions Handling**: Implemented handling for odd pixel dimensions by adding black pixel padding to ensure even width and height.
- **Improved Output**: Added line breaks in conversion output before each video to enhance readability.
Improvements
============
- **Standardized Metadata Handling**: Standardized audio, subtitle, and metadata copying processes.
- **Enhanced Documentation**: Revamped documentation for clarity and usability, ensuring all sections are consistent in formatting and structure.
- **Legacy Support**: Maintained legacy commands in the updated documentation for backward compatibility.
- **Code Quality**: Refactored redundant code sections and improved error handling for better user feedback.
Changes
=======
- Updated the README and documentation to reflect the new command-line interface and features.
- Removed outdated screenshots and images, and organized legacy images in the documentation.
Deprecations
============
- Deprecated legacy command options that are no longer compatible with the new CLI structure.
Future Changes
==============
- Plan to add more filters for enhanced media management.
- Testing for AV1 support to ensure compatibility with new video codecs.
- Preparing the API for potential GUI development.

View File

@ -1,37 +1,37 @@
====== ======
Errors Errors
====== ======
FFmpeg can detect quite a few errors in the encoding of your source video's encoding. It can also be used to repair errors. FFmpeg can detect quite a few errors in the encoding of your source video's encoding and can also be used to repair these errors.
Repairable encoding errors Repairable Encoding Errors
-------------------------- --------------------------
Here are some example errors that mediacurator will print and can possibly repair by re-encoding: Here are some example errors that mediacurator will print and can possibly repair by re-encoding:
* "Referenced QT chapter track not found" * **"Referenced QT chapter track not found"**: Indicates that the video references a chapter that doesn't exist.
* "Error, header damaged or not MPEG-4 header" * **"Error, header damaged or not MPEG-4 header"**: The file's header is corrupted or missing.
* "Header missing" * **"Header missing"**: The file lacks the necessary header information for decoding.
* "SEI type" * **"SEI type"**: Issues related to SEI (Supplemental Enhancement Information) data.
* "no frame!" * **"no frame!"**: No video frames available for processing.
* "Error while decoding MPEG audio frame." * **"Error while decoding MPEG audio frame."**: Issues decoding the audio stream.
* "big_values too big" * **"big_values too big"**: Indicates that certain values in the file are larger than expected.
* ... * ...
FFmpeg issues FFmpeg Issues
------------- -------------
While using FFmpeg depending on your version you may also face other errors like segfaults. MediaCurator will also print information when that occurs and move on to the next video after cleaning up after failure. While using FFmpeg, you may encounter other errors (such as segfaults) depending on your version. Mediacurator will also print information when that occurs and will move on to the next video after cleaning up any failures.
If that happens there are a few steps you can take: If you experience these errors, consider the following steps:
* **Update FFmpeg**: Ensure you are using the latest version by downloading it from `ffmpeg.org <https://ffmpeg.org/download.html>`_, as many distributions provide outdated versions in their repositories.
* **Run with Verbose Option**: Execute mediacurator with the verbose print option, which will display the raw FFmpeg output for better troubleshooting.
* **Retry**: In my experience, some errors do not necessarily recur...
* `Update FFmpeg <https://ffmpeg.org/download.html>`_ to its latest version as it is a very active project and most distributions serve old versions in their repositories Other Bugs
* Run MediaCurator with the verbose print option wich will print the raw FFmpeg output
* Try again: In my experience some errors don't necessarly recur...
Other bugs
---------- ----------
If you face other bugs, issues or want to suggest features feel free to open a bug report on `GitHub <https://github.com/fabquenneville/MediaCurator/issues>`_ If you encounter other bugs, issues, or would like to suggest features, feel free to open a bug report on `GitHub <https://github.com/fabquenneville/mediacurator/issues>`_.
For further assistance, you can reach out through the GitHub repository or the projects support channels.

View File

@ -2,17 +2,83 @@
Installation Installation
============ ============
This package has only been tested on GNU/Linux & Windows and requires FFMPEG installed. For now it will be distributed on `GitHub <https://github.com/fabquenneville/MediaCurator.git>`_ .. _install_toc:
Install FFmpeg Table of contents
-------------- -----------------
`Download FFmpeg <https://ffmpeg.org/download.html>`_ * :ref:`install_about`
* :ref:`install_apt`
* :ref:`install_pypi`
* :ref:`install_ffmpeg`
.. _install_about:
About mediacurator's installation
---------------------------------
This package has been tested on GNU/Linux (e.g., Debian, Ubuntu, Fedora) and Windows, and requires FFmpeg to be installed. For now, it will be distributed on `GitHub <https://github.com/fabquenneville/mediacurator.git>`_.
.. _install_apt:
Install from APT Repository
----------------------------
The `mediacurator` package is now available through an APT repository. To install it along with all its dependencies (including Python, required Python packages, and FFmpeg) on a Debian/Ubuntu compatible system, follow these steps:
1. Add the APT repository to your system by following the instructions at the `repository homepage <https://debrepo.fabq.ca/>`_.
2. Update your package list:
.. code-block:: bash
sudo apt update
3. Install `mediacurator`:
.. code-block:: bash
sudo apt install -y mediacurator
This will automatically install the `mediacurator` package and all its dependencies.
.. _install_pypi:
Install from PyPi Install from PyPi
----------------- -----------------
.. code-block:: bash You can install the `mediacurator` package directly from PyPi using the following command:
:linenos:
pip install MediaCurator .. code-block:: bash
pip install mediacurator
**Note:** If FFmpeg is not already installed, please refer to the instructions in the :ref:`install_ffmpeg` section.
.. _install_ffmpeg:
Install FFmpeg
--------------
To install FFmpeg, you can follow the instructions for your platform:
- **On Debian and Ubuntu**:
.. code-block:: bash
sudo apt update
sudo apt install ffmpeg
- **On Fedora**:
.. code-block:: bash
sudo dnf install ffmpeg
- **On Windows**:
- Download the latest build from `FFmpeg <https://ffmpeg.org/download.html>`_.
- Follow the installation instructions provided on the site.
To verify your FFmpeg installation, you can run:
.. code-block:: bash
ffmpeg -version

View File

@ -5,141 +5,190 @@ Manual
Name Name
---- ----
MediaCurator mediacurator
Synopsis Synopsis
-------- --------
.. code-block:: bash .. code-block:: bash
mediacurator [list,convert] [-del] mediacurator <command> [options]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv,vob]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
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"]
**for multiple files or filenames use double comma separated values ",,"** **Available commands:**
- `list`: List all videos with specified filters.
- `convert`: Convert videos to specified formats.
default options are: **Options:**
.. code-block:: bash - `-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.
-in:any **For multiple files or filenames, use space-separated values ( ).**
-filters:
-out:mkv,x265 **Default options (if not specified):**
-print:list
- `-i/--inputs`: `any`
- `-fl/--filters`: (none)
- `-o/--outputs`: `mkv`, `x265`
- `-p/--printop`: `list`
Description Description
----------- -----------
MediaCurator is a Python command line tool to manage a media database. **mediacurator** is a Python command-line tool designed to manage a media database. It allows you to:
* List all the video's and their information with or without filters - List all videos and their metadata, optionally filtered by specified criteria.
* Batch find and repair/convert videos with encoding errors - Batch find, repair, or convert videos with encoding errors.
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions ... - Batch recode videos to modern codecs (e.g., x265, AV1) based on filters (e.g., container, codec, resolution).
Options Options
------- -------
list list
==== ====
Search and list videos filtered by the parameters passed by the user. Search and list videos filtered by the user-provided parameters.
convert convert
======= =======
Search and convert all videos filtered by the parameters passed by the user. Search and convert all videos filtered by the user-provided parameters.
-del: --delete
===== ========
Delete all original videos once selected operations have been done succefully. Short form: `-del`
See :doc:`warnings` Deletes the original videos after successful completion of operations (e.g., conversion or listing). **Use with caution**.
-in: See :doc:`warnings`
====
[**any**,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm]
Search all videos of the selected container **extensions** in the directories. By default it will include any file format. --inputs
========
Short form: `-i`
-filters: [**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]
Filters videos by file format (container extensions). The default is `any`, meaning all formats are included.
--filters
========= =========
[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] Short form: `-fl`
Filter the selected videos for parameters: [fferror, old, lowres, hd, 720p, 1080p, uhd, mpeg, mpeg4, x264, wmv3, wmv]
* fferror: Select all videos with encoding errors (See :doc:`errors`) Filters videos based on specific criteria:
* old: Select all videos using old codecs (Everything except hevc or av1)
* hd: 720p, 1080p, uhd
* lowres: Everything not hd
* uhd: if width >= 2160 or height >= 2160
* 1080p: if less than uhd and width >= 1440 or height >= 1080
* 720p: if less than 1080p and width >= 1280 or height >= 720:
* sd: if less than 720p and if height >= 480
* subsd: Substandard definitions: Everything under 480p
* mpeg,mpeg4,x264,wmv3,wmv,vob: Filter for videos encoded in the requested video codec
-out: - **fferror**: Select videos with encoding errors (see :doc:`errors`)
===== - **old**: Select videos using outdated codecs (anything except hevc or av1)
[**mkv**/mp4,x265/av1] - **hd**: Select videos in HD (720p, 1080p, UHD)
- **lowres**: Select videos that are not in HD
- **uhd**: Select Ultra-HD videos (width or height >= 2160)
- **1080p**: Select Full-HD videos (1440 <= width < 2160 or 1080 <= height < 2160)
- **720p**: Select HD videos (1280 <= width < 1440 or 720 <= height < 1080)
- **sd**: Select standard-definition videos (480 <= height < 720)
- **subsd**: Select substandard-definition videos (height < 480)
- **mpeg, mpeg4, x264, wmv3, wmv, vob**: Filter by video codec
Select the outputs for the video conversions --outputs
=========
Short form: `-o`
* mkv: (**Default**) Package the resulting video in a `Matroska <https://en.wikipedia.org/wiki/Matroska>`_ container. [**mkv**/mp4, x265/av1]
* mp4: Package the resulting video in a container.
* x265/hevc: (**Default**) Encode the video using the `x265 <https://en.wikipedia.org/wiki/X265>`_ compression format.
* av1: Encode the video using the `AOMedia Video 1 <https://en.wikipedia.org/wiki/AV1>`_ compression format. This will be used as default once the developpers at FFmpeg move it out of `experimental <https://trac.ffmpeg.org/wiki/Encode/AV1>`_ .
-print: Specifies the output format for video conversions:
=======
[**list**,formated,verbose]
* list: (**Default**) Print the information about the videos on a single line - **mkv**: (**Default**) Package the output video in a `Matroska <https://en.wikipedia.org/wiki/Matroska>`_ container.
- **mp4**: Package the output video in an MP4 container.
- **x265** or **hevc**: (**Default**) Encode the video using `x265 <https://en.wikipedia.org/wiki/X265>`_ (HEVC).
- **av1**: Encode the video using `AOMedia Video 1 <https://en.wikipedia.org/wiki/AV1>`_ (AV1).
.. image:: ../_static/Screenshot-print_list-single.png --printop
:width: 600 =========
:alt: Deleting videos Short form: `-p`
* formated: Print the information in an aerated format [**list**, formatted, verbose]
.. image:: ../_static/Screenshot-print_formated-single.png Specifies how the output should be displayed:
:width: 400
:alt: Deleting videos
* verbose: Print the FFmpeg output during the video conversions - **list**: (**Default**) Prints video info in a concise, single-line format.
-dirs: .. image:: ../_static/Screenshot-print_list-single.png
:width: 600
:alt: List videos (single-line output)
- **formatted**: Prints video info in a more readable format with line breaks.
.. image:: ../_static/Screenshot-print_formatted-single.png
:width: 400
:alt: List videos (formatted output)
- **verbose**: Prints the FFmpeg output during conversions.
--dirs
====== ======
["/mnt/media/",,"/mnt/media2/"] Short form: `-d`
The directories to scan as a **double comma** separated values list. ["/mnt/media/", "/mnt/media2/"]
Specifies directories to scan, separated by spaces.
-files: --files
======= =======
["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"] Short form: `-f`
Specific videos to include as a **double comma** separated values list. ["/mnt/media/video.avi", "/mnt/media2/video2.mp4"]
Specifies individual video files to process, separated by spaces.
Examples Examples
-------- --------
.. code-block:: bash .. code-block:: bash
# List all videos with old codec in formated format # This command lists all videos in the specified directories that use old codecs and
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt # formats the output.
# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals mediacurator list --filters old --printop formatted --dirs "/mnt/media/" "/mnt/media2/"
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/"
# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals # This command converts all MPEG4 videos found in the specified directories to AV1 format
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ # in MP4 containers and deletes the originals.
mediacurator convert --delete --filters mpeg4 --outputs av1 mp4 --dirs "/mnt/media/" "/mnt/media2/"
# This command converts AVI or MPG videos, displays detailed output during conversion, and
# deletes originals.
mediacurator convert --delete --inputs avi mpg --printop formatted verbose --dirs "/mnt/media/" "/mnt/media2/"
More examples in :doc:`use_cases` For more examples, see :doc:`use_cases`
See Also See Also
-------- --------
`FFmpeg <https://ffmpeg.org/>`_ - `FFmpeg <https://ffmpeg.org/>`_
Glossary
--------
- **Codec**: A program or device that compresses and decompresses digital media.
- **Container**: A file format that holds video, audio, and metadata.
- **UHD**: Ultra High Definition, refers to video resolutions of 3840x2160 pixels or higher.
Error Handling
--------------
Common issues users might encounter include:
- **Encoding Errors**: If videos have encoding errors, they can be filtered using the `--filters fferror` option.
- **Unsupported Formats**: Ensure that input formats specified in `--inputs` are supported by mediacurator.
Author Author
------ ------

View File

@ -2,35 +2,56 @@
Quickstart Quickstart
========== ==========
.. code-block:: bash To use `mediacurator`, execute the following command structure:
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**for multiple files or filenames use double comma separated values ",,"**
default options are:
.. code-block:: bash .. code-block:: bash
-in:any mediacurator <command> [options]
-filters:
-out:mkv,x265
-print:list
Examples: 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.
- `-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:**
- `-i/--inputs any`
- `-fl/--filters`
- `-o/--outputs mkv x265`
- `-p/--printop list`
**Examples:**
The following examples demonstrate how to use `mediacurator` with the options listed above:
.. code-block:: bash .. code-block:: bash
# List all videos with old codec in formated format # List all videos with an old codec in formatted format
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt mediacurator list --filters old --printop formatted --dirs /mnt/media/ >> ../medlist.txt
# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/"
# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
More examples in :doc:`use_cases` # Convert all videos with the MPEG4 codec to MP4 using the AV1 codec and delete the originals
mediacurator convert --delete --filters mpeg4 --outputs av1,mp4 --dirs "/mnt/media/Movies/"
# Convert any video with AVI or MPG extensions, print formatted text including FFmpeg's output, and then delete the originals
mediacurator convert --delete --inputs avi,mpg --printop formatted,verbose --dirs /mnt/media/
For more examples, see :doc:`use_cases`.

View File

@ -2,7 +2,7 @@
Use cases Use cases
========= =========
The main reasons to use MediaCurator would be the following: The main reasons to use mediacurator would be the following:
* :ref:`list_cmd` on a video library such as: * :ref:`list_cmd` on a video library such as:
- How many videos of the lot are in HD vs standard or substandard definitions - How many videos of the lot are in HD vs standard or substandard definitions
@ -17,18 +17,17 @@ The main reasons to use MediaCurator would be the following:
Print information Print information
----------------- -----------------
List all videos with old codec in formated format List all videos with old codec in formatted output
.. code-block:: bash .. code-block:: bash
mediacurator list -filters:old -dirs:/mnt/media/ mediacurator list --filters old --printop formatted --dirs "/mnt/media/" "/mnt/media2/"
List all videos with substandard definitions with a formated output List all videos with substandard definitions with a formatted output
.. code-block:: bash .. code-block:: bash
mediacurator list -filters:subsd -print:formated -dirs:/mnt/media/ mediacurator list --filters subsd --printop formatted --dirs "/mnt/media/" "/mnt/media2/"
.. _purge: .. _purge:
@ -41,21 +40,19 @@ List and delete all videos using the `Windows Media Video <https://en.wikipedia.
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:wmv -dirs:/mnt/media/ mediacurator list --delete --filters wmv --dirs "/mnt/media/" "/mnt/media2/"
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_ List and delete all videos using `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash .. code-block:: bash
mediacurator list -del -in:avi -dirs:/mnt/media/ mediacurator list --delete --inputs avi --dirs "/mnt/media/" "/mnt/media2/"
List and delete any videos with encoding errors List and delete any videos with encoding errors
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:fferror -dirs:/mnt/media/ mediacurator list --delete --filters fferror --dirs "/mnt/media/" "/mnt/media2/"
.. _fferror: .. _fferror:
@ -66,20 +63,19 @@ List all videos with encoding errors
.. code-block:: bash .. code-block:: bash
mediacurator list -filters:fferror -dirs:/mnt/media/ mediacurator list --filters fferror --dirs "/mnt/media/" "/mnt/media2/"
List and delete any videos with encoding errors List and delete any videos with encoding errors
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:fferror -dirs:/mnt/media/ mediacurator list --delete --filters fferror --dirs "/mnt/media/" "/mnt/media2/"
Convert all videos with encoding errors to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ and the delete the originals Convert all videos with encoding errors to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ and delete the originals
.. code-block:: bash .. code-block:: bash
mediacurator convert -del -filters:fferror -dirs:"/mnt/media/Movies/" mediacurator convert --delete --filters fferror --dirs "/mnt/media/" "/mnt/media2/"
.. _convert: .. _convert:
@ -90,16 +86,16 @@ Convert all videos with old codecs to `High Efficiency Video Coding <https://en.
.. code-block:: bash .. code-block:: bash
mediacurator convert -del -filters:old -dirs:"/mnt/media/Movies/" mediacurator convert --delete --filters old --dirs "/mnt/media/" "/mnt/media2/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash .. code-block:: bash
mediacurator convert -filters:mpeg4 -out:av1,mkv -dirs:"/mnt/media/Movies/" mediacurator convert --filters mpeg4 --outputs av1,mkv --dirs "/mnt/media/" "/mnt/media2/"
Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals Convert any video with avi or mpg extensions, print formatted text including ffmpeg's output, and then delete the originals
.. code-block:: bash .. code-block:: bash
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert --delete --inputs avi,mpg --printop formatted,verbose --dirs "/mnt/media/" "/mnt/media2/"

View File

@ -2,44 +2,62 @@
Warnings Warnings
======== ========
Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as it can irreparably damage your media library when not used properly. .. warning::
When using the -del flag here is the expected behavior: Before using the **delete feature**, we strongly recommend running several dry runs to get acquainted with `mediacurator`, as incorrect usage can cause irreversible damage to your media library.
To delete all non-hd videos in a folder: The `--delete` flag will **permanently delete** files, so it is crucial to ensure that the command is executed correctly. Below are some examples of how the delete feature works.
Example use cases for the `--delete` Flag
-----------------------------------------
1. **Delete all non-HD (low-resolution) videos in a folder:**
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:lowres -dirs/-files:"/mnt/media/" mediacurator list --delete --filters lowres --dirs "/mnt/media/"
To delete all substandard videos in a folder: 2. **Delete all substandard quality videos in a folder:**
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:subsd -dirs/-files:"/mnt/media/" mediacurator list --delete --filters subsd --dirs "/mnt/media/"
.. image:: ../_static/Screenshot-delete.png .. image:: ../_static/Screenshot-delete.png
:width: 600 :width: 600
:alt: Deleting videos :alt: Deleting videos
To delete all videos in a folder with encoding errors: 3. **Delete all videos in a folder with encoding errors:**
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:fferror -dirs/-files:"/mnt/media/" mediacurator list --delete --filters fferror --dirs "/mnt/media/"
To convert (repair) then delete all videos in a folder with encoding errors: 4. **Convert (repair) and then delete all videos in a folder with encoding errors:**
.. code-block:: bash .. code-block:: bash
mediacurator convert -del -filters:fferror -dirs/-files:"/mnt/media/" mediacurator convert --delete --filters fferror --dirs "/mnt/media/"
To delete all videos in a folder: 5. **Delete all videos in a folder:**
.. code-block:: bash .. code-block:: bash
mediacurator list -del -filters:lowres -dirs/-files:"/mnt/media/" mediacurator list --delete --dirs "/mnt/media/"
All these commands can have valuable use but are irrecoverable if done unintended. Important Notes
---------------
Again, please try a few dry runs without -del until you are acquainted with MediaCurator. - **Irreversibility**: All of these commands involve permanent deletion. Once a file is deleted using the `--delete` flag, it cannot be recovered.
- **Run without `--delete` first**: Always perform several dry runs by omitting the `--delete` flag to ensure that the correct files are selected for deletion. Familiarizing yourself with the tool before using destructive commands is essential to avoid unintended consequences.
- **Specific File Selection**: If you're unsure about applying filters to an entire directory, you can use the `--files` option to target individual files for deletion or conversion, further reducing the risk of unintended deletions.
- **Backup Recommendation**: Before running any commands with the `--delete` flag, it is a good practice to back up your media library or the specific directories being processed, especially if they contain valuable or irreplaceable files.
Dry run example (without deletion)
----------------------------------
.. code-block:: bash
mediacurator list --filters lowres --dirs "/mnt/media/"
Make sure you carefully verify the output and files selected during the dry runs to prevent accidental data loss.

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

View File

@ -1,134 +0,0 @@
/*
* _sphinx_javascript_frameworks_compat.js
* ~~~~~~~~~~
*
* Compatability shim for jQuery and underscores.js.
*
* WILL BE REMOVED IN Sphinx 6.0
* xref RemovedInSphinx60Warning
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}

View File

@ -1,28 +1,11 @@
@import url("basic.css"); @import url("basic.css");
/* -- page layout ----------------------------------------------------------- */ /* -- page layout ----------------------------------------------------------- */
body { body {
font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; font-family: Georgia, serif;
font-size: 17px; font-size: 17px;
background-color: white; background-color: #fff;
color: #000; color: #000;
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -54,7 +37,7 @@ hr {
} }
div.body { div.body {
background-color: #ffffff; background-color: #fff;
color: #3E4349; color: #3E4349;
padding: 0 30px 0 30px; padding: 0 30px 0 30px;
} }
@ -76,7 +59,7 @@ div.footer a {
} }
p.caption { p.caption {
font-family: ; font-family: inherit;
font-size: inherit; font-size: inherit;
} }
@ -86,6 +69,11 @@ div.relations {
} }
div.sphinxsidebar {
max-height: 100%;
overflow-y: auto;
}
div.sphinxsidebar a { div.sphinxsidebar a {
color: #444; color: #444;
text-decoration: none; text-decoration: none;
@ -124,7 +112,7 @@ div.sphinxsidebarwrapper p.blurb {
div.sphinxsidebar h3, div.sphinxsidebar h3,
div.sphinxsidebar h4 { div.sphinxsidebar h4 {
font-family: 'Garamond', 'Georgia', serif; font-family: Georgia, serif;
color: #444; color: #444;
font-size: 24px; font-size: 24px;
font-weight: normal; font-weight: normal;
@ -168,10 +156,18 @@ div.sphinxsidebar ul li.toctree-l2 > a {
div.sphinxsidebar input { div.sphinxsidebar input {
border: 1px solid #CCC; border: 1px solid #CCC;
font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; font-family: Georgia, serif;
font-size: 1em; font-size: 1em;
} }
div.sphinxsidebar #searchbox input[type="text"] {
width: 160px;
}
div.sphinxsidebar .search > div {
display: table-cell;
}
div.sphinxsidebar hr { div.sphinxsidebar hr {
border: none; border: none;
height: 1px; height: 1px;
@ -183,6 +179,19 @@ div.sphinxsidebar hr {
width: 50%; width: 50%;
} }
div.sphinxsidebar .badge {
border-bottom: none;
}
div.sphinxsidebar .badge:hover {
border-bottom: none;
}
/* To address an issue with donation coming after search */
div.sphinxsidebar h3.donation {
margin-top: 10px;
}
/* -- body styles ----------------------------------------------------------- */ /* -- body styles ----------------------------------------------------------- */
a { a {
@ -201,7 +210,7 @@ div.body h3,
div.body h4, div.body h4,
div.body h5, div.body h5,
div.body h6 { div.body h6 {
font-family: 'Garamond', 'Georgia', serif; font-family: Georgia, serif;
font-weight: normal; font-weight: normal;
margin: 30px 0px 10px 0px; margin: 30px 0px 10px 0px;
padding: 0; padding: 0;
@ -232,21 +241,17 @@ div.body p, div.body dd, div.body li {
div.admonition { div.admonition {
margin: 20px 0px; margin: 20px 0px;
padding: 10px 30px; padding: 10px 30px;
background-color: #FCC; background-color: #EEE;
border: 1px solid #FAA; border: 1px solid #CCC;
} }
div.admonition tt.xref, div.admonition a tt { div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fafafa; border-bottom: 1px solid #fafafa;
} }
dd div.admonition {
margin-left: -60px;
padding-left: 60px;
}
div.admonition p.admonition-title { div.admonition p.admonition-title {
font-family: 'Garamond', 'Georgia', serif; font-family: Georgia, serif;
font-weight: normal; font-weight: normal;
font-size: 24px; font-size: 24px;
margin: 0 0 10px 0; margin: 0 0 10px 0;
@ -259,25 +264,71 @@ div.admonition p.last {
} }
div.highlight { div.highlight {
background-color: white; background-color: #fff;
} }
dt:target, .highlight { dt:target, .highlight {
background: #FAF3E8; background: #FAF3E8;
} }
div.warning {
background-color: #FCC;
border: 1px solid #FAA;
}
div.danger {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.error {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.caution {
background-color: #FCC;
border: 1px solid #FAA;
}
div.attention {
background-color: #FCC;
border: 1px solid #FAA;
}
div.important {
background-color: #EEE;
border: 1px solid #CCC;
}
div.note { div.note {
background-color: #EEE; background-color: #EEE;
border: 1px solid #CCC; border: 1px solid #CCC;
} }
div.tip {
background-color: #EEE;
border: 1px solid #CCC;
}
div.hint {
background-color: #EEE;
border: 1px solid #CCC;
}
div.seealso { div.seealso {
background-color: #EEE; background-color: #EEE;
border: 1px solid #CCC; border: 1px solid #CCC;
} }
div.topic { div.topic {
background-color: #eee; background-color: #EEE;
} }
p.admonition-title { p.admonition-title {
@ -289,7 +340,7 @@ p.admonition-title:after {
} }
pre, tt, code { pre, tt, code {
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.9em; font-size: 0.9em;
} }
@ -312,16 +363,16 @@ tt.descname, code.descname {
} }
img.screenshot { img.screenshot {
-moz-box-shadow: 2px 2px 4px #eee; -moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #eee; -webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #eee; box-shadow: 2px 2px 4px #EEE;
} }
table.docutils { table.docutils {
border: 1px solid #888; border: 1px solid #888;
-moz-box-shadow: 2px 2px 4px #eee; -moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #eee; -webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #eee; box-shadow: 2px 2px 4px #EEE;
} }
table.docutils td, table.docutils th { table.docutils td, table.docutils th {
@ -361,6 +412,16 @@ table.field-list p {
margin-bottom: 0.8em; margin-bottom: 0.8em;
} }
/* Cloned from
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
*/
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
table.footnote td.label { table.footnote td.label {
width: .1px; width: .1px;
padding: 0.3em 0 0.3em 0.5em; padding: 0.3em 0 0.3em 0.5em;
@ -371,7 +432,9 @@ table.footnote td {
} }
dl { dl {
margin: 0; margin-left: 0;
margin-right: 0;
margin-top: 0;
padding: 0; padding: 0;
} }
@ -397,16 +460,15 @@ pre {
line-height: 1.3em; line-height: 1.3em;
} }
div.viewcode-block:target {
background: #ffd;
}
dl pre, blockquote pre, li pre { dl pre, blockquote pre, li pre {
margin-left: 0; margin-left: 0;
padding-left: 30px; padding-left: 30px;
} }
dl dl pre {
margin-left: -90px;
padding-left: 90px;
}
tt, code { tt, code {
background-color: #ecf0f3; background-color: #ecf0f3;
color: #222; color: #222;
@ -415,7 +477,7 @@ tt, code {
tt.xref, code.xref, a tt { tt.xref, code.xref, a tt {
background-color: #FBFBFB; background-color: #FBFBFB;
border-bottom: 1px solid white; border-bottom: 1px solid #fff;
} }
a.reference { a.reference {
@ -517,7 +579,7 @@ a:hover tt, a:hover code {
div.documentwrapper { div.documentwrapper {
float: none; float: none;
background: white; background: #fff;
} }
div.sphinxsidebar { div.sphinxsidebar {
@ -532,7 +594,7 @@ a:hover tt, a:hover code {
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
div.sphinxsidebar h3 a { div.sphinxsidebar h3 a {
color: white; color: #fff;
} }
div.sphinxsidebar a { div.sphinxsidebar a {
@ -589,19 +651,58 @@ a:hover tt, a:hover code {
display: none!important; display: none!important;
} }
/* Make nested-list/multi-paragraph items look better in Releases changelog /* Hide ugly table cell borders in ..bibliography:: directive output */
* pages. Without this, docutils' magical list fuckery causes inconsistent
* formatting between different release sub-lists.
*/
div#changelog > div.section > ul > li > p:only-child {
margin-bottom: 0;
}
/* Hide fugly table cell borders in ..bibliography:: directive output */
table.docutils.citation, table.docutils.citation td, table.docutils.citation th { table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
border: none; border: none;
/* Below needed in some edge cases; if not applied, bottom shadows appear */ /* Below needed in some edge cases; if not applied, bottom shadows appear */
-moz-box-shadow: none; -moz-box-shadow: none;
-webkit-box-shadow: none; -webkit-box-shadow: none;
box-shadow: none; box-shadow: none;
}
/* relbar */
.related {
line-height: 30px;
width: 100%;
font-size: 0.9rem;
}
.related.top {
border-bottom: 1px solid #EEE;
margin-bottom: 20px;
}
.related.bottom {
border-top: 1px solid #EEE;
}
.related ul {
padding: 0;
margin: 0;
list-style: none;
}
.related li {
display: inline;
}
nav#rellinks {
float: right;
}
nav#rellinks li+li:before {
content: "|";
}
nav#breadcrumbs li+li:before {
content: "\00BB";
}
/* Hide certain items when printing */
@media print {
div.related {
display: none;
}
} }

View File

@ -4,7 +4,7 @@
* *
* Sphinx stylesheet -- basic theme. * Sphinx stylesheet -- basic theme.
* *
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
@ -222,7 +222,7 @@ table.modindextable td {
/* -- general body styles --------------------------------------------------- */ /* -- general body styles --------------------------------------------------- */
div.body { div.body {
min-width: 360px; min-width: inherit;
max-width: 800px; max-width: 800px;
} }
@ -237,6 +237,10 @@ a.headerlink {
visibility: hidden; visibility: hidden;
} }
a:visited {
color: #551A8B;
}
h1:hover > a.headerlink, h1:hover > a.headerlink,
h2:hover > a.headerlink, h2:hover > a.headerlink,
h3:hover > a.headerlink, h3:hover > a.headerlink,
@ -324,17 +328,17 @@ aside.sidebar {
p.sidebar-title { p.sidebar-title {
font-weight: bold; font-weight: bold;
} }
nav.contents, nav.contents,
aside.topic, aside.topic,
div.admonition, div.topic, blockquote { div.admonition, div.topic, blockquote {
clear: left; clear: left;
} }
/* -- topics ---------------------------------------------------------------- */ /* -- topics ---------------------------------------------------------------- */
nav.contents, nav.contents,
aside.topic, aside.topic,
div.topic { div.topic {
border: 1px solid #ccc; border: 1px solid #ccc;
padding: 7px; padding: 7px;
@ -375,7 +379,6 @@ div.sidebar > :last-child,
aside.sidebar > :last-child, aside.sidebar > :last-child,
nav.contents > :last-child, nav.contents > :last-child,
aside.topic > :last-child, aside.topic > :last-child,
div.topic > :last-child, div.topic > :last-child,
div.admonition > :last-child { div.admonition > :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -385,7 +388,6 @@ div.sidebar::after,
aside.sidebar::after, aside.sidebar::after,
nav.contents::after, nav.contents::after,
aside.topic::after, aside.topic::after,
div.topic::after, div.topic::after,
div.admonition::after, div.admonition::after,
blockquote::after { blockquote::after {
@ -611,25 +613,6 @@ ul.simple p {
margin-bottom: 0; margin-bottom: 0;
} }
/* Docutils 0.17 and older (footnotes & citations) */
dl.footnote > dt,
dl.citation > dt {
float: left;
margin-right: 0.5em;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
/* Docutils 0.18+ (footnotes & citations) */
aside.footnote > span, aside.footnote > span,
div.citation > span { div.citation > span {
float: left; float: left;
@ -654,8 +637,6 @@ div.citation > p:last-of-type:after {
clear: both; clear: both;
} }
/* Footnotes & citations ends */
dl.field-list { dl.field-list {
display: grid; display: grid;
grid-template-columns: fit-content(30%) auto; grid-template-columns: fit-content(30%) auto;
@ -668,10 +649,6 @@ dl.field-list > dt {
padding-right: 5px; padding-right: 5px;
} }
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd { dl.field-list > dd {
padding-left: 0.5em; padding-left: 0.5em;
margin-top: 0em; margin-top: 0em;
@ -697,6 +674,16 @@ dd {
margin-left: 30px; margin-left: 30px;
} }
.sig dd {
margin-top: 0px;
margin-bottom: 0px;
}
.sig dl {
margin-top: 0px;
margin-bottom: 0px;
}
dl > dd:last-child, dl > dd:last-child,
dl > dd:last-child > :last-child { dl > dd:last-child > :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -765,6 +752,14 @@ abbr, acronym {
cursor: help; cursor: help;
} }
.translated {
background-color: rgba(207, 255, 207, 0.2)
}
.untranslated {
background-color: rgba(255, 207, 207, 0.2)
}
/* -- code displays --------------------------------------------------------- */ /* -- code displays --------------------------------------------------------- */
pre { pre {

View File

@ -1 +1,57 @@
/* This file intentionally left blank. */ /* custom.css */
/* Add text wrap to code blocks */
/* pre {
white-space: pre-wrap;
} */
/* Add breakpoints for responsive design */
@media screen and (min-width: 1200px) {
/* Adjust layout for large screens */
div.document {
width: 90%; /* Adjust width for large screens */
margin: 30px auto; /* Center the document */
display: grid; /* Use grid layout */
grid-template-columns: 1fr 3fr; /* Sidebar takes 1/4, main content takes 3/4 of available space */
grid-template-areas: "sidebar main"; /* Define grid areas */
}
div.sphinxsidebar {
/* Add some content or set a min-width to ensure it occupies the grid area */
width: 100%; /* Example min-width */
grid-area: sidebar; /* Assign to sidebar grid area */
padding: 0 20px; /* Add padding to maintain spacing */
margin-top: 0;
margin-right: 20px;
margin-bottom: 0;
margin-left: 0; /* Adjust margins to fit within the layout */
}
div.bodywrapper {
/* Ensure it occupies the grid area */
width: 100%;
grid-area: main; /* Assign to main grid area */
padding: 0 20px; /* Add padding to maintain spacing */
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 20px; /* Adjust margins to fit within the layout */
}
}
@media screen and (max-width: 767px) {
/* Adjust layout for mobile phones */
body {
padding: 10px; /* Add padding to body for better spacing */
}
div.document {
width: 100%; /* Set width to full for mobile phones */
margin: 10px auto; /* Center the document */
display: block; /* Revert to block layout */
}
div.sphinxsidebar {
display: none; /* Hide sidebar on mobile phones */
}
}

View File

@ -4,12 +4,19 @@
* *
* Base JavaScript utilities for all Sphinx HTML documentation. * Base JavaScript utilities for all Sphinx HTML documentation.
* *
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
"use strict"; "use strict";
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
"TEXTAREA",
"INPUT",
"SELECT",
"BUTTON",
]);
const _ready = (callback) => { const _ready = (callback) => {
if (document.readyState !== "loading") { if (document.readyState !== "loading") {
callback(); callback();
@ -18,73 +25,11 @@ const _ready = (callback) => {
} }
}; };
/**
* highlight a given string on a node by wrapping it in
* span elements with the given class name.
*/
const _highlight = (node, addItems, text, className) => {
if (node.nodeType === Node.TEXT_NODE) {
const val = node.nodeValue;
const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text);
if (
pos >= 0 &&
!parent.classList.contains(className) &&
!parent.classList.contains("nohighlight")
) {
let span;
const closestNode = parent.closest("body, svg, foreignObject");
const isInSVG = closestNode && closestNode.matches("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.classList.add(className);
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
parent.insertBefore(
span,
parent.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling
)
);
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
const rect = document.createElementNS(
"http://www.w3.org/2000/svg",
"rect"
);
const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute("class", className);
addItems.push({ parent: parent, target: rect });
}
}
} else if (node.matches && !node.matches("button, select, textarea")) {
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
}
};
const _highlightText = (thisNode, text, className) => {
let addItems = [];
_highlight(thisNode, addItems, text, className);
addItems.forEach((obj) =>
obj.parent.insertAdjacentElement("beforebegin", obj.target)
);
};
/** /**
* Small JavaScript module for the documentation. * Small JavaScript module for the documentation.
*/ */
const Documentation = { const Documentation = {
init: () => { init: () => {
Documentation.highlightSearchWords();
Documentation.initDomainIndexTable(); Documentation.initDomainIndexTable();
Documentation.initOnKeyListeners(); Documentation.initOnKeyListeners();
}, },
@ -126,51 +71,6 @@ const Documentation = {
Documentation.LOCALE = catalog.locale; Documentation.LOCALE = catalog.locale;
}, },
/**
* highlight the search words provided in the url in the text
*/
highlightSearchWords: () => {
const highlight =
new URLSearchParams(window.location.search).get("highlight") || "";
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body"
const divBody = document.querySelectorAll("div.body");
const body = divBody.length ? divBody[0] : document.querySelector("body");
window.setTimeout(() => {
terms.forEach((term) => _highlightText(body, term, "highlighted"));
}, 10);
const searchBox = document.getElementById("searchbox");
if (searchBox === null) return;
searchBox.appendChild(
document
.createRange()
.createContextualFragment(
'<p class="highlight-link">' +
'<a href="javascript:Documentation.hideSearchWords()">' +
Documentation.gettext("Hide Search Matches") +
"</a></p>"
)
);
},
/**
* helper function to hide the search marks again
*/
hideSearchWords: () => {
document
.querySelectorAll("#searchbox .highlight-link")
.forEach((el) => el.remove());
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
const url = new URL(window.location);
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
},
/** /**
* helper function to focus on search bar * helper function to focus on search bar
*/ */
@ -210,15 +110,11 @@ const Documentation = {
) )
return; return;
const blacklistedElements = new Set([
"TEXTAREA",
"INPUT",
"SELECT",
"BUTTON",
]);
document.addEventListener("keydown", (event) => { document.addEventListener("keydown", (event) => {
if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements // bail for input elements
if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
// bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return;
if (!event.shiftKey) { if (!event.shiftKey) {
switch (event.key) { switch (event.key) {
@ -240,10 +136,6 @@ const Documentation = {
event.preventDefault(); event.preventDefault();
} }
break; break;
case "Escape":
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
Documentation.hideSearchWords();
event.preventDefault();
} }
} }

View File

@ -1,5 +1,4 @@
var DOCUMENTATION_OPTIONS = { const DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '', VERSION: '',
LANGUAGE: 'en', LANGUAGE: 'en',
COLLAPSE_INDEX: false, COLLAPSE_INDEX: false,
@ -10,5 +9,5 @@ var DOCUMENTATION_OPTIONS = {
SOURCELINK_SUFFIX: '.txt', SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false, NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true, SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: false, ENABLE_SEARCH_SHORTCUTS: true,
}; };

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@
* This script contains the language-specific data used by searchtools.js, * This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter. * namely the list of stopwords, stemmer, scorer and splitter.
* *
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
@ -13,7 +13,7 @@
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
/* Non-minified version is copied as a separate JS file, is available */ /* Non-minified version is copied as a separate JS file, if available */
/** /**
* Porter Stemmer * Porter Stemmer

View File

@ -22,6 +22,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */
.highlight .gd { color: #a40000 } /* Generic.Deleted */ .highlight .gd { color: #a40000 } /* Generic.Deleted */
.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
.highlight .ges { color: #000000 } /* Generic.EmphStrong */
.highlight .gr { color: #ef2929 } /* Generic.Error */ .highlight .gr { color: #ef2929 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .gi { color: #00A000 } /* Generic.Inserted */
@ -55,7 +56,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.highlight .nv { color: #000000 } /* Name.Variable */ .highlight .nv { color: #000000 } /* Name.Variable */
.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ .highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */
.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ .highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */
.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ .highlight .w { color: #f8f8f8 } /* Text.Whitespace */
.highlight .mb { color: #990000 } /* Literal.Number.Bin */ .highlight .mb { color: #990000 } /* Literal.Number.Bin */
.highlight .mf { color: #990000 } /* Literal.Number.Float */ .highlight .mf { color: #990000 } /* Literal.Number.Float */
.highlight .mh { color: #990000 } /* Literal.Number.Hex */ .highlight .mh { color: #990000 } /* Literal.Number.Hex */

View File

@ -4,7 +4,7 @@
* *
* Sphinx JavaScript utilities for the full-text search. * Sphinx JavaScript utilities for the full-text search.
* *
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
@ -57,14 +57,14 @@ const _removeChildren = (element) => {
const _escapeRegExp = (string) => const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
const _displayItem = (item, highlightTerms, searchTerms) => { const _displayItem = (item, searchTerms, highlightTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
const contentRoot = document.documentElement.dataset.content_root;
const [docName, title, anchor, descr] = item; const [docName, title, anchor, descr, score, _filename] = item;
let listItem = document.createElement("li"); let listItem = document.createElement("li");
let requestUrl; let requestUrl;
@ -75,29 +75,35 @@ const _displayItem = (item, highlightTerms, searchTerms) => {
if (dirname.match(/\/index\/$/)) if (dirname.match(/\/index\/$/))
dirname = dirname.substring(0, dirname.length - 6); dirname = dirname.substring(0, dirname.length - 6);
else if (dirname === "index/") dirname = ""; else if (dirname === "index/") dirname = "";
requestUrl = docUrlRoot + dirname; requestUrl = contentRoot + dirname;
linkUrl = requestUrl; linkUrl = requestUrl;
} else { } else {
// normal html builders // normal html builders
requestUrl = docUrlRoot + docName + docFileSuffix; requestUrl = contentRoot + docName + docFileSuffix;
linkUrl = docName + docLinkSuffix; linkUrl = docName + docLinkSuffix;
} }
const params = new URLSearchParams();
params.set("highlight", [...highlightTerms].join(" "));
let linkEl = listItem.appendChild(document.createElement("a")); let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + "?" + params.toString() + anchor; linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score;
linkEl.innerHTML = title; linkEl.innerHTML = title;
if (descr) if (descr) {
listItem.appendChild(document.createElement("span")).innerText = listItem.appendChild(document.createElement("span")).innerHTML =
" (" + descr + ")"; " (" + descr + ")";
// highlight search terms in the description
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
}
else if (showSearchSummary) else if (showSearchSummary)
fetch(requestUrl) fetch(requestUrl)
.then((responseData) => responseData.text()) .then((responseData) => responseData.text())
.then((data) => { .then((data) => {
if (data) if (data)
listItem.appendChild( listItem.appendChild(
Search.makeSearchSummary(data, searchTerms, highlightTerms) Search.makeSearchSummary(data, searchTerms, anchor)
); );
// highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
}); });
Search.output.appendChild(listItem); Search.output.appendChild(listItem);
}; };
@ -110,27 +116,43 @@ const _finishSearch = (resultCount) => {
); );
else else
Search.status.innerText = _( Search.status.innerText = _(
`Search finished, found ${resultCount} page(s) matching the search query.` "Search finished, found ${resultCount} page(s) matching the search query."
); ).replace('${resultCount}', resultCount);
}; };
const _displayNextItem = ( const _displayNextItem = (
results, results,
resultCount, resultCount,
searchTerms,
highlightTerms, highlightTerms,
searchTerms
) => { ) => {
// results left, load the summary and display it // results left, load the summary and display it
// this is intended to be dynamic (don't sub resultsCount) // this is intended to be dynamic (don't sub resultsCount)
if (results.length) { if (results.length) {
_displayItem(results.pop(), highlightTerms, searchTerms); _displayItem(results.pop(), searchTerms, highlightTerms);
setTimeout( setTimeout(
() => _displayNextItem(results, resultCount, highlightTerms, searchTerms), () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
5 5
); );
} }
// search finished, update title and status message // search finished, update title and status message
else _finishSearch(resultCount); else _finishSearch(resultCount);
}; };
// Helper function used by query() to order search results.
// Each input is an array of [docname, title, anchor, descr, score, filename].
// Order the results by score (in opposite order of appearance, since the
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
const _orderResultsByScoreThenName = (a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
};
/** /**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
@ -154,15 +176,26 @@ const Search = {
_queued_query: null, _queued_query: null,
_pulse_status: -1, _pulse_status: -1,
htmlToText: (htmlString) => { htmlToText: (htmlString, anchor) => {
const htmlElement = document const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
.createRange() for (const removalQuery of [".headerlink", "script", "style"]) {
.createContextualFragment(htmlString); htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
_removeChildren(htmlElement.querySelectorAll(".headerlink")); }
if (anchor) {
const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
if (anchorContent) return anchorContent.textContent;
console.warn(
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
);
}
// if anchor not specified or not found, fall back to main content
const docContent = htmlElement.querySelector('[role="main"]'); const docContent = htmlElement.querySelector('[role="main"]');
if (docContent !== undefined) return docContent.textContent; if (docContent) return docContent.textContent;
console.warn( console.warn(
"Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
); );
return ""; return "";
}, },
@ -235,10 +268,7 @@ const Search = {
else Search.deferQuery(query); else Search.deferQuery(query);
}, },
/** _parseQuery: (query) => {
* execute search (requires search index to be loaded)
*/
query: (query) => {
// stem the search terms and add them to the correct list // stem the search terms and add them to the correct list
const stemmer = new Stemmer(); const stemmer = new Stemmer();
const searchTerms = new Set(); const searchTerms = new Set();
@ -266,40 +296,96 @@ const Search = {
} }
}); });
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
}
// console.debug("SEARCH: searching for:"); // console.debug("SEARCH: searching for:");
// console.info("required: ", [...searchTerms]); // console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]); // console.info("excluded: ", [...excludedTerms]);
// array of [docname, title, anchor, descr, score, filename] return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
let results = []; },
/**
* execute search (requires search index to be loaded)
*/
_performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
// Collect multiple result groups to be sorted separately and then ordered.
// Each is an array of [docname, title, anchor, descr, score, filename].
const normalResults = [];
const nonMainIndexResults = [];
_removeChildren(document.getElementById("search-progress")); _removeChildren(document.getElementById("search-progress"));
const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
for (const [file, id] of foundTitles) {
const score = Math.round(Scorer.title * queryLower.length / title.length);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
null,
score + boost,
filenames[file],
]);
}
}
}
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
for (const [file, id, isMain] of foundEntries) {
const score = Math.round(100 * queryLower.length / entry.length);
const result = [
docNames[file],
titles[file],
id ? "#" + id : "",
null,
score,
filenames[file],
];
if (isMain) {
normalResults.push(result);
} else {
nonMainIndexResults.push(result);
}
}
}
}
// lookup as object // lookup as object
objectTerms.forEach((term) => objectTerms.forEach((term) =>
results.push(...Search.performObjectSearch(term, objectTerms)) normalResults.push(...Search.performObjectSearch(term, objectTerms))
); );
// lookup as search terms in fulltext // lookup as search terms in fulltext
results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
// let the scorer override scores with a custom scoring function // let the scorer override scores with a custom scoring function
if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); if (Scorer.score) {
normalResults.forEach((item) => (item[4] = Scorer.score(item)));
nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
}
// now sort the results by score (in opposite order of appearance, since the // Sort each group of results by score and then alphabetically by name.
// display function below uses pop() to retrieve items) and then normalResults.sort(_orderResultsByScoreThenName);
// alphabetically nonMainIndexResults.sort(_orderResultsByScoreThenName);
results.sort((a, b) => {
const leftScore = a[4]; // Combine the result groups in (reverse) order.
const rightScore = b[4]; // Non-main index entries are typically arbitrary cross-references,
if (leftScore === rightScore) { // so display them after other results.
// same score: sort alphabetically let results = [...nonMainIndexResults, ...normalResults];
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
});
// remove duplicate search results // remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
@ -313,14 +399,19 @@ const Search = {
return acc; return acc;
}, []); }, []);
results = results.reverse(); return results.reverse();
},
query: (query) => {
const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
// for debugging // for debugging
//Search.lastresults = results.slice(); // a copy //Search.lastresults = results.slice(); // a copy
// console.info("search results:", Search.lastresults); // console.info("search results:", Search.lastresults);
// print the results // print the results
_displayNextItem(results, results.length, highlightTerms, searchTerms); _displayNextItem(results, results.length, searchTerms, highlightTerms);
}, },
/** /**
@ -401,8 +492,8 @@ const Search = {
// prepare search // prepare search
const terms = Search._index.terms; const terms = Search._index.terms;
const titleTerms = Search._index.titleterms; const titleTerms = Search._index.titleterms;
const docNames = Search._index.docnames;
const filenames = Search._index.filenames; const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles; const titles = Search._index.titles;
const scoreMap = new Map(); const scoreMap = new Map();
@ -418,14 +509,18 @@ const Search = {
// add support for partial matches // add support for partial matches
if (word.length > 2) { if (word.length > 2) {
const escapedWord = _escapeRegExp(word); const escapedWord = _escapeRegExp(word);
Object.keys(terms).forEach((term) => { if (!terms.hasOwnProperty(word)) {
if (term.match(escapedWord) && !terms[word]) Object.keys(terms).forEach((term) => {
arr.push({ files: terms[term], score: Scorer.partialTerm }); if (term.match(escapedWord))
}); arr.push({ files: terms[term], score: Scorer.partialTerm });
Object.keys(titleTerms).forEach((term) => { });
if (term.match(escapedWord) && !titleTerms[word]) }
arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); if (!titleTerms.hasOwnProperty(word)) {
}); Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
});
}
} }
// no match but word was a required one // no match but word was a required one
@ -448,9 +543,8 @@ const Search = {
// create the mapping // create the mapping
files.forEach((file) => { files.forEach((file) => {
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) if (!fileMap.has(file)) fileMap.set(file, [word]);
fileMap.get(file).push(word); else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
else fileMap.set(file, [word]);
}); });
}); });
@ -499,16 +593,15 @@ const Search = {
/** /**
* helper function to return a node containing the * helper function to return a node containing the
* search summary for a given text. keywords is a list * search summary for a given text. keywords is a list
* of stemmed words, highlightWords is the list of normal, unstemmed * of stemmed words.
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/ */
makeSearchSummary: (htmlText, keywords, highlightWords) => { makeSearchSummary: (htmlText, keywords, anchor) => {
const text = Search.htmlToText(htmlText).toLowerCase(); const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null; if (text === "") return null;
const textLower = text.toLowerCase();
const actualStartPosition = [...keywords] const actualStartPosition = [...keywords]
.map((k) => text.indexOf(k.toLowerCase())) .map((k) => textLower.indexOf(k.toLowerCase()))
.filter((i) => i > -1) .filter((i) => i > -1)
.slice(-1)[0]; .slice(-1)[0];
const startWithContext = Math.max(actualStartPosition - 120, 0); const startWithContext = Math.max(actualStartPosition - 120, 0);
@ -516,13 +609,9 @@ const Search = {
const top = startWithContext === 0 ? "" : "..."; const top = startWithContext === 0 ? "" : "...";
const tail = startWithContext + 240 < text.length ? "..." : ""; const tail = startWithContext + 240 < text.length ? "..." : "";
let summary = document.createElement("div"); let summary = document.createElement("p");
summary.classList.add("context"); summary.classList.add("context");
summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
highlightWords.forEach((highlightWord) =>
_highlightText(summary, highlightWord, "highlighted")
);
return summary; return summary;
}, },

154
docs/_static/sphinx_highlight.js vendored Normal file
View File

@ -0,0 +1,154 @@
/* Highlighting utilities for Sphinx HTML documentation. */
"use strict";
const SPHINX_HIGHLIGHT_ENABLED = true
/**
* highlight a given string on a node by wrapping it in
* span elements with the given class name.
*/
const _highlight = (node, addItems, text, className) => {
if (node.nodeType === Node.TEXT_NODE) {
const val = node.nodeValue;
const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text);
if (
pos >= 0 &&
!parent.classList.contains(className) &&
!parent.classList.contains("nohighlight")
) {
let span;
const closestNode = parent.closest("body, svg, foreignObject");
const isInSVG = closestNode && closestNode.matches("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.classList.add(className);
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
const rest = document.createTextNode(val.substr(pos + text.length));
parent.insertBefore(
span,
parent.insertBefore(
rest,
node.nextSibling
)
);
node.nodeValue = val.substr(0, pos);
/* There may be more occurrences of search term in this node. So call this
* function recursively on the remaining fragment.
*/
_highlight(rest, addItems, text, className);
if (isInSVG) {
const rect = document.createElementNS(
"http://www.w3.org/2000/svg",
"rect"
);
const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute("class", className);
addItems.push({ parent: parent, target: rect });
}
}
} else if (node.matches && !node.matches("button, select, textarea")) {
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
}
};
const _highlightText = (thisNode, text, className) => {
let addItems = [];
_highlight(thisNode, addItems, text, className);
addItems.forEach((obj) =>
obj.parent.insertAdjacentElement("beforebegin", obj.target)
);
};
/**
* Small JavaScript module for the documentation.
*/
const SphinxHighlight = {
/**
* highlight the search words provided in localstorage in the text
*/
highlightSearchWords: () => {
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
// get and clear terms from localstorage
const url = new URL(window.location);
const highlight =
localStorage.getItem("sphinx_highlight_terms")
|| url.searchParams.get("highlight")
|| "";
localStorage.removeItem("sphinx_highlight_terms")
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
// get individual terms from highlight string
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body"
const divBody = document.querySelectorAll("div.body");
const body = divBody.length ? divBody[0] : document.querySelector("body");
window.setTimeout(() => {
terms.forEach((term) => _highlightText(body, term, "highlighted"));
}, 10);
const searchBox = document.getElementById("searchbox");
if (searchBox === null) return;
searchBox.appendChild(
document
.createRange()
.createContextualFragment(
'<p class="highlight-link">' +
'<a href="javascript:SphinxHighlight.hideSearchWords()">' +
_("Hide Search Matches") +
"</a></p>"
)
);
},
/**
* helper function to hide the search marks again
*/
hideSearchWords: () => {
document
.querySelectorAll("#searchbox .highlight-link")
.forEach((el) => el.remove());
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
localStorage.removeItem("sphinx_highlight_terms")
},
initEscapeListener: () => {
// only install a listener if it is really needed
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
// bail with special keys
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
SphinxHighlight.hideSearchWords();
event.preventDefault();
}
});
},
};
_ready(() => {
/* Do not call highlightSearchWords() when we are on the search page.
* It will highlight words from the *previous* search query.
*/
if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
SphinxHighlight.initEscapeListener();
});

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,25 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="./">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &#8212; MediaCurator documentation</title> <title>Index &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=12dfc556" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="_static/custom.css?v=d9b65b63" />
<script src="_static/jquery.js"></script> <script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/underscore.js"></script> <script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/doctools.js"></script> <link rel="icon" href="_static/favicon.ico"/>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="#" /> <link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -27,6 +27,8 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
@ -38,14 +40,15 @@
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html"> <p class="logo"><a href="index.html">
<img class="logo" src="_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="index.html">MediaCurator</a></h1> <h1 class="logo"><a href="index.html">mediacurator</a></h1>
@ -66,6 +69,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -83,7 +102,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="search.html" method="get"> <form class="search" action="search.html" method="get">
@ -91,18 +110,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
</div> </div>

View File

@ -1,27 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="./">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Welcome to MediaCurators documentation! &#8212; MediaCurator documentation</title> <title>Welcome to mediacurators documentation! &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=12dfc556" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="_static/custom.css?v=d9b65b63" />
<script src="_static/jquery.js"></script> <script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/underscore.js"></script> <script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/doctools.js"></script> <link rel="icon" href="_static/favicon.ico"/>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Warnings" href="usage/warnings.html" /> <link rel="next" title="Warnings" href="usage/warnings.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -29,24 +29,42 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="welcome-to-mediacurator-s-documentation"> <section id="welcome-to-mediacurator-s-documentation">
<h1>Welcome to MediaCurators documentation!<a class="headerlink" href="#welcome-to-mediacurator-s-documentation" title="Permalink to this heading"></a></h1> <h1>Welcome to mediacurators documentation!<a class="headerlink" href="#welcome-to-mediacurator-s-documentation" title="Link to this heading"></a></h1>
<p>MediaCurator is a Python command line tool to manage a media database.</p> <p>mediacurator is a Python command line tool to manage a media database.</p>
<ul class="simple"> <ul class="simple">
<li><p>List all the videos and their information with or without filters</p></li> <li><p>List all the videos and their information with or without filters</p></li>
<li><p>Batch find and repair/convert videos with encoding errors</p></li> <li><p>Batch find and repair/convert videos with encoding errors</p></li>
<li><p>Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …</p></li> <li><p>Batch recode videos to more modern codecs (x265 / AV1) based on filters: extensions, codecs, resolutions …</p></li>
</ul> </ul>
<p>The source code can be found on <a class="reference external" href="https://github.com/fabquenneville/MediaCurator">GitHub</a></p> <p>The source code can be found on <a class="reference external" href="https://github.com/fabquenneville/mediacurator">GitHub</a></p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p><strong>Breaking changes in version 1.0.1:</strong></p>
<p>Starting with version 1.0.1, the command-line interface (CLI) has undergone major changes, and the usage is <strong>not backwards-compatible</strong> with previous versions.</p>
<p>If you are using <cite>mediacurator &lt; 1.0.1</cite>, please refer to the legacy documentation available below (<a class="reference internal" href="#legacy-docs"><span class="std std-ref">Legacy Documentation (Pre 1.0)</span></a>).</p>
</div>
<section id="documentation">
<h2>Documentation<a class="headerlink" href="#documentation" title="Link to this heading"></a></h2>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p> <p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="usage/warnings.html">Warnings</a></li> <li class="toctree-l1"><a class="reference internal" href="usage/warnings.html">Warnings</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/warnings.html#example-use-cases-for-the-delete-flag">Example use cases for the <cite>delete</cite> Flag</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/warnings.html#important-notes">Important Notes</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/warnings.html#dry-run-example-without-deletion">Dry run example (without deletion)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="usage/installation.html">Installation</a><ul> <li class="toctree-l1"><a class="reference internal" href="usage/installation.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/installation.html#install-ffmpeg">Install FFmpeg</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/installation.html#table-of-contents">Table of contents</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/installation.html#about-mediacurator-s-installation">About mediacurators installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/installation.html#install-from-apt-repository">Install from APT Repository</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/installation.html#install-from-pypi">Install from PyPi</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/installation.html#install-from-pypi">Install from PyPi</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/installation.html#install-ffmpeg">Install FFmpeg</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="usage/quickstart.html">Quickstart</a></li> <li class="toctree-l1"><a class="reference internal" href="usage/quickstart.html">Quickstart</a></li>
@ -57,6 +75,8 @@
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#options">Options</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/manual.html#options">Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#examples">Examples</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/manual.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#see-also">See Also</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/manual.html#see-also">See Also</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#glossary">Glossary</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#error-handling">Error Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#author">Author</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/manual.html#author">Author</a></li>
</ul> </ul>
</li> </li>
@ -68,9 +88,9 @@
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="usage/errors.html">Errors</a><ul> <li class="toctree-l1"><a class="reference internal" href="usage/errors.html">Errors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/errors.html#repairable-encoding-errors">Repairable encoding errors</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/errors.html#repairable-encoding-errors">Repairable Encoding Errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/errors.html#ffmpeg-issues">FFmpeg issues</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/errors.html#ffmpeg-issues">FFmpeg Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/errors.html#other-bugs">Other bugs</a></li> <li class="toctree-l2"><a class="reference internal" href="usage/errors.html#other-bugs">Other Bugs</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -78,6 +98,34 @@
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
</div>
<hr class="docutils" />
</section>
<section id="legacy-documentation-pre-1-0">
<span id="legacy-docs"></span><h2>Legacy Documentation (Pre 1.0)<a class="headerlink" href="#legacy-documentation-pre-1-0" title="Link to this heading"></a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/errors.html">Errors</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -88,18 +136,20 @@
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul> </ul>
</div> </div>
</section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="#"> <p class="logo"><a href="#">
<img class="logo" src="_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="#">MediaCurator</a></h1> <h1 class="logo"><a href="#">mediacurator</a></h1>
@ -120,6 +170,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -138,7 +204,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="search.html" method="get"> <form class="search" action="search.html" method="get">
@ -146,18 +212,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="_sources/index.rst.txt" <a href="_sources/index.rst.txt"

View File

@ -0,0 +1,179 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Errors &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.13 Release Notes" href="../releasenotes/0.0.13-changelog.html" />
<link rel="prev" title="Use cases" href="use_cases.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="errors">
<h1>Errors<a class="headerlink" href="#errors" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<p>FFmpeg can detect quite a few errors in the encoding of your source videos encoding and can also be used to repair these errors.</p>
<section id="repairable-encoding-errors">
<h2>Repairable Encoding Errors<a class="headerlink" href="#repairable-encoding-errors" title="Link to this heading"></a></h2>
<p>Here are some example errors that mediacurator will print and can possibly repair by re-encoding:</p>
<ul class="simple">
<li><p><strong>“Referenced QT chapter track not found”</strong>: Indicates that the video references a chapter that doesnt exist.</p></li>
<li><p><strong>“Error, header damaged or not MPEG-4 header”</strong>: The files header is corrupted or missing.</p></li>
<li><p><strong>“Header missing”</strong>: The file lacks the necessary header information for decoding.</p></li>
<li><p><strong>“SEI type”</strong>: Issues related to SEI (Supplemental Enhancement Information) data.</p></li>
<li><p><strong>“no frame!”</strong>: No video frames available for processing.</p></li>
<li><p><strong>“Error while decoding MPEG audio frame.”</strong>: Issues decoding the audio stream.</p></li>
<li><p><strong>“big_values too big”</strong>: Indicates that certain values in the file are larger than expected.</p></li>
<li><p></p></li>
</ul>
</section>
<section id="ffmpeg-issues">
<h2>FFmpeg Issues<a class="headerlink" href="#ffmpeg-issues" title="Link to this heading"></a></h2>
<p>While using FFmpeg, you may encounter other errors (such as segfaults) depending on your version. Mediacurator will also print information when that occurs and will move on to the next video after cleaning up any failures.</p>
<p>If you experience these errors, consider the following steps:</p>
<ul class="simple">
<li><p><strong>Update FFmpeg</strong>: Ensure you are using the latest version by downloading it from <a class="reference external" href="https://ffmpeg.org/download.html">ffmpeg.org</a>, as many distributions provide outdated versions in their repositories.</p></li>
<li><p><strong>Run with Verbose Option</strong>: Execute mediacurator with the verbose print option, which will display the raw FFmpeg output for better troubleshooting.</p></li>
<li><p><strong>Retry</strong>: In my experience, some errors do not necessarily recur…</p></li>
</ul>
</section>
<section id="other-bugs">
<h2>Other Bugs<a class="headerlink" href="#other-bugs" title="Link to this heading"></a></h2>
<p>If you encounter other bugs, issues, or would like to suggest features, feel free to open a bug report on <a class="reference external" href="https://github.com/fabquenneville/mediacurator/issues">GitHub</a>.</p>
<p>For further assistance, you can reach out through the GitHub repository or the projects support channels.</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="use_cases.html" title="previous chapter">Use cases</a></li>
<li>Next: <a href="../releasenotes/0.0.13-changelog.html" title="next chapter">MediaCurator 0.0.13 Release Notes</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/errors.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,185 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Installation &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Quickstart" href="quickstart.html" />
<link rel="prev" title="Warnings" href="warnings.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<p>This package has been tested on GNU/Linux (e.g., Debian, Ubuntu, Fedora) and Windows, and requires FFmpeg to be installed. For now, it will be distributed on <a class="reference external" href="https://github.com/fabquenneville/mediacurator.git">GitHub</a>.</p>
<section id="install-ffmpeg">
<h2>Install FFmpeg<a class="headerlink" href="#install-ffmpeg" title="Link to this heading"></a></h2>
<p>To install FFmpeg, you can follow the instructions for your platform:</p>
<ul>
<li><dl>
<dt><strong>On Debian and Ubuntu</strong>:</dt><dd><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update
sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>ffmpeg
</pre></div>
</div>
</dd>
</dl>
</li>
<li><dl>
<dt><strong>On Fedora</strong>:</dt><dd><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span>ffmpeg
</pre></div>
</div>
</dd>
</dl>
</li>
<li><p><strong>On Windows</strong>:
- Download the latest build from <a class="reference external" href="https://ffmpeg.org/download.html">FFmpeg</a>.
- Follow the installation instructions provided on the site.</p></li>
</ul>
<p>To verify your FFmpeg installation, you can run:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ffmpeg<span class="w"> </span>-version
</pre></div>
</div>
</section>
<section id="install-from-pypi">
<h2>Install from PyPi<a class="headerlink" href="#install-from-pypi" title="Link to this heading"></a></h2>
<p>You can install the <cite>mediacurator</cite> package directly from PyPi using the following command:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span>MediaCurator
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="warnings.html" title="previous chapter">Warnings</a></li>
<li>Next: <a href="quickstart.html" title="next chapter">Quickstart</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/installation.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Manual &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Use cases" href="use_cases.html" />
<link rel="prev" title="Quickstart" href="quickstart.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="manual">
<h1>Manual<a class="headerlink" href="#manual" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<section id="name">
<h2>Name<a class="headerlink" href="#name" title="Link to this heading"></a></h2>
<p>mediacurator</p>
</section>
<section id="synopsis">
<h2>Synopsis<a class="headerlink" href="#synopsis" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>&lt;command&gt;<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
mediacurator<span class="w"> </span><span class="o">[</span>list,convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-in:any,avi,divx,flv,m4v,mkv,mp4,mpg,ogm,vid,webm,wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv,vob<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-print:list,formated,verbose<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
</pre></div>
</div>
<p><strong>Available commands:</strong>
- <cite>list</cite>: List all videos with specified filters.
- <cite>convert</cite>: Convert videos to specified formats.</p>
<p><strong>Options:</strong></p>
<ul class="simple">
<li><p><cite>-del</cite>: Delete found results after successful operations. <strong>Use with caution</strong>.</p></li>
<li><p><cite>-in &lt;input&gt;</cite>: Specify input file formats (default: <cite>any</cite>).</p></li>
<li><p><cite>-filters &lt;filter&gt;</cite>: Apply filters to the selection of videos.</p></li>
<li><p><cite>-out &lt;output&gt;</cite>: Specify output formats (default: <cite>mkv</cite>, <cite>x265</cite>).</p></li>
<li><p><cite>-print &lt;print_option&gt;</cite>: Set print options (default: <cite>list</cite>).</p></li>
<li><p><cite>-files &lt;file&gt;</cite>: Specify files to process.</p></li>
<li><p><cite>-dirs &lt;directory&gt;</cite>: Specify directories to process.</p></li>
</ul>
<p><strong>For multiple files or filenames, use double comma separated values (,,).</strong></p>
<p><strong>Default options (if not specified):</strong></p>
<ul class="simple">
<li><p><cite>-in</cite>: <cite>any</cite></p></li>
<li><p><cite>-filters</cite>: (none)</p></li>
<li><p><cite>-out</cite>: <cite>mkv</cite>, <cite>x265</cite></p></li>
<li><p><cite>-print</cite>: <cite>list</cite></p></li>
</ul>
</section>
<section id="description">
<h2>Description<a class="headerlink" href="#description" title="Link to this heading"></a></h2>
<p><strong>mediacurator</strong> is a Python command-line tool designed to manage a media database. It allows you to:</p>
<ul class="simple">
<li><p>List all videos and their metadata, optionally filtered by specified criteria.</p></li>
<li><p>Batch find, repair, or convert videos with encoding errors.</p></li>
<li><p>Batch recode videos to modern codecs (e.g., x265, AV1) based on filters (e.g., container, codec, resolution).</p></li>
</ul>
</section>
<section id="options">
<h2>Options<a class="headerlink" href="#options" title="Link to this heading"></a></h2>
<section id="list">
<h3>list<a class="headerlink" href="#list" title="Link to this heading"></a></h3>
<blockquote>
<div><p>Search and list videos filtered by the user-provided parameters.</p>
</div></blockquote>
</section>
<section id="convert">
<h3>convert<a class="headerlink" href="#convert" title="Link to this heading"></a></h3>
<blockquote>
<div><p>Search and convert all videos filtered by the user-provided parameters.</p>
</div></blockquote>
</section>
<section id="del">
<h3>-del:<a class="headerlink" href="#del" title="Link to this heading"></a></h3>
<blockquote>
<div><p>Deletes the original videos after successful completion of operations (e.g., conversion or listing). <strong>Use with caution</strong>.</p>
<p>See <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p>
</div></blockquote>
</section>
<section id="in">
<h3>-in:<a class="headerlink" href="#in" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[<strong>any</strong>, avi, divx, flv, m4v, mkv, mp4, mpg, ogm, vid, webm, wmv]</p>
<p>Filters videos by file format (container extensions). The default is <cite>any</cite>, meaning all formats are included.</p>
</div></blockquote>
</section>
<section id="filters">
<h3>-filters:<a class="headerlink" href="#filters" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[fferror, old, lowres, hd, 720p, 1080p, uhd, mpeg, mpeg4, x264, wmv3, wmv]</p>
<p>Filters videos based on specific criteria:</p>
<ul class="simple">
<li><p><strong>fferror</strong>: Select videos with encoding errors (see <a class="reference internal" href="errors.html"><span class="doc">Errors</span></a>)</p></li>
<li><p><strong>old</strong>: Select videos using outdated codecs (anything except hevc or av1)</p></li>
<li><p><strong>hd</strong>: Select videos in HD (720p, 1080p, UHD)</p></li>
<li><p><strong>lowres</strong>: Select videos that are not in HD</p></li>
<li><p><strong>uhd</strong>: Select Ultra-HD videos (width or height &gt;= 2160)</p></li>
<li><p><strong>1080p</strong>: Select Full-HD videos (1440 &lt;= width &lt; 2160 or 1080 &lt;= height &lt; 2160)</p></li>
<li><p><strong>720p</strong>: Select HD videos (1280 &lt;= width &lt; 1440 or 720 &lt;= height &lt; 1080)</p></li>
<li><p><strong>sd</strong>: Select standard-definition videos (480 &lt;= height &lt; 720)</p></li>
<li><p><strong>subsd</strong>: Select substandard-definition videos (height &lt; 480)</p></li>
<li><p><strong>mpeg, mpeg4, x264, wmv3, wmv, vob</strong>: Filter by video codec</p></li>
</ul>
</div></blockquote>
</section>
<section id="out">
<h3>-out:<a class="headerlink" href="#out" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[<strong>mkv</strong>/mp4, x265/av1]</p>
<p>Specifies the output format for video conversions:</p>
<ul class="simple">
<li><p><strong>mkv</strong>: (<strong>Default</strong>) Package the output video in a <a class="reference external" href="https://en.wikipedia.org/wiki/Matroska">Matroska</a> container.</p></li>
<li><p><strong>mp4</strong>: Package the output video in an MP4 container.</p></li>
<li><p><strong>x265</strong> or <strong>hevc</strong>: (<strong>Default</strong>) Encode the video using <a class="reference external" href="https://en.wikipedia.org/wiki/X265">x265</a> (HEVC).</p></li>
<li><p><strong>av1</strong>: Encode the video using <a class="reference external" href="https://en.wikipedia.org/wiki/AV1">AOMedia Video 1</a> (AV1).</p></li>
</ul>
</div></blockquote>
</section>
<section id="print">
<h3>-print:<a class="headerlink" href="#print" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[<strong>list</strong>, formated, verbose]</p>
<p>Specifies how the output should be displayed:</p>
<ul class="simple">
<li><p><strong>list</strong>: (<strong>Default</strong>) Prints video info in a concise, single-line format.</p></li>
</ul>
<a class="reference internal image-reference" href="../_images/Screenshot-print_list-single.png"><img alt="List videos (single-line output)" src="../_images/Screenshot-print_list-single.png" style="width: 600px;" />
</a>
<ul class="simple">
<li><p><strong>formated</strong>: Prints video info in a more readable format with line breaks.</p></li>
</ul>
<a class="reference internal image-reference" href="../_images/Screenshot-print_formatted-single.png"><img alt="List videos (formatted output)" src="../_images/Screenshot-print_formatted-single.png" style="width: 400px;" />
</a>
<ul class="simple">
<li><p><strong>verbose</strong>: Prints the FFmpeg output during conversions.</p></li>
</ul>
</div></blockquote>
</section>
<section id="dirs">
<h3>-dirs:<a class="headerlink" href="#dirs" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[“/mnt/media/”,,”/mnt/media2/”]</p>
<p>Specifies directories to scan, separated by <strong>double commas</strong> (,,).</p>
</div></blockquote>
</section>
<section id="files">
<h3>-files:<a class="headerlink" href="#files" title="Link to this heading"></a></h3>
<blockquote>
<div><p>[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]</p>
<p>Specifies individual video files to process, separated by <strong>double commas</strong> (,,).</p>
</div></blockquote>
</section>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># This command lists all videos in the specified directories that use old codecs and</span>
<span class="c1"># formats the output.</span>
mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:old<span class="w"> </span>-print:formated<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
<span class="c1"># This command converts all MPEG4 videos found in the specified directories to AV1 format</span>
<span class="c1"># in MP4 containers and deletes the originals.</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>-del<span class="w"> </span>-filters:mpeg4<span class="w"> </span>-out:av1,mp4<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
<span class="c1"># This command converts AVI or MPG videos, displays detailed output during conversion, and</span>
<span class="c1"># deletes originals.</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>-del<span class="w"> </span>-in:avi,mpg<span class="w"> </span>-print:formated,verbose<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>For more examples, see <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
</section>
<section id="see-also">
<h2>See Also<a class="headerlink" href="#see-also" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://ffmpeg.org/">FFmpeg</a></p></li>
</ul>
</section>
<section id="glossary">
<h2>Glossary<a class="headerlink" href="#glossary" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Codec</strong>: A program or device that compresses and decompresses digital media.</p></li>
<li><p><strong>Container</strong>: A file format that holds video, audio, and metadata.</p></li>
<li><p><strong>UHD</strong>: Ultra High Definition, refers to video resolutions of 3840x2160 pixels or higher.</p></li>
</ul>
</section>
<section id="error-handling">
<h2>Error Handling<a class="headerlink" href="#error-handling" title="Link to this heading"></a></h2>
<p>Common issues users might encounter include:</p>
<ul class="simple">
<li><p><strong>Encoding Errors</strong>: If videos have encoding errors, they can be filtered using the <cite>-filters fferror</cite> option.</p></li>
<li><p><strong>Unsupported Formats</strong>: Ensure that input formats specified in <cite>-in</cite> are supported by mediacurator.</p></li>
</ul>
</section>
<section id="author">
<h2>Author<a class="headerlink" href="#author" title="Link to this heading"></a></h2>
<p>Fabrice Quenneville</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="quickstart.html" title="previous chapter">Quickstart</a></li>
<li>Next: <a href="use_cases.html" title="next chapter">Use cases</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/manual.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Quickstart &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Manual" href="manual.html" />
<link rel="prev" title="Installation" href="installation.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="quickstart">
<h1>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span><span class="o">[</span>list,convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-print:list,formated,verbose<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
</pre></div>
</div>
<p><strong>for multiple files or filenames use double comma separated values “,,”</strong></p>
<p>default options are:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-in:any
-filters:
-out:mkv,x265
-print:list
</pre></div>
</div>
<p>Examples:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># List all videos with old codec in formated format</span>
mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:old<span class="w"> </span>-print:formated<span class="w"> </span>-dirs:/mnt/media/<span class="w"> </span>&gt;&gt;<span class="w"> </span>../medlist.txt
<span class="c1"># Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>-del<span class="w"> </span>-filters:mpeg4<span class="w"> </span>-out:av1,mp4<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
<span class="c1"># Convert any video with avi or mpg extensions, print formated text including ffmpeg&#39;s output and then delete the originals</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>-del<span class="w"> </span>-in:avi,mpg<span class="w"> </span>-print:formated,verbose<span class="w"> </span>-dirs:/mnt/media/
</pre></div>
</div>
<p>More examples in <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="installation.html" title="previous chapter">Installation</a></li>
<li>Next: <a href="manual.html" title="next chapter">Manual</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/quickstart.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Use cases &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Errors" href="errors.html" />
<link rel="prev" title="Manual" href="manual.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="use-cases">
<h1>Use cases<a class="headerlink" href="#use-cases" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<p>The main reasons to use mediacurator would be the following:</p>
<ul class="simple">
<li><dl class="simple">
<dt><a class="reference internal" href="#legacy-list-cmd"><span class="std std-ref">Print information</span></a> on a video library such as:</dt><dd><ul>
<li><p>How many videos of the lot are in HD vs standard or substandard definitions</p></li>
<li><p>What videos are in older codecs</p></li>
<li><p>Are there videos in the library with encoding or corruption errors</p></li>
</ul>
</dd>
</dl>
</li>
<li><p><a class="reference internal" href="#legacy-purge"><span class="std std-ref">Purge</span></a> selected videos in a media library</p></li>
<li><p><a class="reference internal" href="#legacy-fferror"><span class="std std-ref">Batch repair encoding errors</span></a> on selected videos in a media library</p></li>
<li><p><a class="reference internal" href="#legacy-convert"><span class="std std-ref">Batch re-encode</span></a> videos from an old codec to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a></p></li>
</ul>
<section id="print-information">
<span id="legacy-list-cmd"></span><h2>Print information<a class="headerlink" href="#print-information" title="Link to this heading"></a></h2>
<p>List all videos with old codec in formatted output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:old<span class="w"> </span>-print:formated<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>List all videos with substandard definitions with a formatted output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:subsd<span class="w"> </span>-print:formated<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
</section>
<section id="purge">
<span id="legacy-purge"></span><h2>Purge<a class="headerlink" href="#purge" title="Link to this heading"></a></h2>
<p>Please see <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p>
<p>List and delete all videos using the <a class="reference external" href="https://en.wikipedia.org/wiki/Windows_Media_Video">Windows Media Video</a> codecs</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>-filters:wmv<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>List and delete all videos using <a class="reference external" href="https://en.wikipedia.org/wiki/Audio_Video_Interleave">Audio Video Interleave</a></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>-in:avi<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
</section>
<section id="batch-repair-encoding-errors">
<span id="legacy-fferror"></span><h2>Batch repair encoding errors<a class="headerlink" href="#batch-repair-encoding-errors" title="Link to this heading"></a></h2>
<p>List all videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>Convert all videos with encoding errors to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> and delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
</section>
<section id="batch-re-encode">
<span id="legacy-convert"></span><h2>Batch re-encode<a class="headerlink" href="#batch-re-encode" title="Link to this heading"></a></h2>
<p>Convert all videos with old codecs to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> to save space and delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>-filters:old<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>-filters:mpeg4<span class="w"> </span>-out:av1,mkv<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
<p>Convert any video with avi or mpg extensions, print formatted text including ffmpegs output, and then delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>-in:avi,mpg<span class="w"> </span>-print:formated,verbose<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="manual.html" title="previous chapter">Manual</a></li>
<li>Next: <a href="errors.html" title="next chapter">Errors</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/use_cases.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,205 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Warnings &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Installation" href="installation.html" />
<link rel="prev" title="mediacurator 1.0.1 Release Notes" href="../releasenotes/1.0.1-changelog.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="warnings">
<h1>Warnings<a class="headerlink" href="#warnings" title="Link to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Before using the <strong>delete feature</strong>, we strongly recommend running several dry runs to get acquainted with <cite>mediacurator</cite>, as incorrect usage can cause irreversible damage to your media library.</p>
</div>
<p>The <cite>-del</cite> flag will <strong>permanently delete</strong> files, so it is crucial to ensure that the command is executed correctly. Below are some examples of how the delete feature works.</p>
<section id="example-use-cases-for-the-del-flag">
<h2>Example use Cases for the <cite>-del</cite> Flag<a class="headerlink" href="#example-use-cases-for-the-del-flag" title="Link to this heading"></a></h2>
<ol class="arabic simple">
<li><p><strong>Delete all non-HD (low-resolution) videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-del<span class="w"> </span>-filters:lowres<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<ol class="arabic simple" start="2">
<li><p><strong>Delete all substandard quality videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-del<span class="w"> </span>-filters:subsd<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<a class="reference internal image-reference" href="../_images/Legacy-Screenshot-delete.png"><img alt="Deleting videos" src="../_images/Legacy-Screenshot-delete.png" style="width: 600px;" />
</a>
<ol class="arabic simple" start="3">
<li><p><strong>Delete all videos in a folder with encoding errors:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-del<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<ol class="arabic simple" start="4">
<li><p><strong>Convert (repair) and then delete all videos in a folder with encoding errors:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>-del<span class="w"> </span>-filters:fferror<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<ol class="arabic simple" start="5">
<li><p><strong>Delete all videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-del<span class="w"> </span>-filters:lowres<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
</section>
<section id="important-notes">
<h2>Important Notes<a class="headerlink" href="#important-notes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Irreversibility</strong>: All of these commands involve permanent deletion. Once a file is deleted using the <cite>-del</cite> flag, it cannot be recovered.</p></li>
<li><p><strong>Run without `-del` first</strong>: Always perform several dry runs by omitting the <cite>-del</cite> flag to ensure that the correct files are selected for deletion. Familiarizing yourself with the tool before using destructive commands is essential to avoid unintended consequences.</p></li>
<li><p><strong>Specific File Selection</strong>: If youre unsure about applying filters to an entire directory, you can use the <cite>-files</cite> option to target individual files for deletion or conversion, further reducing the risk of unintended deletions.</p></li>
<li><p><strong>Backup Recommendation</strong>: Before running any commands with the <cite>-del</cite> flag, it is a good practice to back up your media library or the specific directories being processed, especially if they contain valuable or irreplaceable files.</p></li>
</ul>
</section>
<section id="dry-run-example-without-deletion">
<h2>Dry run example (without deletion)<a class="headerlink" href="#dry-run-example-without-deletion" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>-filters:lowres<span class="w"> </span>-dirs:<span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<p>Make sure you carefully verify the output and files selected during the dry runs to prevent accidental data loss.</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="../releasenotes/1.0.1-changelog.html" title="previous chapter">mediacurator 1.0.1 Release Notes</a></li>
<li>Next: <a href="installation.html" title="next chapter">Installation</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/legacy_usage/warnings.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

Binary file not shown.

View File

@ -1,27 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.1 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.1 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="prev" title="MediaCurator 0.0.4 Release Notes" href="0.0.4-changelog.html" /> <link rel="prev" title="MediaCurator 0.0.4 Release Notes" href="0.0.4-changelog.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -29,23 +29,25 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-1-release-notes"> <section id="mediacurator-0-0-1-release-notes">
<h1>MediaCurator 0.0.1 Release Notes<a class="headerlink" href="#mediacurator-0-0-1-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.1 Release Notes<a class="headerlink" href="#mediacurator-0-0-1-release-notes" title="Link to this heading"></a></h1>
<p>This release has been tested on Python 3.7 - 3.9</p> <p>This release has been tested on Python 3.7 - 3.9</p>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>First release, implemented the following features: <p>First release, implemented the following features:
* List all the videos and their information with or without filters * List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors * Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …</p> * Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -53,40 +55,41 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -106,7 +109,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -125,7 +144,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -133,18 +152,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.1-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.1-changelog.rst.txt"

View File

@ -1,28 +1,28 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.10 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.10 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.9 Release Notes" href="0.0.9-changelog.html" /> <link rel="next" title="MediaCurator 0.0.9 Release Notes" href="0.0.9-changelog.html" />
<link rel="prev" title="Errors" href="../usage/errors.html" /> <link rel="prev" title="MediaCurator 0.0.11 Release Notes" href="0.0.11-changelog.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,64 +30,67 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-10-release-notes"> <section id="mediacurator-0-0-10-release-notes">
<h1>MediaCurator 0.0.10 Release Notes<a class="headerlink" href="#mediacurator-0-0-10-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.10 Release Notes<a class="headerlink" href="#mediacurator-0-0-10-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Added support to mpeg filetype.</p> <p>Added support to mpeg filetype.</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section>
<section id="compatibility-notes">
<h2>Compatibility Notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9.7</p>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
<li><p>Prepare API for GUI</p></li> <li><p>Prepare API for GUI</p></li>
</ul> </ul>
</section> </section>
<section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9.7</p>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2>
</section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -107,7 +110,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -122,12 +141,12 @@
<h3>Related Topics</h3> <h3>Related Topics</h3>
<ul> <ul>
<li><a href="../index.html">Documentation overview</a><ul> <li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="../usage/errors.html" title="previous chapter">Errors</a></li> <li>Previous: <a href="0.0.11-changelog.html" title="previous chapter">MediaCurator 0.0.11 Release Notes</a></li>
<li>Next: <a href="0.0.9-changelog.html" title="next chapter">MediaCurator 0.0.9 Release Notes</a></li> <li>Next: <a href="0.0.9-changelog.html" title="next chapter">MediaCurator 0.0.9 Release Notes</a></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -135,18 +154,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.10-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.10-changelog.rst.txt"

View File

@ -0,0 +1,193 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.11 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.10 Release Notes" href="0.0.10-changelog.html" />
<link rel="prev" title="MediaCurator 0.0.12 Release Notes" href="0.0.12-changelog.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="mediacurator-0-0-11-release-notes">
<h1>MediaCurator 0.0.11 Release Notes<a class="headerlink" href="#mediacurator-0-0-11-release-notes" title="Link to this heading"></a></h1>
<section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Code improvements.</p>
</section>
<section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section>
<section id="compatibility-notes">
<h2>Compatibility Notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested on Python 3.7 - 3.9.7.</p>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.</p>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.</p>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Rectified a bug where MediaLibrary would encounter an error due to a missing directory.</p></li>
<li><p>Enhanced clarity by refining comments.</p></li>
<li><p>Improved code readability through cleanup and organization.</p></li>
<li><p>Ensured consistency and enhanced readability by adjusting variable names.</p></li>
</ul>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section>
<section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section>
<section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li>
<li><p>Prepare API for GUI</p></li>
</ul>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="0.0.12-changelog.html" title="previous chapter">MediaCurator 0.0.12 Release Notes</a></li>
<li>Next: <a href="0.0.10-changelog.html" title="next chapter">MediaCurator 0.0.10 Release Notes</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/releasenotes/0.0.11-changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,190 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.12 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.11 Release Notes" href="0.0.11-changelog.html" />
<link rel="prev" title="MediaCurator 0.0.13 Release Notes" href="0.0.13-changelog.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="mediacurator-0-0-12-release-notes">
<h1>MediaCurator 0.0.12 Release Notes<a class="headerlink" href="#mediacurator-0-0-12-release-notes" title="Link to this heading"></a></h1>
<section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Code improvements.</p>
</section>
<section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section>
<section id="compatibility-notes">
<h2>Compatibility Notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested on Python 3.7 - 3.9.7.</p>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.</p>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.</p>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Rectified a bug where MediaLibrary would be unable to gather the videos to operate.</p></li>
</ul>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section>
<section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section>
<section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li>
<li><p>Prepare API for GUI</p></li>
</ul>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="0.0.13-changelog.html" title="previous chapter">MediaCurator 0.0.13 Release Notes</a></li>
<li>Next: <a href="0.0.11-changelog.html" title="next chapter">MediaCurator 0.0.11 Release Notes</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/releasenotes/0.0.12-changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -0,0 +1,188 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.13 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.12 Release Notes" href="0.0.12-changelog.html" />
<link rel="prev" title="Errors" href="../legacy_usage/errors.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="mediacurator-0-0-13-release-notes">
<h1>MediaCurator 0.0.13 Release Notes<a class="headerlink" href="#mediacurator-0-0-13-release-notes" title="Link to this heading"></a></h1>
<section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Added a line break for readability.</p>
</section>
<section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section>
<section id="compatibility-notes">
<h2>Compatibility Notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested on Python 3.7 - 3.9.7.</p>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1.</p>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>MediaCurator has been tested to work on various GNU/Linux distributions as well as Windows.</p>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
<p>Added a line break for readability.</p>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section>
<section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section>
<section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li>
<li><p>Prepare API for GUI</p></li>
</ul>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="../legacy_usage/errors.html" title="previous chapter">Errors</a></li>
<li>Next: <a href="0.0.12-changelog.html" title="next chapter">MediaCurator 0.0.12 Release Notes</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/releasenotes/0.0.13-changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.4 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.4 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.1 Release Notes" href="0.0.1-changelog.html" /> <link rel="next" title="MediaCurator 0.0.1 Release Notes" href="0.0.1-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,20 +30,22 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-4-release-notes"> <section id="mediacurator-0-0-4-release-notes">
<h1>MediaCurator 0.0.4 Release Notes<a class="headerlink" href="#mediacurator-0-0-4-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.4 Release Notes<a class="headerlink" href="#mediacurator-0-0-4-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Bugs fixes: <p>Bugs fixes:
* Fixed bug with permissions not being applied correctly after conversion</p> * Fixed bug with permissions not being applied correctly after conversion</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -51,44 +53,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9</p> <p>Mediacurator has been tested on Python 3.7 - 3.9</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -108,7 +111,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -128,7 +147,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -136,18 +155,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.4-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.4-changelog.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.5 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.5 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.4 Release Notes" href="0.0.4-changelog.html" /> <link rel="next" title="MediaCurator 0.0.4 Release Notes" href="0.0.4-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,21 +30,23 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-5-release-notes"> <section id="mediacurator-0-0-5-release-notes">
<h1>MediaCurator 0.0.5 Release Notes<a class="headerlink" href="#mediacurator-0-0-5-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.5 Release Notes<a class="headerlink" href="#mediacurator-0-0-5-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Bugs fixes: <p>Bugs fixes:
* Fixed bug with class values * Fixed bug with class values
* Added VOB file support</p> * Added VOB file support</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -52,44 +54,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9</p> <p>Mediacurator has been tested on Python 3.7 - 3.9</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -109,7 +112,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -129,7 +148,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -137,18 +156,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.5-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.5-changelog.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.6 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.6 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.5 Release Notes" href="0.0.5-changelog.html" /> <link rel="next" title="MediaCurator 0.0.5 Release Notes" href="0.0.5-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,12 +30,14 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-6-release-notes"> <section id="mediacurator-0-0-6-release-notes">
<h1>MediaCurator 0.0.6 Release Notes<a class="headerlink" href="#mediacurator-0-0-6-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.6 Release Notes<a class="headerlink" href="#mediacurator-0-0-6-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Bugs fixes: <p>Bugs fixes:
* Fixed bug with file list * Fixed bug with file list
* Fixed bug with class values * Fixed bug with class values
@ -44,10 +46,10 @@
* Tested with ffmpeg 4.3.2</p> * Tested with ffmpeg 4.3.2</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -55,44 +57,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9</p> <p>Mediacurator has been tested on Python 3.7 - 3.9</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.2</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.2</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -112,7 +115,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -132,7 +151,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -140,18 +159,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.6-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.6-changelog.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.7 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.7 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.6 Release Notes" href="0.0.6-changelog.html" /> <link rel="next" title="MediaCurator 0.0.6 Release Notes" href="0.0.6-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,20 +30,22 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-7-release-notes"> <section id="mediacurator-0-0-7-release-notes">
<h1>MediaCurator 0.0.7 Release Notes<a class="headerlink" href="#mediacurator-0-0-7-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.7 Release Notes<a class="headerlink" href="#mediacurator-0-0-7-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Bugs fixes: <p>Bugs fixes:
* Bug fix from 0.0.6</p> * Bug fix from 0.0.6</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -51,44 +53,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9</p> <p>Mediacurator has been tested on Python 3.7 - 3.9</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.2</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.2</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -108,7 +111,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -128,7 +147,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -136,18 +155,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.7-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.7-changelog.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.8 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.8 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.7 Release Notes" href="0.0.7-changelog.html" /> <link rel="next" title="MediaCurator 0.0.7 Release Notes" href="0.0.7-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,19 +30,21 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-8-release-notes"> <section id="mediacurator-0-0-8-release-notes">
<h1>MediaCurator 0.0.8 Release Notes<a class="headerlink" href="#mediacurator-0-0-8-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.8 Release Notes<a class="headerlink" href="#mediacurator-0-0-8-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Added support to divx and ogm filetypes.</p> <p>Added support to divx and ogm filetypes.</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -50,44 +52,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9.7</p> <p>Mediacurator has been tested on Python 3.7 - 3.9.7</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -107,7 +110,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.8 Release Notes</a></li>
@ -127,7 +146,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -135,18 +154,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.8-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.8-changelog.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MediaCurator 0.0.9 Release Notes &#8212; MediaCurator documentation</title> <title>MediaCurator 0.0.9 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.8 Release Notes" href="0.0.8-changelog.html" /> <link rel="next" title="MediaCurator 0.0.8 Release Notes" href="0.0.8-changelog.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,19 +30,21 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="mediacurator-0-0-9-release-notes"> <section id="mediacurator-0-0-9-release-notes">
<h1>MediaCurator 0.0.9 Release Notes<a class="headerlink" href="#mediacurator-0-0-9-release-notes" title="Permalink to this heading"></a></h1> <h1>MediaCurator 0.0.9 Release Notes<a class="headerlink" href="#mediacurator-0-0-9-release-notes" title="Link to this heading"></a></h1>
<section id="highlights"> <section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this heading"></a></h2> <h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>Added support to webm filetype.</p> <p>Added support to webm filetype.</p>
</section> </section>
<section id="dropped-support"> <section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this heading"></a></h2> <h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
</section> </section>
<section id="future-changes"> <section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this heading"></a></h2> <h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p>More filters</p></li> <li><p>More filters</p></li>
<li><p>Test AV1 Support</p></li> <li><p>Test AV1 Support</p></li>
@ -50,44 +52,45 @@
</ul> </ul>
</section> </section>
<section id="compatibility-notes"> <section id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this heading"></a></h2> <h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<section id="python-support"> <section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Permalink to this heading"></a></h3> <h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested on Python 3.7 - 3.9.7</p> <p>Mediacurator has been tested on Python 3.7 - 3.9.7</p>
</section> </section>
<section id="ffmpeg-support"> <section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this heading"></a></h3> <h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p> <p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.4.1</p>
</section> </section>
<section id="os-support"> <section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this heading"></a></h3> <h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p> <p>Mediacurator has been tested to work on various GNU/Linux distributions as well as Windows</p>
</section> </section>
</section> </section>
<section id="new-features"> <section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this heading"></a></h2> <h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
</section> </section>
<section id="improvements"> <section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this heading"></a></h2> <h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
</section> </section>
<section id="changes"> <section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this heading"></a></h2> <h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
</section> </section>
<section id="deprecations"> <section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this heading"></a></h2> <h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -107,7 +110,23 @@
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -127,7 +146,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -135,18 +154,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/releasenotes/0.0.9-changelog.rst.txt" <a href="../_sources/releasenotes/0.0.9-changelog.rst.txt"

View File

@ -0,0 +1,252 @@
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>mediacurator 1.0.1 Release Notes &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Warnings" href="../legacy_usage/warnings.html" />
<link rel="prev" title="Errors" href="../usage/errors.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="mediacurator-1-0-1-release-notes">
<h1>mediacurator 1.0.1 Release Notes<a class="headerlink" href="#mediacurator-1-0-1-release-notes" title="Link to this heading"></a></h1>
<section id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Link to this heading"></a></h2>
<p>This release introduces a major overhaul of the command-line interface (CLI) for <cite>mediacurator</cite>, improving usability, maintainability, and flexibility. The CLI now utilizes Pythons <cite>argparse</cite> library for enhanced user interaction and support for a broader range of formats.</p>
</section>
<section id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>The project has been <strong>renamed</strong> from MediaCurator to mediacurator to standardize naming conventions (all lowercase).</p></li>
<li><p>The CLI API has undergone significant changes, resulting in a new command structure that is not compatible with the old format. The previous and new structures are as follows:</p></li>
</ul>
<p><strong>Before:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span><span class="o">[</span>list,convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-print:list,formated,verbose<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
</pre></div>
</div>
<p><strong>After:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span><span class="o">[</span>list<span class="w"> </span>convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del/--delete<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-i/--inputs<span class="w"> </span>any<span class="w"> </span>3gp<span class="w"> </span>asf<span class="w"> </span>avi<span class="w"> </span>divx<span class="w"> </span>dv<span class="w"> </span>f4v<span class="w"> </span>flv<span class="w"> </span>gif<span class="w"> </span>m2ts<span class="w"> </span>m4v<span class="w"> </span>mkv<span class="w"> </span>mov<span class="w"> </span>mp4<span class="w"> </span>mpeg<span class="w"> </span>mpg<span class="w"> </span>mts<span class="w"> </span>ogm<span class="w"> </span>ogv<span class="w"> </span>rm<span class="w"> </span>swf<span class="w"> </span>ts<span class="w"> </span>vid<span class="w"> </span>vob<span class="w"> </span>webm<span class="w"> </span>wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-fl/--filters<span class="w"> </span>fferror<span class="w"> </span>old<span class="w"> </span>lowres<span class="w"> </span>hd<span class="w"> </span>720p<span class="w"> </span>1080p<span class="w"> </span>uhd<span class="w"> </span>mpeg<span class="w"> </span>mpeg4<span class="w"> </span>x264<span class="w"> </span>wmv3<span class="w"> </span>wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-o/--outputs<span class="w"> </span>mkv/mp4<span class="w"> </span>x265/av1<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-p/--printop<span class="w"> </span>list<span class="w"> </span>formatted<span class="w"> </span>verbose<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-d/--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-f/--files<span class="w"> </span><span class="s2">&quot;file1.ext&quot;</span><span class="w"> </span><span class="s2">&quot;file2.ext&quot;</span><span class="o">]</span>
</pre></div>
</div>
</section>
<section id="compatibility-notes">
<h2>Compatibility Notes<a class="headerlink" href="#compatibility-notes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>This release includes breaking changes, necessitating the version bump from <strong>0.0.13</strong> to <strong>1.0.1</strong>.</p></li>
</ul>
<section id="python-support">
<h3>Python Support<a class="headerlink" href="#python-support" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><cite>mediacurator</cite> has been tested on Python 3.12.6.</p></li>
</ul>
</section>
<section id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><cite>mediacurator</cite> has been tested to work with FFMPEG version 7.0.2.</p></li>
</ul>
</section>
<section id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><cite>mediacurator</cite> has been tested to work on various GNU/Linux distributions as well as Windows.</p></li>
</ul>
</section>
</section>
<section id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Major CLI Overhaul</strong>: Refactored the command-line argument handling to use <cite>argparse</cite>, allowing structured command definitions, built-in help, validation, and error messages.</p></li>
<li><dl class="simple">
<dt><strong>Expanded Format Support</strong>:</dt><dd><ul>
<li><dl class="simple">
<dt><strong>Input Formats</strong>: Added support for a broader range of input formats, including:</dt><dd><ul>
<li><p>From: <cite>avi, divx, flv, m4v, mkv, mp4, mpg, ogm, vid, webm, wmv</cite></p></li>
<li><p>To: <cite>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</cite></p></li>
</ul>
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
<li><p><strong>CRF Settings</strong>: Introduced CRF (Constant Rate Factor) settings for AV1 and x265 to provide better control over quality and file size.</p></li>
<li><p><strong>Even Dimensions Handling</strong>: Implemented handling for odd pixel dimensions by adding black pixel padding to ensure even width and height.</p></li>
<li><p><strong>Improved Output</strong>: Added line breaks in conversion output before each video to enhance readability.</p></li>
</ul>
</section>
<section id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Standardized Metadata Handling</strong>: Standardized audio, subtitle, and metadata copying processes.</p></li>
<li><p><strong>Enhanced Documentation</strong>: Revamped documentation for clarity and usability, ensuring all sections are consistent in formatting and structure.</p></li>
<li><p><strong>Legacy Support</strong>: Maintained legacy commands in the updated documentation for backward compatibility.</p></li>
<li><p><strong>Code Quality</strong>: Refactored redundant code sections and improved error handling for better user feedback.</p></li>
</ul>
</section>
<section id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Updated the README and documentation to reflect the new command-line interface and features.</p></li>
<li><p>Removed outdated screenshots and images, and organized legacy images in the documentation.</p></li>
</ul>
</section>
<section id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Deprecated legacy command options that are no longer compatible with the new CLI structure.</p></li>
</ul>
</section>
<section id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>Plan to add more filters for enhanced media management.</p></li>
<li><p>Testing for AV1 support to ensure compatibility with new video codecs.</p></li>
<li><p>Preparing the API for potential GUI development.</p></li>
</ul>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p>
<h1 class="logo"><a href="../index.html">mediacurator</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.7-changelog.html">MediaCurator 0.0.7 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.6-changelog.html">MediaCurator 0.0.6 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.5-changelog.html">MediaCurator 0.0.5 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.4-changelog.html">MediaCurator 0.0.4 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="0.0.1-changelog.html">MediaCurator 0.0.1 Release Notes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="../usage/errors.html" title="previous chapter">Errors</a></li>
<li>Next: <a href="../legacy_usage/warnings.html" title="next chapter">Warnings</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2020, Fabrice Quenneville.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/releasenotes/1.0.1-changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -1,30 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="./">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Search &#8212; MediaCurator documentation</title> <title>Search &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=12dfc556" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=d9b65b63" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/jquery.js"></script> <script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/underscore.js"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/searchtools.js"></script> <script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script> <script src="_static/language_data.js"></script>
<link rel="shortcut icon" href="_static/favicon.ico"/> <link rel="icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="#" /> <link rel="search" title="Search" href="#" />
<script src="searchindex.js" defer></script> <script src="searchindex.js" defer="defer"></script>
<meta name="robots" content="noindex" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -33,6 +34,8 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<h1 id="search-documentation">Search</h1> <h1 id="search-documentation">Search</h1>
@ -60,21 +63,19 @@
</form> </form>
<div id="search-results"></div>
<div id="search-results">
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html"> <p class="logo"><a href="index.html">
<img class="logo" src="_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="index.html">MediaCurator</a></h1> <h1 class="logo"><a href="index.html">mediacurator</a></h1>
@ -95,6 +96,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -112,16 +129,24 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -1,28 +1,28 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Errors &#8212; MediaCurator documentation</title> <title>Errors &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="MediaCurator 0.0.10 Release Notes" href="../releasenotes/0.0.10-changelog.html" /> <link rel="next" title="mediacurator 1.0.1 Release Notes" href="../releasenotes/1.0.1-changelog.html" />
<link rel="prev" title="Use cases" href="use_cases.html" /> <link rel="prev" title="Use cases" href="use_cases.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,51 +30,55 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="errors"> <section id="errors">
<h1>Errors<a class="headerlink" href="#errors" title="Permalink to this heading"></a></h1> <h1>Errors<a class="headerlink" href="#errors" title="Link to this heading"></a></h1>
<p>FFmpeg can detect quite a few errors in the encoding of your source videos encoding. It can also be used to repair errors.</p> <p>FFmpeg can detect quite a few errors in the encoding of your source videos encoding and can also be used to repair these errors.</p>
<section id="repairable-encoding-errors"> <section id="repairable-encoding-errors">
<h2>Repairable encoding errors<a class="headerlink" href="#repairable-encoding-errors" title="Permalink to this heading"></a></h2> <h2>Repairable Encoding Errors<a class="headerlink" href="#repairable-encoding-errors" title="Link to this heading"></a></h2>
<p>Here are some example errors that mediacurator will print and can possibly repair by re-encoding:</p> <p>Here are some example errors that mediacurator will print and can possibly repair by re-encoding:</p>
<ul class="simple"> <ul class="simple">
<li><p>“Referenced QT chapter track not found”</p></li> <li><p><strong>“Referenced QT chapter track not found”</strong>: Indicates that the video references a chapter that doesnt exist.</p></li>
<li><p>“Error, header damaged or not MPEG-4 header”</p></li> <li><p><strong>“Error, header damaged or not MPEG-4 header”</strong>: The files header is corrupted or missing.</p></li>
<li><p>“Header missing”</p></li> <li><p><strong>“Header missing”</strong>: The file lacks the necessary header information for decoding.</p></li>
<li><p>“SEI type”</p></li> <li><p><strong>“SEI type”</strong>: Issues related to SEI (Supplemental Enhancement Information) data.</p></li>
<li><p>“no frame!”</p></li> <li><p><strong>“no frame!”</strong>: No video frames available for processing.</p></li>
<li><p>“Error while decoding MPEG audio frame.”</p></li> <li><p><strong>“Error while decoding MPEG audio frame.”</strong>: Issues decoding the audio stream.</p></li>
<li><p>“big_values too big”</p></li> <li><p><strong>“big_values too big”</strong>: Indicates that certain values in the file are larger than expected.</p></li>
<li><p></p></li> <li><p></p></li>
</ul> </ul>
</section> </section>
<section id="ffmpeg-issues"> <section id="ffmpeg-issues">
<h2>FFmpeg issues<a class="headerlink" href="#ffmpeg-issues" title="Permalink to this heading"></a></h2> <h2>FFmpeg Issues<a class="headerlink" href="#ffmpeg-issues" title="Link to this heading"></a></h2>
<p>While using FFmpeg depending on your version you may also face other errors like segfaults. MediaCurator will also print information when that occurs and move on to the next video after cleaning up after failure.</p> <p>While using FFmpeg, you may encounter other errors (such as segfaults) depending on your version. Mediacurator will also print information when that occurs and will move on to the next video after cleaning up any failures.</p>
<p>If that happens there are a few steps you can take:</p> <p>If you experience these errors, consider the following steps:</p>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="https://ffmpeg.org/download.html">Update FFmpeg</a> to its latest version as it is a very active project and most distributions serve old versions in their repositories</p></li> <li><p><strong>Update FFmpeg</strong>: Ensure you are using the latest version by downloading it from <a class="reference external" href="https://ffmpeg.org/download.html">ffmpeg.org</a>, as many distributions provide outdated versions in their repositories.</p></li>
<li><p>Run MediaCurator with the verbose print option wich will print the raw FFmpeg output</p></li> <li><p><strong>Run with Verbose Option</strong>: Execute mediacurator with the verbose print option, which will display the raw FFmpeg output for better troubleshooting.</p></li>
<li><p>Try again: In my experience some errors dont necessarly recur…</p></li> <li><p><strong>Retry</strong>: In my experience, some errors do not necessarily recur…</p></li>
</ul> </ul>
</section> </section>
<section id="other-bugs"> <section id="other-bugs">
<h2>Other bugs<a class="headerlink" href="#other-bugs" title="Permalink to this heading"></a></h2> <h2>Other Bugs<a class="headerlink" href="#other-bugs" title="Link to this heading"></a></h2>
<p>If you face other bugs, issues or want to suggest features feel free to open a bug report on <a class="reference external" href="https://github.com/fabquenneville/MediaCurator/issues">GitHub</a></p> <p>If you encounter other bugs, issues, or would like to suggest features, feel free to open a bug report on <a class="reference external" href="https://github.com/fabquenneville/mediacurator/issues">GitHub</a>.</p>
<p>For further assistance, you can reach out through the GitHub repository or the projects support channels.</p>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -92,14 +96,30 @@
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li> <li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li> <li class="toctree-l1"><a class="reference internal" href="use_cases.html">Use cases</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Errors</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">Errors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#repairable-encoding-errors">Repairable encoding errors</a></li> <li class="toctree-l2"><a class="reference internal" href="#repairable-encoding-errors">Repairable Encoding Errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ffmpeg-issues">FFmpeg issues</a></li> <li class="toctree-l2"><a class="reference internal" href="#ffmpeg-issues">FFmpeg Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="#other-bugs">Other bugs</a></li> <li class="toctree-l2"><a class="reference internal" href="#other-bugs">Other Bugs</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -115,11 +135,11 @@
<ul> <ul>
<li><a href="../index.html">Documentation overview</a><ul> <li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="use_cases.html" title="previous chapter">Use cases</a></li> <li>Previous: <a href="use_cases.html" title="previous chapter">Use cases</a></li>
<li>Next: <a href="../releasenotes/0.0.10-changelog.html" title="next chapter">MediaCurator 0.0.10 Release Notes</a></li> <li>Next: <a href="../releasenotes/1.0.1-changelog.html" title="next chapter">mediacurator 1.0.1 Release Notes</a></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -127,18 +147,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/errors.rst.txt" <a href="../_sources/usage/errors.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Installation &#8212; MediaCurator documentation</title> <title>Installation &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Quickstart" href="quickstart.html" /> <link rel="next" title="Quickstart" href="quickstart.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,18 +30,76 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="installation"> <section id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h1> <h1>Installation<a class="headerlink" href="#installation" title="Link to this heading"></a></h1>
<p>This package has only been tested on GNU/Linux &amp; Windows and requires FFMPEG installed. For now it will be distributed on <a class="reference external" href="https://github.com/fabquenneville/MediaCurator.git">GitHub</a></p> <section id="table-of-contents">
<section id="install-ffmpeg"> <span id="install-toc"></span><h2>Table of contents<a class="headerlink" href="#table-of-contents" title="Link to this heading"></a></h2>
<h2>Install FFmpeg<a class="headerlink" href="#install-ffmpeg" title="Permalink to this heading"></a></h2> <ul class="simple">
<p><a class="reference external" href="https://ffmpeg.org/download.html">Download FFmpeg</a></p> <li><p><a class="reference internal" href="#install-about"><span class="std std-ref">About mediacurators installation</span></a></p></li>
<li><p><a class="reference internal" href="#install-apt"><span class="std std-ref">Install from APT Repository</span></a></p></li>
<li><p><a class="reference internal" href="#install-pypi"><span class="std std-ref">Install from PyPi</span></a></p></li>
<li><p><a class="reference internal" href="#install-ffmpeg"><span class="std std-ref">Install FFmpeg</span></a></p></li>
</ul>
</section>
<section id="about-mediacurator-s-installation">
<span id="install-about"></span><h2>About mediacurators installation<a class="headerlink" href="#about-mediacurator-s-installation" title="Link to this heading"></a></h2>
<p>This package has been tested on GNU/Linux (e.g., Debian, Ubuntu, Fedora) and Windows, and requires FFmpeg to be installed. For now, it will be distributed on <a class="reference external" href="https://github.com/fabquenneville/mediacurator.git">GitHub</a>.</p>
</section>
<section id="install-from-apt-repository">
<span id="install-apt"></span><h2>Install from APT Repository<a class="headerlink" href="#install-from-apt-repository" title="Link to this heading"></a></h2>
<p>The <cite>mediacurator</cite> package is now available through an APT repository. To install it along with all its dependencies (including Python, required Python packages, and FFmpeg) on a Debian/Ubuntu compatible system, follow these steps:</p>
<ol class="arabic">
<li><p>Add the APT repository to your system by following the instructions at the <a class="reference external" href="https://debrepo.fabq.ca/">repository homepage</a>.</p></li>
<li><p>Update your package list:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update
</pre></div>
</div>
</li>
<li><p>Install <cite>mediacurator</cite>:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>mediacurator
</pre></div>
</div>
</li>
</ol>
<p>This will automatically install the <cite>mediacurator</cite> package and all its dependencies.</p>
</section> </section>
<section id="install-from-pypi"> <section id="install-from-pypi">
<h2>Install from PyPi<a class="headerlink" href="#install-from-pypi" title="Permalink to this heading"></a></h2> <span id="install-pypi"></span><h2>Install from PyPi<a class="headerlink" href="#install-from-pypi" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span>pip install MediaCurator <p>You can install the <cite>mediacurator</cite> package directly from PyPi using the following command:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span>mediacurator
</pre></div>
</div>
<p><strong>Note:</strong> If FFmpeg is not already installed, please refer to the instructions in the <a class="reference internal" href="#install-ffmpeg"><span class="std std-ref">Install FFmpeg</span></a> section.</p>
</section>
<section id="install-ffmpeg">
<span id="id1"></span><h2>Install FFmpeg<a class="headerlink" href="#install-ffmpeg" title="Link to this heading"></a></h2>
<p>To install FFmpeg, you can follow the instructions for your platform:</p>
<ul>
<li><dl>
<dt><strong>On Debian and Ubuntu</strong>:</dt><dd><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update
sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>ffmpeg
</pre></div>
</div>
</dd>
</dl>
</li>
<li><dl>
<dt><strong>On Fedora</strong>:</dt><dd><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span>ffmpeg
</pre></div>
</div>
</dd>
</dl>
</li>
<li><p><strong>On Windows</strong>:
- Download the latest build from <a class="reference external" href="https://ffmpeg.org/download.html">FFmpeg</a>.
- Follow the installation instructions provided on the site.</p></li>
</ul>
<p>To verify your FFmpeg installation, you can run:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ffmpeg<span class="w"> </span>-version
</pre></div> </pre></div>
</div> </div>
</section> </section>
@ -49,14 +107,15 @@
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -70,8 +129,11 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li> <li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#install-ffmpeg">Install FFmpeg</a></li> <li class="toctree-l2"><a class="reference internal" href="#table-of-contents">Table of contents</a></li>
<li class="toctree-l2"><a class="reference internal" href="#about-mediacurator-s-installation">About mediacurators installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#install-from-apt-repository">Install from APT Repository</a></li>
<li class="toctree-l2"><a class="reference internal" href="#install-from-pypi">Install from PyPi</a></li> <li class="toctree-l2"><a class="reference internal" href="#install-from-pypi">Install from PyPi</a></li>
<li class="toctree-l2"><a class="reference internal" href="#install-ffmpeg">Install FFmpeg</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> <li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
@ -81,6 +143,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -100,7 +178,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -108,18 +186,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/installation.rst.txt" <a href="../_sources/usage/installation.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Manual &#8212; MediaCurator documentation</title> <title>Manual &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Use cases" href="use_cases.html" /> <link rel="next" title="Use cases" href="use_cases.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,148 +30,218 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="manual"> <section id="manual">
<h1>Manual<a class="headerlink" href="#manual" title="Permalink to this heading"></a></h1> <h1>Manual<a class="headerlink" href="#manual" title="Link to this heading"></a></h1>
<section id="name"> <section id="name">
<h2>Name<a class="headerlink" href="#name" title="Permalink to this heading"></a></h2> <h2>Name<a class="headerlink" href="#name" title="Link to this heading"></a></h2>
<p>MediaCurator</p> <p>mediacurator</p>
</section> </section>
<section id="synopsis"> <section id="synopsis">
<h2>Synopsis<a class="headerlink" href="#synopsis" title="Permalink to this heading"></a></h2> <h2>Synopsis<a class="headerlink" href="#synopsis" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator <span class="o">[</span>list,convert<span class="o">]</span> <span class="o">[</span>-del<span class="o">]</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>&lt;command&gt;<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
<span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm<span class="o">]</span>
<span class="o">[</span>-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv,vob<span class="o">]</span> mediacurator<span class="w"> </span><span class="o">[</span>list<span class="w"> </span>convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del/--delete<span class="o">]</span>
<span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span> <span class="w"> </span><span class="o">[</span>-i/--inputs<span class="w"> </span>any<span class="w"> </span>3gp<span class="w"> </span>asf<span class="w"> </span>avi<span class="w"> </span>divx<span class="w"> </span>dv<span class="w"> </span>f4v<span class="w"> </span>flv<span class="w"> </span>gif<span class="w"> </span>m2ts<span class="w"> </span>m4v<span class="w"> </span>mkv<span class="w"> </span>mov<span class="w"> </span>mp4<span class="w"> </span>mpeg<span class="w"> </span>mpg<span class="w"> </span>mts<span class="w"> </span>ogm<span class="w"> </span>ogv<span class="w"> </span>rm<span class="w"> </span>swf<span class="w"> </span>ts<span class="w"> </span>vid<span class="w"> </span>vob<span class="w"> </span>webm<span class="w"> </span>wmv<span class="o">]</span>
<span class="o">[</span>-print:list,formated,verbose<span class="o">]</span> <span class="w"> </span><span class="o">[</span>-fl/--filters<span class="w"> </span>fferror<span class="w"> </span>old<span class="w"> </span>lowres<span class="w"> </span>hd<span class="w"> </span>720p<span class="w"> </span>1080p<span class="w"> </span>uhd<span class="w"> </span>mpeg<span class="w"> </span>mpeg4<span class="w"> </span>x264<span class="w"> </span>wmv3<span class="w"> </span>wmv<span class="o">]</span>
<span class="o">[</span>-dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span> <span class="w"> </span><span class="o">[</span>-o/--outputs<span class="w"> </span>mkv/mp4<span class="w"> </span>x265/av1<span class="o">]</span>
</pre></div> <span class="w"> </span><span class="o">[</span>-p/--printop<span class="w"> </span>list<span class="w"> </span>formatted<span class="w"> </span>verbose<span class="o">]</span>
</div> <span class="w"> </span><span class="o">[</span>-d/--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
<p><strong>for multiple files or filenames use double comma separated values “,,”</strong></p> <span class="w"> </span><span class="o">[</span>-f/--files<span class="w"> </span><span class="s2">&quot;file1.ext&quot;</span><span class="w"> </span><span class="s2">&quot;file2.ext&quot;</span><span class="o">]</span>
<p>default options are:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-in:any
-filters:
-out:mkv,x265
-print:list
</pre></div> </pre></div>
</div> </div>
<p><strong>Available commands:</strong>
- <cite>list</cite>: List all videos with specified filters.
- <cite>convert</cite>: Convert videos to specified formats.</p>
<p><strong>Options:</strong></p>
<ul class="simple">
<li><p><cite>-del</cite> or <cite>delete</cite>: Delete found results after successful operations. <strong>Use with caution</strong>.</p></li>
<li><p><cite>-i &lt;input&gt;</cite> or <cite>inputs &lt;input&gt;</cite>: Specify input file formats (default: <cite>any</cite>).</p></li>
<li><p><cite>-fl &lt;filter&gt;</cite> or <cite>filters &lt;filter&gt;</cite>: Apply filters to the selection of videos.</p></li>
<li><p><cite>-o &lt;output&gt;</cite> or <cite>outputs &lt;output&gt;</cite>: Specify output formats (default: <cite>mkv</cite>, <cite>x265</cite>).</p></li>
<li><p><cite>-p &lt;print_option&gt;</cite> or <cite>printop &lt;print_option&gt;</cite>: Set print options (default: <cite>list</cite>).</p></li>
<li><p><cite>-f &lt;file&gt;</cite> or <cite>files &lt;file&gt;</cite>: Specify files to process.</p></li>
<li><p><cite>-d &lt;directory&gt;</cite> or <cite>dirs &lt;directory&gt;</cite>: Specify directories to process.</p></li>
</ul>
<p><strong>For multiple files or filenames, use space-separated values ( ).</strong></p>
<p><strong>Default options (if not specified):</strong></p>
<ul class="simple">
<li><p><cite>-i/inputs</cite>: <cite>any</cite></p></li>
<li><p><cite>-fl/filters</cite>: (none)</p></li>
<li><p><cite>-o/outputs</cite>: <cite>mkv</cite>, <cite>x265</cite></p></li>
<li><p><cite>-p/printop</cite>: <cite>list</cite></p></li>
</ul>
</section> </section>
<section id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Link to this heading"></a></h2>
<p>MediaCurator is a Python command line tool to manage a media database.</p> <p><strong>mediacurator</strong> is a Python command-line tool designed to manage a media database. It allows you to:</p>
<ul class="simple"> <ul class="simple">
<li><p>List all the videos and their information with or without filters</p></li> <li><p>List all videos and their metadata, optionally filtered by specified criteria.</p></li>
<li><p>Batch find and repair/convert videos with encoding errors</p></li> <li><p>Batch find, repair, or convert videos with encoding errors.</p></li>
<li><p>Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …</p></li> <li><p>Batch recode videos to modern codecs (e.g., x265, AV1) based on filters (e.g., container, codec, resolution).</p></li>
</ul> </ul>
</section> </section>
<section id="options"> <section id="options">
<h2>Options<a class="headerlink" href="#options" title="Permalink to this heading"></a></h2> <h2>Options<a class="headerlink" href="#options" title="Link to this heading"></a></h2>
<section id="list"> <section id="list">
<h3>list<a class="headerlink" href="#list" title="Permalink to this heading"></a></h3> <h3>list<a class="headerlink" href="#list" title="Link to this heading"></a></h3>
<p>Search and list videos filtered by the parameters passed by the user.</p> <blockquote>
<div><p>Search and list videos filtered by the user-provided parameters.</p>
</div></blockquote>
</section> </section>
<section id="convert"> <section id="convert">
<h3>convert<a class="headerlink" href="#convert" title="Permalink to this heading"></a></h3> <h3>convert<a class="headerlink" href="#convert" title="Link to this heading"></a></h3>
<p>Search and convert all videos filtered by the parameters passed by the user.</p> <blockquote>
<div><p>Search and convert all videos filtered by the user-provided parameters.</p>
</div></blockquote>
</section> </section>
<section id="del"> <section id="delete">
<h3>-del:<a class="headerlink" href="#del" title="Permalink to this heading"></a></h3> <h3>delete<a class="headerlink" href="#delete" title="Link to this heading"></a></h3>
<p>Delete all original videos once selected operations have been done succefully.</p> <blockquote>
<div><p>Short form: <cite>-del</cite></p>
<p>Deletes the original videos after successful completion of operations (e.g., conversion or listing). <strong>Use with caution</strong>.</p>
<p>See <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p> <p>See <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p>
</div></blockquote>
</section> </section>
<section id="in"> <section id="inputs">
<h3>-in:<a class="headerlink" href="#in" title="Permalink to this heading"></a></h3> <h3>inputs<a class="headerlink" href="#inputs" title="Link to this heading"></a></h3>
<p>[<strong>any</strong>,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm]</p> <blockquote>
<p>Search all videos of the selected container <strong>extensions</strong> in the directories. By default it will include any file format.</p> <div><p>Short form: <cite>-i</cite></p>
<p>[<strong>any</strong>, 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]</p>
<p>Filters videos by file format (container extensions). The default is <cite>any</cite>, meaning all formats are included.</p>
</div></blockquote>
</section> </section>
<section id="filters"> <section id="filters">
<h3>-filters:<a class="headerlink" href="#filters" title="Permalink to this heading"></a></h3> <h3>filters<a class="headerlink" href="#filters" title="Link to this heading"></a></h3>
<p>[fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]</p> <blockquote>
<p>Filter the selected videos for parameters:</p> <div><p>Short form: <cite>-fl</cite></p>
<p>[fferror, old, lowres, hd, 720p, 1080p, uhd, mpeg, mpeg4, x264, wmv3, wmv]</p>
<p>Filters videos based on specific criteria:</p>
<ul class="simple"> <ul class="simple">
<li><p>fferror: Select all videos with encoding errors (See <a class="reference internal" href="errors.html"><span class="doc">Errors</span></a>)</p></li> <li><p><strong>fferror</strong>: Select videos with encoding errors (see <a class="reference internal" href="errors.html"><span class="doc">Errors</span></a>)</p></li>
<li><p>old: Select all videos using old codecs (Everything except hevc or av1)</p></li> <li><p><strong>old</strong>: Select videos using outdated codecs (anything except hevc or av1)</p></li>
<li><p>hd: 720p, 1080p, uhd</p></li> <li><p><strong>hd</strong>: Select videos in HD (720p, 1080p, UHD)</p></li>
<li><p>lowres: Everything not hd</p></li> <li><p><strong>lowres</strong>: Select videos that are not in HD</p></li>
<li><p>uhd: if width &gt;= 2160 or height &gt;= 2160</p></li> <li><p><strong>uhd</strong>: Select Ultra-HD videos (width or height &gt;= 2160)</p></li>
<li><p>1080p: if less than uhd and width &gt;= 1440 or height &gt;= 1080</p></li> <li><p><strong>1080p</strong>: Select Full-HD videos (1440 &lt;= width &lt; 2160 or 1080 &lt;= height &lt; 2160)</p></li>
<li><p>720p: if less than 1080p and width &gt;= 1280 or height &gt;= 720:</p></li> <li><p><strong>720p</strong>: Select HD videos (1280 &lt;= width &lt; 1440 or 720 &lt;= height &lt; 1080)</p></li>
<li><p>sd: if less than 720p and if height &gt;= 480</p></li> <li><p><strong>sd</strong>: Select standard-definition videos (480 &lt;= height &lt; 720)</p></li>
<li><p>subsd: Substandard definitions: Everything under 480p</p></li> <li><p><strong>subsd</strong>: Select substandard-definition videos (height &lt; 480)</p></li>
<li><p>mpeg,mpeg4,x264,wmv3,wmv,vob: Filter for videos encoded in the requested video codec</p></li> <li><p><strong>mpeg, mpeg4, x264, wmv3, wmv, vob</strong>: Filter by video codec</p></li>
</ul> </ul>
</div></blockquote>
</section> </section>
<section id="out"> <section id="outputs">
<h3>-out:<a class="headerlink" href="#out" title="Permalink to this heading"></a></h3> <h3>outputs<a class="headerlink" href="#outputs" title="Link to this heading"></a></h3>
<p>[<strong>mkv</strong>/mp4,x265/av1]</p> <blockquote>
<p>Select the outputs for the video conversions</p> <div><p>Short form: <cite>-o</cite></p>
<p>[<strong>mkv</strong>/mp4, x265/av1]</p>
<p>Specifies the output format for video conversions:</p>
<ul class="simple"> <ul class="simple">
<li><p>mkv: (<strong>Default</strong>) Package the resulting video in a <a class="reference external" href="https://en.wikipedia.org/wiki/Matroska">Matroska</a> container.</p></li> <li><p><strong>mkv</strong>: (<strong>Default</strong>) Package the output video in a <a class="reference external" href="https://en.wikipedia.org/wiki/Matroska">Matroska</a> container.</p></li>
<li><p>mp4: Package the resulting video in a container.</p></li> <li><p><strong>mp4</strong>: Package the output video in an MP4 container.</p></li>
<li><p>x265/hevc: (<strong>Default</strong>) Encode the video using the <a class="reference external" href="https://en.wikipedia.org/wiki/X265">x265</a> compression format.</p></li> <li><p><strong>x265</strong> or <strong>hevc</strong>: (<strong>Default</strong>) Encode the video using <a class="reference external" href="https://en.wikipedia.org/wiki/X265">x265</a> (HEVC).</p></li>
<li><p>av1: Encode the video using the <a class="reference external" href="https://en.wikipedia.org/wiki/AV1">AOMedia Video 1</a> compression format. This will be used as default once the developpers at FFmpeg move it out of <a class="reference external" href="https://trac.ffmpeg.org/wiki/Encode/AV1">experimental</a> .</p></li> <li><p><strong>av1</strong>: Encode the video using <a class="reference external" href="https://en.wikipedia.org/wiki/AV1">AOMedia Video 1</a> (AV1).</p></li>
</ul> </ul>
</div></blockquote>
</section> </section>
<section id="print"> <section id="printop">
<h3>-print:<a class="headerlink" href="#print" title="Permalink to this heading"></a></h3> <h3>printop<a class="headerlink" href="#printop" title="Link to this heading"></a></h3>
<p>[<strong>list</strong>,formated,verbose]</p> <blockquote>
<div><p>Short form: <cite>-p</cite></p>
<p>[<strong>list</strong>, formatted, verbose]</p>
<p>Specifies how the output should be displayed:</p>
<ul class="simple"> <ul class="simple">
<li><p>list: (<strong>Default</strong>) Print the information about the videos on a single line</p></li> <li><p><strong>list</strong>: (<strong>Default</strong>) Prints video info in a concise, single-line format.</p></li>
</ul> </ul>
<a class="reference internal image-reference" href="../_images/Screenshot-print_list-single.png"><img alt="Deleting videos" src="../_images/Screenshot-print_list-single.png" style="width: 600px;" /></a> <a class="reference internal image-reference" href="../_images/Screenshot-print_list-single.png"><img alt="List videos (single-line output)" src="../_images/Screenshot-print_list-single.png" style="width: 600px;" />
</a>
<ul class="simple"> <ul class="simple">
<li><p>formated: Print the information in an aerated format</p></li> <li><p><strong>formatted</strong>: Prints video info in a more readable format with line breaks.</p></li>
</ul> </ul>
<a class="reference internal image-reference" href="../_images/Screenshot-print_formated-single.png"><img alt="Deleting videos" src="../_images/Screenshot-print_formated-single.png" style="width: 400px;" /></a> <a class="reference internal image-reference" href="../_images/Screenshot-print_formatted-single.png"><img alt="List videos (formatted output)" src="../_images/Screenshot-print_formatted-single.png" style="width: 400px;" />
</a>
<ul class="simple"> <ul class="simple">
<li><p>verbose: Print the FFmpeg output during the video conversions</p></li> <li><p><strong>verbose</strong>: Prints the FFmpeg output during conversions.</p></li>
</ul> </ul>
</div></blockquote>
</section> </section>
<section id="dirs"> <section id="dirs">
<h3>-dirs:<a class="headerlink" href="#dirs" title="Permalink to this heading"></a></h3> <h3>dirs<a class="headerlink" href="#dirs" title="Link to this heading"></a></h3>
<p>[“/mnt/media/”,,”/mnt/media2/”]</p> <blockquote>
<p>The directories to scan as a <strong>double comma</strong> separated values list.</p> <div><p>Short form: <cite>-d</cite></p>
<p>[“/mnt/media/”, “/mnt/media2/”]</p>
<p>Specifies directories to scan, separated by spaces.</p>
</div></blockquote>
</section> </section>
<section id="files"> <section id="files">
<h3>-files:<a class="headerlink" href="#files" title="Permalink to this heading"></a></h3> <h3>files<a class="headerlink" href="#files" title="Link to this heading"></a></h3>
<p>[“/mnt/media/video.avi”,,”/mnt/media2/video2.mp4”]</p> <blockquote>
<p>Specific videos to include as a <strong>double comma</strong> separated values list.</p> <div><p>Short form: <cite>-f</cite></p>
<p>[“/mnt/media/video.avi”, “/mnt/media2/video2.mp4”]</p>
<p>Specifies individual video files to process, separated by spaces.</p>
</div></blockquote>
</section> </section>
</section> </section>
<section id="examples"> <section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this heading"></a></h2> <h2>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># List all videos with old codec in formated format</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># This command lists all videos in the specified directories that use old codecs and</span>
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ &gt;&gt; ../medlist.txt <span class="c1"># formats the output.</span>
<span class="c1"># Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals</span> mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>old<span class="w"> </span>--printop<span class="w"> </span>formatted<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
<span class="c1"># Convert any video with avi or mpg extensions, print formated text including ffmpeg&#39;s output and then delete the originals</span> <span class="c1"># This command converts all MPEG4 videos found in the specified directories to AV1 format</span>
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ <span class="c1"># in MP4 containers and deletes the originals.</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>mpeg4<span class="w"> </span>--outputs<span class="w"> </span>av1<span class="w"> </span>mp4<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
<span class="c1"># This command converts AVI or MPG videos, displays detailed output during conversion, and</span>
<span class="c1"># deletes originals.</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--inputs<span class="w"> </span>avi<span class="w"> </span>mpg<span class="w"> </span>--printop<span class="w"> </span>formatted<span class="w"> </span>verbose<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>More examples in <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p> <p>For more examples, see <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
</section> </section>
<section id="see-also"> <section id="see-also">
<h2>See Also<a class="headerlink" href="#see-also" title="Permalink to this heading"></a></h2> <h2>See Also<a class="headerlink" href="#see-also" title="Link to this heading"></a></h2>
<p><a class="reference external" href="https://ffmpeg.org/">FFmpeg</a></p> <ul class="simple">
<li><p><a class="reference external" href="https://ffmpeg.org/">FFmpeg</a></p></li>
</ul>
</section>
<section id="glossary">
<h2>Glossary<a class="headerlink" href="#glossary" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Codec</strong>: A program or device that compresses and decompresses digital media.</p></li>
<li><p><strong>Container</strong>: A file format that holds video, audio, and metadata.</p></li>
<li><p><strong>UHD</strong>: Ultra High Definition, refers to video resolutions of 3840x2160 pixels or higher.</p></li>
</ul>
</section>
<section id="error-handling">
<h2>Error Handling<a class="headerlink" href="#error-handling" title="Link to this heading"></a></h2>
<p>Common issues users might encounter include:</p>
<ul class="simple">
<li><p><strong>Encoding Errors</strong>: If videos have encoding errors, they can be filtered using the <cite>filters fferror</cite> option.</p></li>
<li><p><strong>Unsupported Formats</strong>: Ensure that input formats specified in <cite>inputs</cite> are supported by mediacurator.</p></li>
</ul>
</section> </section>
<section id="author"> <section id="author">
<h2>Author<a class="headerlink" href="#author" title="Permalink to this heading"></a></h2> <h2>Author<a class="headerlink" href="#author" title="Link to this heading"></a></h2>
<p>Fabrice Quenneville</p> <p>Fabrice Quenneville</p>
</section> </section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -193,6 +263,8 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
<li class="toctree-l2"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l2"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="#examples">Examples</a></li> <li class="toctree-l2"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="#see-also">See Also</a></li> <li class="toctree-l2"><a class="reference internal" href="#see-also">See Also</a></li>
<li class="toctree-l2"><a class="reference internal" href="#glossary">Glossary</a></li>
<li class="toctree-l2"><a class="reference internal" href="#error-handling">Error Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="#author">Author</a></li> <li class="toctree-l2"><a class="reference internal" href="#author">Author</a></li>
</ul> </ul>
</li> </li>
@ -201,6 +273,22 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -220,7 +308,7 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -228,18 +316,26 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/manual.rst.txt" <a href="../_sources/usage/manual.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Quickstart &#8212; MediaCurator documentation</title> <title>Quickstart &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Manual" href="manual.html" /> <link rel="next" title="Manual" href="manual.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,48 +30,71 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="quickstart"> <section id="quickstart">
<h1>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this heading"></a></h1> <h1>Quickstart<a class="headerlink" href="#quickstart" title="Link to this heading"></a></h1>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator <span class="o">[</span>list,convert<span class="o">]</span> <span class="o">[</span>-del<span class="o">]</span> <p>To use <cite>mediacurator</cite>, execute the following command structure:</p>
<span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm<span class="o">]</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>&lt;command&gt;<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
<span class="o">[</span>-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv<span class="o">]</span>
<span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span> mediacurator<span class="w"> </span><span class="o">[</span>list<span class="w"> </span>convert<span class="o">]</span><span class="w"> </span><span class="o">[</span>-del/--delete<span class="o">]</span>
<span class="o">[</span>-print:list,formated,verbose<span class="o">]</span> <span class="w"> </span><span class="o">[</span>-i/--inputs<span class="w"> </span>any<span class="w"> </span>3gp<span class="w"> </span>asf<span class="w"> </span>avi<span class="w"> </span>divx<span class="w"> </span>dv<span class="w"> </span>f4v<span class="w"> </span>flv<span class="w"> </span>gif<span class="w"> </span>m2ts<span class="w"> </span>m4v<span class="w"> </span>mkv<span class="w"> </span>mov<span class="w"> </span>mp4<span class="w"> </span>mpeg<span class="w"> </span>mpg<span class="w"> </span>mts<span class="w"> </span>ogm<span class="w"> </span>ogv<span class="w"> </span>rm<span class="w"> </span>swf<span class="w"> </span>ts<span class="w"> </span>vid<span class="w"> </span>vob<span class="w"> </span>webm<span class="w"> </span>wmv<span class="o">]</span>
<span class="o">[</span>-dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span>,,<span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span> <span class="w"> </span><span class="o">[</span>-fl/--filters<span class="w"> </span>fferror<span class="w"> </span>old<span class="w"> </span>lowres<span class="w"> </span>hd<span class="w"> </span>720p<span class="w"> </span>1080p<span class="w"> </span>uhd<span class="w"> </span>mpeg<span class="w"> </span>mpeg4<span class="w"> </span>x264<span class="w"> </span>wmv3<span class="w"> </span>wmv<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-o/--outputs<span class="w"> </span>mkv/mp4<span class="w"> </span>x265/av1<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-p/--printop<span class="w"> </span>list<span class="w"> </span>formatted<span class="w"> </span>verbose<span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-d/--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span><span class="o">]</span>
<span class="w"> </span><span class="o">[</span>-f/--files<span class="w"> </span><span class="s2">&quot;file1.ext&quot;</span><span class="w"> </span><span class="s2">&quot;file2.ext&quot;</span><span class="o">]</span>
</pre></div> </pre></div>
</div> </div>
<p><strong>for multiple files or filenames use double comma separated values “,,”</strong></p> <p><strong>Available commands:</strong>
<p>default options are:</p> - <cite>list</cite>: List all videos with specified filters.
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>-in:any - <cite>convert</cite>: Convert videos to specified formats.</p>
-filters: <p><strong>Options:</strong></p>
-out:mkv,x265 <ul class="simple">
-print:list <li><p><cite>-del</cite> or <cite>delete</cite>: Delete found results after successful operations.</p></li>
<li><p><cite>-i &lt;input&gt;</cite> or <cite>inputs &lt;input&gt;</cite>: Specify input file formats (default: <cite>any</cite>).</p></li>
<li><p><cite>-fl &lt;filter&gt;</cite> or <cite>filters &lt;filter&gt;</cite>: Apply filters to the selection of videos.</p></li>
<li><p><cite>-o &lt;output&gt;</cite> or <cite>outputs &lt;output&gt;</cite>: Specify output formats (default: <cite>mkv</cite>, <cite>x265</cite>).</p></li>
<li><p><cite>-p &lt;print_option&gt;</cite> or <cite>printop &lt;print_option&gt;</cite>: Set print options (default: <cite>list</cite>).</p></li>
<li><p><cite>-f &lt;file&gt;</cite> or <cite>files &lt;file&gt;</cite>: Specify files to process.</p></li>
<li><p><cite>-d &lt;directory&gt;</cite> or <cite>dirs &lt;directory&gt;</cite>: Specify directories to process.</p></li>
</ul>
<p><strong>For multiple files or filenames, use space-separated values ( ).</strong></p>
<p><strong>Default options:</strong></p>
<ul class="simple">
<li><p><cite>-i/inputs any</cite></p></li>
<li><p><cite>-fl/filters</cite></p></li>
<li><p><cite>-o/outputs mkv x265</cite></p></li>
<li><p><cite>-p/printop list</cite></p></li>
</ul>
<p><strong>Examples:</strong></p>
<p>The following examples demonstrate how to use <cite>mediacurator</cite> with the options listed above:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># List all videos with an old codec in formatted format</span>
mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>old<span class="w"> </span>--printop<span class="w"> </span>formatted<span class="w"> </span>--dirs<span class="w"> </span>/mnt/media/<span class="w"> </span>&gt;&gt;<span class="w"> </span>../medlist.txt
<span class="c1"># Convert all videos with the MPEG4 codec to MP4 using the AV1 codec and delete the originals</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>mpeg4<span class="w"> </span>--outputs<span class="w"> </span>av1,mp4<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/Movies/&quot;</span>
<span class="c1"># Convert any video with AVI or MPG extensions, print formatted text including FFmpeg&#39;s output, and then delete the originals</span>
mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--inputs<span class="w"> </span>avi,mpg<span class="w"> </span>--printop<span class="w"> </span>formatted,verbose<span class="w"> </span>--dirs<span class="w"> </span>/mnt/media/
</pre></div> </pre></div>
</div> </div>
<p>Examples:</p> <p>For more examples, see <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a>.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># List all videos with old codec in formated format</span>
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ &gt;&gt; ../medlist.txt
<span class="c1"># Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals</span>
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
<span class="c1"># Convert any video with avi or mpg extensions, print formated text including ffmpeg&#39;s output and then delete the originals</span>
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</pre></div>
</div>
<p>More examples in <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -92,6 +115,22 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -111,7 +150,7 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -119,18 +158,26 @@ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/quickstart.rst.txt" <a href="../_sources/usage/quickstart.rst.txt"

View File

@ -1,20 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Use cases &#8212; MediaCurator documentation</title> <title>Use cases &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Errors" href="errors.html" /> <link rel="next" title="Errors" href="errors.html" />
@ -22,7 +20,9 @@
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,11 +30,13 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="use-cases"> <section id="use-cases">
<h1>Use cases<a class="headerlink" href="#use-cases" title="Permalink to this heading"></a></h1> <h1>Use cases<a class="headerlink" href="#use-cases" title="Link to this heading"></a></h1>
<p>The main reasons to use MediaCurator would be the following:</p> <p>The main reasons to use mediacurator would be the following:</p>
<ul class="simple"> <ul class="simple">
<li><dl class="simple"> <li><dl class="simple">
<dt><a class="reference internal" href="#list-cmd"><span class="std std-ref">Print information</span></a> on a video library such as:</dt><dd><ul> <dt><a class="reference internal" href="#list-cmd"><span class="std std-ref">Print information</span></a> on a video library such as:</dt><dd><ul>
@ -50,59 +52,59 @@
<li><p><a class="reference internal" href="#convert"><span class="std std-ref">Batch re-encode</span></a> videos from an old codec to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a></p></li> <li><p><a class="reference internal" href="#convert"><span class="std std-ref">Batch re-encode</span></a> videos from an old codec to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a></p></li>
</ul> </ul>
<section id="print-information"> <section id="print-information">
<span id="list-cmd"></span><h2>Print information<a class="headerlink" href="#print-information" title="Permalink to this heading"></a></h2> <span id="list-cmd"></span><h2>Print information<a class="headerlink" href="#print-information" title="Link to this heading"></a></h2>
<p>List all videos with old codec in formated format</p> <p>List all videos with old codec in formatted output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:old -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>old<span class="w"> </span>--printop<span class="w"> </span>formatted<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>List all videos with substandard definitions with a formated output</p> <p>List all videos with substandard definitions with a formatted output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:subsd -print:formated -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>subsd<span class="w"> </span>--printop<span class="w"> </span>formatted<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
</section> </section>
<section id="purge"> <section id="purge">
<span id="id1"></span><h2>Purge<a class="headerlink" href="#purge" title="Permalink to this heading"></a></h2> <span id="id1"></span><h2>Purge<a class="headerlink" href="#purge" title="Link to this heading"></a></h2>
<p>Please see <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p> <p>Please see <a class="reference internal" href="warnings.html"><span class="doc">Warnings</span></a></p>
<p>List and delete all videos using the <a class="reference external" href="https://en.wikipedia.org/wiki/Windows_Media_Video">Windows Media Video</a> codecs</p> <p>List and delete all videos using the <a class="reference external" href="https://en.wikipedia.org/wiki/Windows_Media_Video">Windows Media Video</a> codecs</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:wmv -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>wmv<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>List and delete all videos using an <a class="reference external" href="https://en.wikipedia.org/wiki/Audio_Video_Interleave">Audio Video Interleave</a></p> <p>List and delete all videos using <a class="reference external" href="https://en.wikipedia.org/wiki/Audio_Video_Interleave">Audio Video Interleave</a></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -in:avi -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--inputs<span class="w"> </span>avi<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>List and delete any videos with encoding errors</p> <p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
</section> </section>
<section id="batch-repair-encoding-errors"> <section id="batch-repair-encoding-errors">
<span id="fferror"></span><h2>Batch repair encoding errors<a class="headerlink" href="#batch-repair-encoding-errors" title="Permalink to this heading"></a></h2> <span id="fferror"></span><h2>Batch repair encoding errors<a class="headerlink" href="#batch-repair-encoding-errors" title="Link to this heading"></a></h2>
<p>List all videos with encoding errors</p> <p>List all videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>List and delete any videos with encoding errors</p> <p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>Convert all videos with encoding errors to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> and the delete the originals</p> <p>Convert all videos with encoding errors to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> and delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -del -filters:fferror -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
</section> </section>
<section id="batch-re-encode"> <section id="batch-re-encode">
<span id="convert"></span><h2>Batch re-encode<a class="headerlink" href="#batch-re-encode" title="Permalink to this heading"></a></h2> <span id="convert"></span><h2>Batch re-encode<a class="headerlink" href="#batch-re-encode" title="Link to this heading"></a></h2>
<p>Convert all videos with old codecs to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> to save space and delete the originals</p> <p>Convert all videos with old codecs to <a class="reference external" href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding">High Efficiency Video Coding</a> to save space and delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -del -filters:old -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>old<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec</p> <p>Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -filters:mpeg4 -out:av1,mkv -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--filters<span class="w"> </span>mpeg4<span class="w"> </span>--outputs<span class="w"> </span>av1,mkv<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>Convert any video with avi or mpg extensions, print formated text including ffmpegs output and then delete the originals</p> <p>Convert any video with avi or mpg extensions, print formatted text including ffmpegs output, and then delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--inputs<span class="w"> </span>avi,mpg<span class="w"> </span>--printop<span class="w"> </span>formatted,verbose<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span><span class="w"> </span><span class="s2">&quot;/mnt/media2/&quot;</span>
</pre></div> </pre></div>
</div> </div>
</section> </section>
@ -110,14 +112,15 @@
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -144,6 +147,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -163,7 +182,7 @@
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -171,18 +190,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/use_cases.rst.txt" <a href="../_sources/usage/use_cases.rst.txt"

View File

@ -1,28 +1,28 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-content_root="../">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Warnings &#8212; MediaCurator documentation</title> <title>Warnings &#8212; mediacurator documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" /> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=12dfc556" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=d9b65b63" />
<script src="../_static/jquery.js"></script> <script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/doctools.js"></script> <link rel="icon" href="../_static/favicon.ico"/>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Installation" href="installation.html" /> <link rel="next" title="Installation" href="installation.html" />
<link rel="prev" title="Welcome to MediaCurators documentation!" href="../index.html" /> <link rel="prev" title="Welcome to mediacurators documentation!" href="../index.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body> </head><body>
@ -30,47 +30,81 @@
<div class="document"> <div class="document">
<div class="documentwrapper"> <div class="documentwrapper">
<div class="bodywrapper"> <div class="bodywrapper">
<div class="body" role="main"> <div class="body" role="main">
<section id="warnings"> <section id="warnings">
<h1>Warnings<a class="headerlink" href="#warnings" title="Permalink to this heading"></a></h1> <h1>Warnings<a class="headerlink" href="#warnings" title="Link to this heading"></a></h1>
<p>Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as it can irreparably damage your media library when not used properly.</p> <div class="admonition warning">
<p>When using the -del flag here is the expected behavior:</p> <p class="admonition-title">Warning</p>
<p>To delete all non-hd videos in a folder:</p> <p>Before using the <strong>delete feature</strong>, we strongly recommend running several dry runs to get acquainted with <cite>mediacurator</cite>, as incorrect usage can cause irreversible damage to your media library.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:lowres -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> </div>
<p>The <cite>delete</cite> flag will <strong>permanently delete</strong> files, so it is crucial to ensure that the command is executed correctly. Below are some examples of how the delete feature works.</p>
<section id="example-use-cases-for-the-delete-flag">
<h2>Example use cases for the <cite>delete</cite> Flag<a class="headerlink" href="#example-use-cases-for-the-delete-flag" title="Link to this heading"></a></h2>
<ol class="arabic simple">
<li><p><strong>Delete all non-HD (low-resolution) videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>lowres<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>To delete all substandard videos in a folder:</p> <ol class="arabic simple" start="2">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:subsd -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <li><p><strong>Delete all substandard quality videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>subsd<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<a class="reference internal image-reference" href="../_images/Screenshot-delete.png"><img alt="Deleting videos" src="../_images/Screenshot-delete.png" style="width: 600px;" /></a> <a class="reference internal image-reference" href="../_images/Screenshot-delete.png"><img alt="Deleting videos" src="../_images/Screenshot-delete.png" style="width: 600px;" />
<p>To delete all videos in a folder with encoding errors:</p> </a>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:fferror -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <ol class="arabic simple" start="3">
<li><p><strong>Delete all videos in a folder with encoding errors:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>To convert (repair) then delete all videos in a folder with encoding errors:</p> <ol class="arabic simple" start="4">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -del -filters:fferror -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <li><p><strong>Convert (repair) and then delete all videos in a folder with encoding errors:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>convert<span class="w"> </span>--delete<span class="w"> </span>--filters<span class="w"> </span>fferror<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>To delete all videos in a folder:</p> <ol class="arabic simple" start="5">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:lowres -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <li><p><strong>Delete all videos in a folder:</strong></p></li>
</ol>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--delete<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div> </pre></div>
</div> </div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p> </section>
<p>Again, please try a few dry runs without -del until you are acquainted with MediaCurator.</p> <section id="important-notes">
<h2>Important Notes<a class="headerlink" href="#important-notes" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p><strong>Irreversibility</strong>: All of these commands involve permanent deletion. Once a file is deleted using the <cite>delete</cite> flag, it cannot be recovered.</p></li>
<li><p><strong>Run without `delete` first</strong>: Always perform several dry runs by omitting the <cite>delete</cite> flag to ensure that the correct files are selected for deletion. Familiarizing yourself with the tool before using destructive commands is essential to avoid unintended consequences.</p></li>
<li><p><strong>Specific File Selection</strong>: If youre unsure about applying filters to an entire directory, you can use the <cite>files</cite> option to target individual files for deletion or conversion, further reducing the risk of unintended deletions.</p></li>
<li><p><strong>Backup Recommendation</strong>: Before running any commands with the <cite>delete</cite> flag, it is a good practice to back up your media library or the specific directories being processed, especially if they contain valuable or irreplaceable files.</p></li>
</ul>
</section>
<section id="dry-run-example-without-deletion">
<h2>Dry run example (without deletion)<a class="headerlink" href="#dry-run-example-without-deletion" title="Link to this heading"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator<span class="w"> </span>list<span class="w"> </span>--filters<span class="w"> </span>lowres<span class="w"> </span>--dirs<span class="w"> </span><span class="s2">&quot;/mnt/media/&quot;</span>
</pre></div>
</div>
<p>Make sure you carefully verify the output and files selected during the dry runs to prevent accidental data loss.</p>
</section>
</section> </section>
</div> </div>
</div> </div>
</div> </div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper"> <div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html"> <p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/> <img class="logo" src="../_static/mclogo4x.png" alt="Logo of mediacurator"/>
</a></p> </a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1> <h1 class="logo"><a href="../index.html">mediacurator</a></h1>
@ -82,7 +116,12 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Usage:</span></p> <p class="caption" role="heading"><span class="caption-text">Usage:</span></p>
<ul class="current"> <ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Warnings</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Warnings</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#example-use-cases-for-the-delete-flag">Example use cases for the <cite>delete</cite> Flag</a></li>
<li class="toctree-l2"><a class="reference internal" href="#important-notes">Important Notes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dry-run-example-without-deletion">Dry run example (without deletion)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li> <li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li> <li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
@ -91,6 +130,22 @@
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p> <p class="caption" role="heading"><span class="caption-text">Release Notes:</span></p>
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/1.0.1-changelog.html">mediacurator 1.0.1 Release Notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Usage:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/manual.html">Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/use_cases.html">Use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../legacy_usage/errors.html">Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Legacy Release Notes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.13-changelog.html">MediaCurator 0.0.13 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.12-changelog.html">MediaCurator 0.0.12 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.11-changelog.html">MediaCurator 0.0.11 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.10-changelog.html">MediaCurator 0.0.10 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.9-changelog.html">MediaCurator 0.0.9 Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../releasenotes/0.0.8-changelog.html">MediaCurator 0.0.8 Release Notes</a></li>
@ -105,12 +160,12 @@
<h3>Related Topics</h3> <h3>Related Topics</h3>
<ul> <ul>
<li><a href="../index.html">Documentation overview</a><ul> <li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="../index.html" title="previous chapter">Welcome to MediaCurators documentation!</a></li> <li>Previous: <a href="../index.html" title="previous chapter">Welcome to mediacurators documentation!</a></li>
<li>Next: <a href="installation.html" title="next chapter">Installation</a></li> <li>Next: <a href="installation.html" title="next chapter">Installation</a></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
<div id="searchbox" style="display: none" role="search"> <search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3> <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper"> <div class="searchformwrapper">
<form class="search" action="../search.html" method="get"> <form class="search" action="../search.html" method="get">
@ -118,18 +173,26 @@
<input type="submit" value="Go" /> <input type="submit" value="Go" />
</form> </form>
</div> </div>
</div> </search>
<script>document.getElementById('searchbox').style.display = "block"</script> <script>document.getElementById('searchbox').style.display = "block"</script>
</div> </div>
</div> </div>
<div class="clearer"></div> <div class="clearer"></div>
</div> </div>
<div class="footer"> <div class="footer">
&copy;2020, Fabrice Quenneville. &#169;2020, Fabrice Quenneville.
| |
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
| |
<a href="../_sources/usage/warnings.rst.txt" <a href="../_sources/usage/warnings.rst.txt"

View File

@ -1,22 +1,22 @@
#!/bin/bash #!/bin/bash
source_path=$(readlink -f ../docs/) # Set paths relative to the root directory (.)
docs_path=$(readlink -f ../docs/) source_path=$(readlink -f ./docsource/source/)
docs_path=$(readlink -f ./docs/)
red='\033[0;31m' red='\033[0;31m'
cyan='\033[0;36m' cyan='\033[0;36m'
nc='\033[0m' nc='\033[0m'
printf "${cyan}Cleaning${nc} docs and build directories.\n" printf "${cyan}Cleaning${nc} docs and build directories.\n"
find ../docs -mindepth 1 -delete find ./docs -mindepth 1 -delete
find ./build -mindepth 1 -delete find ./docsource/build -mindepth 1 -delete
printf "${cyan}Generating${nc} sphinx build.\n" printf "${cyan}Generating${nc} sphinx build.\n"
sphinx-build -b html source build sphinx-build -b html $source_path ./docsource/build
printf "${cyan}Prepping${nc} for release.\n" printf "${cyan}Prepping${nc} for release.\n"
cp -r ./build/* ../docs/ cp -r ./docsource/build/* ./docs/
touch ../docs/.nojekyll touch ./docs/.nojekyll
printf "${cyan}Cleaning${nc} up and setting proper permissions\n" printf "${cyan}Cleaning${nc} up and setting proper permissions\n"
find ../docs/ -type d -exec chmod 755 {} \; find ./docs/ -type d -exec chmod 755 {} \;
find ../docs/ -type f -exec chmod 644 {} \; find ./docs/ -type f -exec chmod 644 {} \;
find ./build -mindepth 1 -delete find ./docsource/build -mindepth 1 -delete
printf "Documentation ${cyan}ready for release${nc} in: ${red}${docs_path}${nc}\n" printf "Documentation ${cyan}ready for release${nc} in: ${red}${docs_path}${nc}\n"

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

View File

@ -0,0 +1,57 @@
/* custom.css */
/* Add text wrap to code blocks */
/* pre {
white-space: pre-wrap;
} */
/* Add breakpoints for responsive design */
@media screen and (min-width: 1200px) {
/* Adjust layout for large screens */
div.document {
width: 90%; /* Adjust width for large screens */
margin: 30px auto; /* Center the document */
display: grid; /* Use grid layout */
grid-template-columns: 1fr 3fr; /* Sidebar takes 1/4, main content takes 3/4 of available space */
grid-template-areas: "sidebar main"; /* Define grid areas */
}
div.sphinxsidebar {
/* Add some content or set a min-width to ensure it occupies the grid area */
width: 100%; /* Example min-width */
grid-area: sidebar; /* Assign to sidebar grid area */
padding: 0 20px; /* Add padding to maintain spacing */
margin-top: 0;
margin-right: 20px;
margin-bottom: 0;
margin-left: 0; /* Adjust margins to fit within the layout */
}
div.bodywrapper {
/* Ensure it occupies the grid area */
width: 100%;
grid-area: main; /* Assign to main grid area */
padding: 0 20px; /* Add padding to maintain spacing */
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 20px; /* Adjust margins to fit within the layout */
}
}
@media screen and (max-width: 767px) {
/* Adjust layout for mobile phones */
body {
padding: 10px; /* Add padding to body for better spacing */
}
div.document {
width: 100%; /* Set width to full for mobile phones */
margin: 10px auto; /* Center the document */
display: block; /* Revert to block layout */
}
div.sphinxsidebar {
display: none; /* Hide sidebar on mobile phones */
}
}

View File

@ -14,21 +14,19 @@
# import sys # import sys
# sys.path.insert(0, os.path.abspath('.')) # sys.path.insert(0, os.path.abspath('.'))
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
project = 'MediaCurator' project = 'mediacurator'
copyright = '2020, Fabrice Quenneville' copyright = '2020, Fabrice Quenneville'
author = 'Fabrice Quenneville' author = 'Fabrice Quenneville'
version = '0.0.12' version = '0.0.13'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = [ extensions = []
]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@ -38,7 +36,6 @@ templates_path = ['_templates']
# This pattern also affects html_static_path and html_extra_path. # This pattern also affects html_static_path and html_extra_path.
exclude_patterns = [] exclude_patterns = []
# -- Options for HTML output ------------------------------------------------- # -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
@ -50,5 +47,6 @@ html_theme = 'alabaster'
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ['_static']
html_css_files = ['custom.css']
html_logo = '_static/mclogo4x.png' html_logo = '_static/mclogo4x.png'
html_favicon = '_static/favicon.ico' html_favicon = '_static/favicon.ico'

View File

@ -1,19 +1,26 @@
.. MediaCurator documentation master file, created by
sphinx-quickstart on Fri Nov 20 22:46:06 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
======================================== ========================================
Welcome to MediaCurator's documentation! Welcome to mediacurator's documentation!
======================================== ========================================
MediaCurator is a Python command line tool to manage a media database. mediacurator is a Python command line tool to manage a media database.
* List all the video's and their information with or without filters * List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors * Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions ... * Batch recode videos to more modern codecs (x265 / AV1) based on filters: extensions, codecs, resolutions ...
The source code can be found on `GitHub <https://github.com/fabquenneville/MediaCurator>`_ The source code can be found on `GitHub <https://github.com/fabquenneville/mediacurator>`_
.. warning::
**Breaking changes in version 1.0.1:**
Starting with version 1.0.1, the command-line interface (CLI) has undergone major changes, and the usage is **not backwards-compatible** with previous versions.
If you are using `mediacurator < 1.0.1`, please refer to the legacy documentation available below (:ref:`legacy_docs`).
----------------------------------------
Documentation
----------------------------------------
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
@ -30,6 +37,36 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
:maxdepth: 1 :maxdepth: 1
:caption: Release Notes: :caption: Release Notes:
releasenotes/1.0.1-changelog
----
.. _legacy_docs:
----------------------------------------
Legacy Documentation (Pre 1.0)
----------------------------------------
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. toctree::
:maxdepth: 1
:caption: Legacy Usage:
legacy_usage/warnings
legacy_usage/installation
legacy_usage/quickstart
legacy_usage/manual
legacy_usage/use_cases
legacy_usage/errors
.. toctree::
:maxdepth: 1
:caption: Legacy Release Notes:
releasenotes/0.0.13-changelog
releasenotes/0.0.12-changelog releasenotes/0.0.12-changelog
releasenotes/0.0.11-changelog releasenotes/0.0.11-changelog
releasenotes/0.0.10-changelog releasenotes/0.0.10-changelog

View File

@ -0,0 +1,41 @@
======
Errors
======
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
FFmpeg can detect quite a few errors in the encoding of your source video's encoding and can also be used to repair these errors.
Repairable Encoding Errors
--------------------------
Here are some example errors that mediacurator will print and can possibly repair by re-encoding:
* **"Referenced QT chapter track not found"**: Indicates that the video references a chapter that doesn't exist.
* **"Error, header damaged or not MPEG-4 header"**: The file's header is corrupted or missing.
* **"Header missing"**: The file lacks the necessary header information for decoding.
* **"SEI type"**: Issues related to SEI (Supplemental Enhancement Information) data.
* **"no frame!"**: No video frames available for processing.
* **"Error while decoding MPEG audio frame."**: Issues decoding the audio stream.
* **"big_values too big"**: Indicates that certain values in the file are larger than expected.
* ...
FFmpeg Issues
-------------
While using FFmpeg, you may encounter other errors (such as segfaults) depending on your version. Mediacurator will also print information when that occurs and will move on to the next video after cleaning up any failures.
If you experience these errors, consider the following steps:
* **Update FFmpeg**: Ensure you are using the latest version by downloading it from `ffmpeg.org <https://ffmpeg.org/download.html>`_, as many distributions provide outdated versions in their repositories.
* **Run with Verbose Option**: Execute mediacurator with the verbose print option, which will display the raw FFmpeg output for better troubleshooting.
* **Retry**: In my experience, some errors do not necessarily recur...
Other Bugs
----------
If you encounter other bugs, issues, or would like to suggest features, feel free to open a bug report on `GitHub <https://github.com/fabquenneville/mediacurator/issues>`_.
For further assistance, you can reach out through the GitHub repository or the projects support channels.

View File

@ -0,0 +1,45 @@
============
Installation
============
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
This package has been tested on GNU/Linux (e.g., Debian, Ubuntu, Fedora) and Windows, and requires FFmpeg to be installed. For now, it will be distributed on `GitHub <https://github.com/fabquenneville/mediacurator.git>`_.
Install FFmpeg
--------------
To install FFmpeg, you can follow the instructions for your platform:
- **On Debian and Ubuntu**:
.. code-block:: bash
sudo apt update
sudo apt install ffmpeg
- **On Fedora**:
.. code-block:: bash
sudo dnf install ffmpeg
- **On Windows**:
- Download the latest build from `FFmpeg <https://ffmpeg.org/download.html>`_.
- Follow the installation instructions provided on the site.
To verify your FFmpeg installation, you can run:
.. code-block:: bash
ffmpeg -version
Install from PyPi
-----------------
You can install the `mediacurator` package directly from PyPi using the following command:
.. code-block:: bash
pip install MediaCurator

View File

@ -0,0 +1,185 @@
======
Manual
======
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
Name
----
mediacurator
Synopsis
--------
.. code-block:: bash
mediacurator <command> [options]
mediacurator [list,convert] [-del]
[-in:any,avi,divx,flv,m4v,mkv,mp4,mpg,ogm,vid,webm,wmv]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv,vob]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**Available commands:**
- `list`: List all videos with specified filters.
- `convert`: Convert videos to specified formats.
**Options:**
- `-del`: Delete found results after successful operations. **Use with caution**.
- `-in <input>`: Specify input file formats (default: `any`).
- `-filters <filter>`: Apply filters to the selection of videos.
- `-out <output>`: Specify output formats (default: `mkv`, `x265`).
- `-print <print_option>`: Set print options (default: `list`).
- `-files <file>`: Specify files to process.
- `-dirs <directory>`: Specify directories to process.
**For multiple files or filenames, use double comma separated values (,,).**
**Default options (if not specified):**
- `-in`: `any`
- `-filters`: (none)
- `-out`: `mkv`, `x265`
- `-print`: `list`
Description
-----------
**mediacurator** is a Python command-line tool designed to manage a media database. It allows you to:
- List all videos and their metadata, optionally filtered by specified criteria.
- Batch find, repair, or convert videos with encoding errors.
- Batch recode videos to modern codecs (e.g., x265, AV1) based on filters (e.g., container, codec, resolution).
Options
-------
list
====
Search and list videos filtered by the user-provided parameters.
convert
=======
Search and convert all videos filtered by the user-provided parameters.
-del:
=====
Deletes the original videos after successful completion of operations (e.g., conversion or listing). **Use with caution**.
See :doc:`warnings`
-in:
====
[**any**, avi, divx, flv, m4v, mkv, mp4, mpg, ogm, vid, webm, wmv]
Filters videos by file format (container extensions). The default is `any`, meaning all formats are included.
-filters:
=========
[fferror, old, lowres, hd, 720p, 1080p, uhd, mpeg, mpeg4, x264, wmv3, wmv]
Filters videos based on specific criteria:
- **fferror**: Select videos with encoding errors (see :doc:`errors`)
- **old**: Select videos using outdated codecs (anything except hevc or av1)
- **hd**: Select videos in HD (720p, 1080p, UHD)
- **lowres**: Select videos that are not in HD
- **uhd**: Select Ultra-HD videos (width or height >= 2160)
- **1080p**: Select Full-HD videos (1440 <= width < 2160 or 1080 <= height < 2160)
- **720p**: Select HD videos (1280 <= width < 1440 or 720 <= height < 1080)
- **sd**: Select standard-definition videos (480 <= height < 720)
- **subsd**: Select substandard-definition videos (height < 480)
- **mpeg, mpeg4, x264, wmv3, wmv, vob**: Filter by video codec
-out:
=====
[**mkv**/mp4, x265/av1]
Specifies the output format for video conversions:
- **mkv**: (**Default**) Package the output video in a `Matroska <https://en.wikipedia.org/wiki/Matroska>`_ container.
- **mp4**: Package the output video in an MP4 container.
- **x265** or **hevc**: (**Default**) Encode the video using `x265 <https://en.wikipedia.org/wiki/X265>`_ (HEVC).
- **av1**: Encode the video using `AOMedia Video 1 <https://en.wikipedia.org/wiki/AV1>`_ (AV1).
-print:
=======
[**list**, formated, verbose]
Specifies how the output should be displayed:
- **list**: (**Default**) Prints video info in a concise, single-line format.
.. image:: ../_static/Screenshot-print_list-single.png
:width: 600
:alt: List videos (single-line output)
- **formated**: Prints video info in a more readable format with line breaks.
.. image:: ../_static/Screenshot-print_formatted-single.png
:width: 400
:alt: List videos (formatted output)
- **verbose**: Prints the FFmpeg output during conversions.
-dirs:
======
["/mnt/media/",,"/mnt/media2/"]
Specifies directories to scan, separated by **double commas** (,,).
-files:
=======
["/mnt/media/video.avi",,"/mnt/media2/video2.mp4"]
Specifies individual video files to process, separated by **double commas** (,,).
Examples
--------
.. code-block:: bash
# This command lists all videos in the specified directories that use old codecs and
# formats the output.
mediacurator list -filters:old -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
# This command converts all MPEG4 videos found in the specified directories to AV1 format
# in MP4 containers and deletes the originals.
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/",,"/mnt/media2/"
# This command converts AVI or MPG videos, displays detailed output during conversion, and
# deletes originals.
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:"/mnt/media/",,"/mnt/media2/"
For more examples, see :doc:`use_cases`
See Also
--------
- `FFmpeg <https://ffmpeg.org/>`_
Glossary
--------
- **Codec**: A program or device that compresses and decompresses digital media.
- **Container**: A file format that holds video, audio, and metadata.
- **UHD**: Ultra High Definition, refers to video resolutions of 3840x2160 pixels or higher.
Error Handling
--------------
Common issues users might encounter include:
- **Encoding Errors**: If videos have encoding errors, they can be filtered using the `-filters fferror` option.
- **Unsupported Formats**: Ensure that input formats specified in `-in` are supported by mediacurator.
Author
------
Fabrice Quenneville

View File

@ -0,0 +1,40 @@
==========
Quickstart
==========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. code-block:: bash
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid,divx,ogm,webm]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
[-print:list,formated,verbose]
[-dirs/-files:"/mnt/media/",,"/mnt/media2/"]
**for multiple files or filenames use double comma separated values ",,"**
default options are:
.. code-block:: bash
-in:any
-filters:
-out:mkv,x265
-print:list
Examples:
.. code-block:: bash
# List all videos with old codec in formated format
mediacurator list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt
# Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
mediacurator convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/"
# Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
More examples in :doc:`use_cases`

View File

@ -0,0 +1,106 @@
=========
Use cases
=========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
The main reasons to use mediacurator would be the following:
* :ref:`legacy_list_cmd` on a video library such as:
- How many videos of the lot are in HD vs standard or substandard definitions
- What videos are in older codecs
- Are there videos in the library with encoding or corruption errors
* :ref:`legacy_purge` selected videos in a media library
* :ref:`legacy_fferror` on selected videos in a media library
* :ref:`legacy_convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _legacy_list_cmd:
Print information
-----------------
List all videos with old codec in formatted output
.. code-block:: bash
mediacurator list -filters:old -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
List all videos with substandard definitions with a formatted output
.. code-block:: bash
mediacurator list -filters:subsd -print:formated -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_purge:
Purge
-----
Please see :doc:`warnings`
List and delete all videos using the `Windows Media Video <https://en.wikipedia.org/wiki/Windows_Media_Video>`_ codecs
.. code-block:: bash
mediacurator list --delete -filters:wmv -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete all videos using `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
mediacurator list --delete -in:avi -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete any videos with encoding errors
.. code-block:: bash
mediacurator list --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
mediacurator list -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
List and delete any videos with encoding errors
.. code-block:: bash
mediacurator list --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
Convert all videos with encoding errors to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ and delete the originals
.. code-block:: bash
mediacurator convert --delete -filters:fferror -dirs:"/mnt/media/",,"/mnt/media2/"
.. _legacy_convert:
Batch re-encode
---------------
Convert all videos with old codecs to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_ to save space and delete the originals
.. code-block:: bash
mediacurator convert --delete -filters:old -dirs:"/mnt/media/",,"/mnt/media2/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
mediacurator convert -filters:mpeg4 -out:av1,mkv -dirs:"/mnt/media/",,"/mnt/media2/"
Convert any video with avi or mpg extensions, print formatted text including ffmpeg's output, and then delete the originals
.. code-block:: bash
mediacurator convert --delete -in:avi,mpg -print:formated,verbose -dirs:"/mnt/media/",,"/mnt/media2/"

View File

@ -0,0 +1,67 @@
========
Warnings
========
.. warning::
The following documentation is for versions prior to 1.0.1. It may contain features and usage instructions that are incompatible with the current version of mediacurator.
.. warning::
Before using the **delete feature**, we strongly recommend running several dry runs to get acquainted with `mediacurator`, as incorrect usage can cause irreversible damage to your media library.
The `-del` flag will **permanently delete** files, so it is crucial to ensure that the command is executed correctly. Below are some examples of how the delete feature works.
Example use Cases for the `-del` Flag
-----------------------------------------
1. **Delete all non-HD (low-resolution) videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:lowres -dirs:"/mnt/media/"
2. **Delete all substandard quality videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:subsd -dirs:"/mnt/media/"
.. image:: ../_static/Legacy-Screenshot-delete.png
:width: 600
:alt: Deleting videos
3. **Delete all videos in a folder with encoding errors:**
.. code-block:: bash
mediacurator list -del -filters:fferror -dirs:"/mnt/media/"
4. **Convert (repair) and then delete all videos in a folder with encoding errors:**
.. code-block:: bash
mediacurator convert -del -filters:fferror -dirs:"/mnt/media/"
5. **Delete all videos in a folder:**
.. code-block:: bash
mediacurator list -del -filters:lowres -dirs:"/mnt/media/"
Important Notes
---------------
- **Irreversibility**: All of these commands involve permanent deletion. Once a file is deleted using the `-del` flag, it cannot be recovered.
- **Run without `-del` first**: Always perform several dry runs by omitting the `-del` flag to ensure that the correct files are selected for deletion. Familiarizing yourself with the tool before using destructive commands is essential to avoid unintended consequences.
- **Specific File Selection**: If you're unsure about applying filters to an entire directory, you can use the `-files` option to target individual files for deletion or conversion, further reducing the risk of unintended deletions.
- **Backup Recommendation**: Before running any commands with the `-del` flag, it is a good practice to back up your media library or the specific directories being processed, especially if they contain valuable or irreplaceable files.
Dry run example (without deletion)
----------------------------------
.. code-block:: bash
mediacurator list -filters:lowres -dirs:"/mnt/media/"
Make sure you carefully verify the output and files selected during the dry runs to prevent accidental data loss.

Some files were not shown because too many files have changed in this diff Show More