Working on packaging and related docs

This commit is contained in:
Fabrice Quenneville 2020-12-16 04:46:06 -05:00
parent eea92f698c
commit 2cc061bada
25 changed files with 422 additions and 77 deletions

2
MANIFEST.in Normal file
View File

@ -0,0 +1,2 @@
include README.md
include library/*.py

View File

@ -17,7 +17,7 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Usage:
usage/warnings usage/warnings
usage/installation usage/installation
@ -25,6 +25,12 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
usage/manual usage/manual
usage/use_cases usage/use_cases
usage/errors usage/errors
.. toctree::
:maxdepth: 1
:caption: Release Notes:
releasenotes/0.0.1-changelog
.. Indices and tables .. Indices and tables
.. ================== .. ==================

View File

@ -0,0 +1,57 @@
================================
MediaCurator 0.0.1 Release Notes
================================
This release has been tested on Python 3.7 - 3.9
Highlights
==========
First release, implemented the following features:
* List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …
Dropped Support
===============
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI
Compatibility notes
===================
FFMPEG Support
--------------
Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1
OS Support
----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows
New Features
============
Improvements
============
Changes
=======
Deprecations
============

View File

@ -15,6 +15,4 @@ Install from GitHub
.. code-block:: bash .. code-block:: bash
:linenos: :linenos:
git clone https://github.com/fabquenneville/MediaCurator.git pip install mediacurator
cd MediaCurator
pip install -r requirements.txt

View File

@ -12,7 +12,7 @@ Synopsis
.. code-block:: bash .. code-block:: bash
./mediacurator.py [list,convert] [-del] mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] [-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] [-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1] [-out:mkv/mp4,x265/av1]
@ -128,11 +128,11 @@ Examples
.. code-block:: bash .. code-block:: bash
# List all videos with old codec in formated format # List all videos with old codec in formated format
./mediacurator.py list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt 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 # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
./mediacurator.py convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/" 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 # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
More examples in :doc:`use_cases` More examples in :doc:`use_cases`

View File

@ -4,7 +4,7 @@ Quickstart
.. code-block:: bash .. code-block:: bash
./mediacurator.py [list,convert] [-del] mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid] [-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv] [-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1] [-out:mkv/mp4,x265/av1]
@ -27,10 +27,10 @@ Examples:
.. code-block:: bash .. code-block:: bash
# List all videos with old codec in formated format # List all videos with old codec in formated format
./mediacurator.py list -filters:old -print:formated -dirs:/mnt/media/ >> ../medlist.txt 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 # Convert all videos with the codec mpeg4 in a mp4 using the av1 video codec and the delete the originals
./mediacurator.py convert -del -filters:mpeg4 -out:av1,mp4 -dirs:"/mnt/media/Movies/" 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 # Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
More examples in :doc:`use_cases` More examples in :doc:`use_cases`

View File

@ -21,13 +21,13 @@ List all videos with old codec in formated format
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -filters:old -dirs:/mnt/media/ mediacurator list -filters:old -dirs:/mnt/media/
List all videos with substandard definitions with a formated output List all videos with substandard definitions with a formated output
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -filters:subsd -print:formated -dirs:/mnt/media/ mediacurator list -filters:subsd -print:formated -dirs:/mnt/media/
.. _purge: .. _purge:
@ -41,19 +41,19 @@ List and delete all videos using the `Windows Media Video <https://en.wikipedia.
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:wmv -dirs:/mnt/media/ mediacurator list -del -filters:wmv -dirs:/mnt/media/
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_ List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -in:avi -dirs:/mnt/media/ mediacurator list -del -in:avi -dirs:/mnt/media/
List and delete any videos with encoding errors List and delete any videos with encoding errors
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:fferror -dirs:/mnt/media/ mediacurator list -del -filters:fferror -dirs:/mnt/media/
@ -66,19 +66,19 @@ List all videos with encoding errors
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -filters:fferror -dirs:/mnt/media/ mediacurator list -filters:fferror -dirs:/mnt/media/
List and delete any videos with encoding errors List and delete any videos with encoding errors
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:fferror -dirs:/mnt/media/ mediacurator list -del -filters:fferror -dirs:/mnt/media/
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 the delete the originals
.. code-block:: bash .. code-block:: bash
./mediacurator.py convert -del -filters:fferror -dirs:"/mnt/media/Movies/" mediacurator convert -del -filters:fferror -dirs:"/mnt/media/Movies/"
.. _convert: .. _convert:
@ -90,16 +90,16 @@ Convert all videos with old codecs to `High Efficiency Video Coding <https://en.
.. code-block:: bash .. code-block:: bash
./mediacurator.py convert -del -filters:old -dirs:"/mnt/media/Movies/" mediacurator convert -del -filters:old -dirs:"/mnt/media/Movies/"
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.py convert -filters:mpeg4 -out:av1,mkv -dirs:"/mnt/media/Movies/" mediacurator convert -filters:mpeg4 -out:av1,mkv -dirs:"/mnt/media/Movies/"
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 formated text including ffmpeg's output and then delete the originals
.. code-block:: bash .. code-block:: bash
./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/

View File

@ -10,13 +10,13 @@ To delete all non-hd videos in a folder:
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:lowres -dirs/-files:"/mnt/media/" mediacurator list -del -filters:lowres -dirs/-files:"/mnt/media/"
To delete all substandard videos in a folder: To delete all substandard videos in a folder:
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:subsd -dirs/-files:"/mnt/media/" mediacurator list -del -filters:subsd -dirs/-files:"/mnt/media/"
.. image:: ../_static/Screenshot-delete.png .. image:: ../_static/Screenshot-delete.png
:width: 600 :width: 600
@ -26,19 +26,19 @@ To delete all videos in a folder with encoding errors:
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:fferror -dirs/-files:"/mnt/media/" mediacurator list -del -filters:fferror -dirs/-files:"/mnt/media/"
To convert (repair) then delete all videos in a folder with encoding errors: To convert (repair) then delete all videos in a folder with encoding errors:
.. code-block:: bash .. code-block:: bash
./mediacurator.py convert -del -filters:fferror -dirs/-files:"/mnt/media/" mediacurator convert -del -filters:fferror -dirs/-files:"/mnt/media/"
To delete all videos in a folder: To delete all videos in a folder:
.. code-block:: bash .. code-block:: bash
./mediacurator.py list -del -filters:lowres -dirs/-files:"/mnt/media/" mediacurator list -del -filters:lowres -dirs/-files:"/mnt/media/"
All these commands can have valuable use but are irrecoverable if done unintended. All these commands can have valuable use but are irrecoverable if done unintended.

View File

@ -59,7 +59,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><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></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/installation.html">Installation</a></li>
@ -68,6 +68,10 @@
<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/use_cases.html">Use cases</a></li>
<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"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -43,7 +43,7 @@
</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="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><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></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>
@ -77,6 +77,12 @@
</li> </li>
</ul> </ul>
</div> </div>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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>
</div> </div>
@ -99,7 +105,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><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></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/installation.html">Installation</a></li>
@ -108,6 +114,10 @@
<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/use_cases.html">Use cases</a></li>
<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"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -2,5 +2,4 @@
# Project: MediaCurator # Project: MediaCurator
# Version: 0.0.1 # Version: 0.0.1
# The remainder of this file is compressed using zlib. # The remainder of this file is compressed using zlib.
xÚ•½NÄ0 Ç÷<…¬±2N*Bˆñd·<>à6^ƒ×ãIh“”¶‰cíÿÏvlsk^ÈðA\(|$Õ9D<39>-<2D>EO[Žžüé.hu|øUd¸Äš†œ³î_l‡ÒAâ¥i!ñžµd¤ô¶Ì4zS xÚ•“¹NÄ0†{?Å h³GK ¢ X@ˆreœYDZÀv¼¯Ç“à+lB,]<ó¿çp˜VÏhXלJú€ª%xK9νÅ5£í¬u<C2AC><><3E>3êX +TL7H64F±[* $^(‰·„£ªÁ×±SMp?É^ÖhEÅ=J¦;§a…<61> çÞP§ÍÇÛ»… ö*G<>ÐêˆHaÝšuÍ¥Gi¥µÊ…û6ÚtɆt±‰IÙÛ]Õ'r]+Ýx‰¥<E280B0>­7šX•dàöÇ5õεZ<C2B5>o3(1x*íÐγÅlY±*ŽRóáÓ•&…¤€› ÁU¤ˆEj†G5æX6¸Íù:ôJrÇyùÃ2†ñL]äBYG¥LßbÃlÿdöbÑQ婜Â9^ZMß=›ò‹Œ }.ƒ×_gòm§Sv¼n¸ sLÇB¾P?ÿì3åÍ—ùºÉ[Â
¸žl ËÑLñ@Š[M,lHH¼ŠƒuŸïzuÔdSÒ‡-×â€Öi5Hk'Mèë5Ö锆éá«¶»}5r_+¢¢ò<C2A2>.º–šX=(Ù,Ûeê}ØY³¬æ ]?ö˜}™¹Ëñºo€å6òFæžû3u<33>·Òø€J¥‰¬±ytÜãä))4šˆj gbzà9JþÔ§)w»€¦Xo¿möcÐkv¹¸÷É,ä+ºþ"Û_À1R±Xì ©J7o

View File

@ -0,0 +1,162 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MediaCurator 0.0.1 Release Notes &#8212; MediaCurator documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="prev" title="Errors" href="../usage/errors.html" />
<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>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="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 headline"></a></h1>
<p>This release has been tested on Python 3.7 - 3.9</p>
<div class="section" id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this headline"></a></h2>
<p>First release, implemented the following features:
* List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …</p>
</div>
<div class="section" id="dropped-support">
<h2>Dropped Support<a class="headerlink" href="#dropped-support" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="future-changes">
<h2>Future Changes<a class="headerlink" href="#future-changes" title="Permalink to this headline"></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>
</div>
<div class="section" id="compatibility-notes">
<h2>Compatibility notes<a class="headerlink" href="#compatibility-notes" title="Permalink to this headline"></a></h2>
<div class="section" id="ffmpeg-support">
<h3>FFMPEG Support<a class="headerlink" href="#ffmpeg-support" title="Permalink to this headline"></a></h3>
<p>Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1</p>
</div>
<div class="section" id="os-support">
<h3>OS Support<a class="headerlink" href="#os-support" title="Permalink to this headline"></a></h3>
<p>Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows</p>
</div>
</div>
<div class="section" id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="improvements">
<h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="changes">
<h2>Changes<a class="headerlink" href="#changes" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="deprecations">
<h2>Deprecations<a class="headerlink" href="#deprecations" title="Permalink to this headline"></a></h2>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/mclogo4x.png" alt="Logo"/>
</a></p>
<h1 class="logo"><a href="../index.html">MediaCurator</a></h1>
<h3>Navigation</h3>
<p class="caption"><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"><span class="caption-text">Release Notes:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">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>
</ul></li>
</ul>
</div>
<div 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" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2020, Fabrice Quenneville.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 3.3.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/releasenotes/0.0.1-changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -78,7 +78,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><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></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/installation.html">Installation</a></li>
@ -87,6 +87,10 @@
<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/use_cases.html">Use cases</a></li>
<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"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -1 +1 @@
Search.setIndex({docnames:["index","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080":3,"1080p":[3,4],"1280":3,"1440":3,"2160":3,"480":3,"480p":3,"720":3,"720p":[3,4],"case":[0,3,4],"default":[3,4],"try":[1,6],"while":1,Are:5,For:2,The:[0,3,5],Use:[0,3,4],about:3,acquaint:6,activ:1,aerat:3,after:1,again:[1,6],all:[0,3,4,5,6],also:[0,1],ani:[3,4,5],aomedia:3,audio:[1,5],author:0,av1:[0,3,4,5],avi:[3,4,5],base:[0,3],bash:[],batch:[0,3],been:[2,3],befor:6,behavior:6,between:[],big:1,big_valu:1,bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:[0,5],codec:[0,3,4,5],com:2,comma:[3,4],command:[0,3,6],compress:3,contain:[3,5],content:0,convers:3,convert:[0,4,5,6],corrupt:5,curat:[],damag:[1,6],databas:[0,3],decod:1,definit:[3,5],del:[4,5,6],delet:[3,4,5,6],depend:1,descript:0,detect:1,developp:3,dir:[4,5,6],directori:3,distribut:[1,2],don:1,done:[3,6],doubl:[3,4],download:2,dry:6,dure:3,effici:5,encod:[0,3,6],error:[0,3,6],everyth:3,exampl:[0,1,4],except:3,expect:6,experi:1,experiment:3,extens:[3,4,5],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,5,6],ffmpeg:[0,3,4,5],file:[4,6],filenam:[3,4],filter:[0,4,5,6],find:[0,3],flag:6,flv:[3,4],folder:6,follow:5,format:[3,4,5],found:[0,1],frame:1,free:1,from:[0,5],get:6,git:2,github:[0,1],gnu:2,happen:1,has:2,have:[3,6],header:1,height:3,here:[1,6],hevc:3,high:5,how:5,http:2,includ:[3,4,5],index:[],inform:[0,1,3],instal:0,interleav:5,irrecover:6,irrepar:6,irrirrepar:[],issu:0,its:1,latest:1,less:3,librari:[5,6],like:1,line:[0,3],linux:2,list:[0,4,5,6],lot:5,lowr:[3,4,6],m4v:[3,4],mai:1,main:5,manag:[0,3],mani:5,manual:0,matroska:3,media2:[3,4],media:[0,3,4,5,6],mediacur:[1,2,3,4,5,6],medlist:[3,4],miss:1,mkv:[3,4,5],mnt:[3,4,5,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:[1,3],movi:[3,4,5],mp4:[3,4],mpeg4:[3,4,5],mpeg:[1,3,4],mpg:[3,4,5],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4,5],older:5,onc:3,onli:2,open:1,oper:3,option:[0,1,4],origin:[3,4,5],other:0,out:[4,5],output:[1,3,4,5],packag:[2,3],page:[],paramet:3,pass:3,pip:2,pleas:[5,6],possibl:1,print:[0,1,4],project:1,properli:6,purg:0,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,reason:5,recod:[0,3],recur:1,referenc:1,repair:[0,3,6],report:1,repositori:1,request:3,requir:2,resolut:[0,3],result:3,run:[1,6],said:[],save:5,scan:3,search:3,see:[0,5],segfault:1,sei:1,select:[3,5],separ:[3,4],serv:1,singl:3,some:1,sourc:[0,1],space:5,specif:3,stadard:[],standard:5,step:1,subsd:[3,5,6],substandard:[3,5,6],substardard:[],succefulli:3,suggest:1,synopsi:0,take:1,test:2,text:[3,4,5],than:3,thi:[2,3],too:1,tool:[0,3],track:1,txt:[2,3,4],type:1,uhd:[3,4],under:3,unintend:6,until:6,updat:1,use:[3,4,5,6],used:[1,3,6],user:3,using:[1,3,4,5,6],valu:[3,4],valuabl:6,verbos:[1,3,4,5],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,5,6],want:1,warn:[0,3,5],what:5,when:[1,6],wich:1,width:3,window:[2,5],without:[0,3,6],wmv3:[3,4],wmv:[3,4,5],work:[],would:5,x264:[3,4],x265:[0,3,4],you:[1,6],your:[1,6]},titles:["Welcome to MediaCurator\u2019s documentation!","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":5,Use:5,also:3,author:3,batch:5,bug:1,convert:3,del:3,descript:3,detect:[],dir:3,document:0,encod:[1,5],error:[1,5],exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,indic:[],inform:5,instal:2,issu:1,list:3,manual:3,mediacur:0,name:3,option:3,other:1,out:3,print:[3,5],purg:5,quickstart:4,repair:[1,5],see:3,synopsi:3,tabl:[],video:[],warn:6,welcom:0}}) Search.setIndex({docnames:["index","releasenotes/0.0.1-changelog","usage/errors","usage/installation","usage/manual","usage/quickstart","usage/use_cases","usage/warnings"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst","releasenotes/0.0.1-changelog.rst","usage/errors.rst","usage/installation.rst","usage/manual.rst","usage/quickstart.rst","usage/use_cases.rst","usage/warnings.rst"],objects:{},objnames:{},objtypes:{},terms:{"1080":4,"1080p":[4,5],"1280":4,"1440":4,"2160":4,"480":4,"480p":4,"720":4,"720p":[4,5],"case":[0,4,5],"default":[4,5],"new":[],"try":[2,7],"while":2,Are:6,For:3,The:[0,4,6],Use:[0,4,5],about:4,acquaint:7,activ:2,aerat:4,after:2,again:[2,7],all:[0,1,4,5,6,7],also:[0,2],ani:[4,5,6],aomedia:4,api:1,audio:[2,6],author:0,av1:[0,1,4,5,6],avi:[4,5,6],base:[0,1,4],batch:[0,1,4],been:[1,3,4],befor:7,behavior:7,big:2,big_valu:2,bug:0,can:[0,2,7],chang:[],chapter:2,clean:2,code:[0,6],codec:[0,1,4,5,6],comma:[4,5],command:[0,4,7],compat:[],compress:4,contain:[4,6],content:[],convers:4,convert:[0,1,5,6,7],corrupt:6,damag:[2,7],databas:[0,4],decod:2,definit:[4,6],del:[5,6,7],delet:[4,5,6,7],depend:2,deprec:[],descript:0,detect:2,developp:4,dir:[5,6,7],directori:4,distribut:[1,2,3],don:2,done:[4,7],doubl:[4,5],download:3,drop:[],dry:7,dure:4,effici:6,encod:[0,1,4,7],error:[0,1,4,7],everyth:4,exampl:[0,2,5],except:4,expect:7,experi:2,experiment:4,extens:[4,5,6],extent:[0,1,4],fabric:4,face:2,failur:2,featur:[2,7],feel:2,few:[2,7],fferror:[4,5,6,7],ffmpeg:[0,4,5,6],file:[5,7],filenam:[4,5],filter:[0,1,5,6,7],find:[0,1,4],first:1,flag:7,flv:[4,5],folder:7,follow:[1,6],format:[4,5,6],found:[0,2],frame:2,free:2,from:[0,1,6],futur:[],get:7,github:[0,2],gnu:[1,3],gui:1,happen:2,has:[1,3],have:[4,7],header:2,height:4,here:[2,7],hevc:4,high:6,highlight:[],how:6,implement:1,improv:[],includ:[4,5,6],inform:[0,1,2,4],instal:0,interleav:6,irrecover:7,irrepar:7,issu:0,its:2,latest:2,less:4,librari:[6,7],like:2,line:[0,4],linux:[1,3],list:[0,1,5,6,7],lot:6,lowr:[4,5,7],m4v:[4,5],mai:2,main:6,manag:[0,4],mani:6,manual:0,matroska:4,media2:[4,5],media:[0,4,5,6,7],mediacur:[2,3,4,5,6,7],medlist:[4,5],miss:2,mkv:[4,5,6],mnt:[4,5,6,7],modern:[0,1,4],more:[0,1,4,5],most:2,move:[2,4],movi:[4,5,6],mp4:[4,5],mpeg4:[4,5,6],mpeg:[2,4,5],mpg:[4,5,6],multipl:[4,5],name:0,necessarli:2,next:2,non:7,note:0,now:3,occur:2,old:[2,4,5,6],older:6,onc:4,onli:3,open:2,oper:4,option:[0,2,5],origin:[4,5,6],other:0,out:[5,6],output:[2,4,5,6],packag:[3,4],paramet:4,pass:4,pip:3,pleas:[6,7],possibl:2,prepar:1,print:[0,2,5],project:2,properli:7,purg:0,python:[0,1,4],quennevil:4,quickstart:0,quit:2,rang:1,raw:2,reason:6,recod:[0,1,4],recur:2,referenc:2,releas:0,repair:[0,1,4,7],report:2,repositori:2,request:4,requir:3,resolut:[0,1,4],result:4,run:[2,7],save:6,scan:4,search:4,see:[0,6],segfault:2,sei:2,select:[4,6],separ:[4,5],serv:2,singl:4,some:2,sourc:[0,2],space:6,specif:4,standard:6,step:2,subsd:[4,6,7],substandard:[4,6,7],succefulli:4,suggest:2,support:[],synopsi:0,take:2,test:[1,3],text:[4,5,6],than:4,thi:[1,3,4],too:2,tool:[0,4],track:2,txt:[4,5],type:2,uhd:[4,5],under:4,unintend:7,until:7,updat:2,usag:0,use:[4,5,6,7],used:[2,4,7],user:4,using:[2,4,5,6,7],valu:[4,5],valuabl:7,variou:1,verbos:[2,4,5,6],veri:2,version:[1,2],vid:[4,5],video2:4,video:[0,1,2,4,5,6,7],want:2,warn:[0,4,6],well:1,what:6,when:[2,7],wich:2,width:4,window:[1,3,6],without:[0,1,4,7],wmv3:[4,5],wmv:[4,5,6],work:1,would:6,x264:[4,5],x265:[0,1,4,5],you:[2,7],your:[2,7]},titles:["Welcome to MediaCurator\u2019s documentation!","MediaCurator 0.0.1 Release Notes","Errors","Installation","Manual","Quickstart","Use cases","Warnings"],titleterms:{"case":6,"new":1,Use:6,also:4,author:4,batch:6,bug:2,chang:1,compat:1,convert:4,del:4,deprec:1,descript:4,dir:4,document:0,drop:1,encod:[2,6],error:[2,6],exampl:4,featur:1,ffmpeg:[1,2,3],file:4,filter:4,from:3,futur:1,github:3,highlight:1,improv:1,inform:6,instal:3,issu:2,list:4,manual:4,mediacur:[0,1],name:4,note:1,option:4,other:2,out:4,print:[4,6],purg:6,quickstart:5,releas:1,repair:[2,6],see:4,support:1,synopsi:4,warn:7,welcom:0}})

View File

@ -16,6 +16,7 @@
<link rel="shortcut 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="../releasenotes/0.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" />
@ -86,8 +87,9 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><span class="caption-text">Usage:</span></p>
<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="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>
@ -99,12 +101,17 @@
</ul> </ul>
</li> </li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<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="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.1-changelog.html" title="next chapter">mediacurator 0.0.1 Release Notes</a></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>

View File

@ -43,11 +43,7 @@
</div> </div>
<div class="section" id="install-from-github"> <div class="section" id="install-from-github">
<h2>Install from GitHub<a class="headerlink" href="#install-from-github" title="Permalink to this headline"></a></h2> <h2>Install from GitHub<a class="headerlink" href="#install-from-github" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 <div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>pip install mediacurator
2
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span> git clone https://github.com/fabquenneville/MediaCurator.git
<span class="nb">cd</span> MediaCurator
pip install -r requirements.txt
</pre></div> </pre></div>
</td></tr></table></div> </td></tr></table></div>
</div> </div>
@ -73,7 +69,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><span class="caption-text">Usage:</span></p>
<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>
@ -86,6 +82,10 @@
<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"><a class="reference internal" href="errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -42,7 +42,7 @@
</div> </div>
<div class="section" id="synopsis"> <div class="section" id="synopsis">
<h2>Synopsis<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2> <h2>Synopsis<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py <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="o">[</span>list,convert<span class="o">]</span> <span class="o">[</span>-del<span class="o">]</span>
<span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid<span class="o">]</span> <span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid<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>-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> <span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span>
@ -145,11 +145,11 @@
<div class="section" id="examples"> <div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2> <h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></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"># List all videos with old codec in formated format</span>
./mediacurator.py list -filters:old -print:formated -dirs:/mnt/media/ &gt;&gt; ../medlist.txt 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> <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.py convert -del -filters:mpeg4 -out:av1,mp4 -dirs:<span class="s2">&quot;/mnt/media/Movies/&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"># Convert any video with avi or mpg extensions, print formated text including ffmpeg&#39;s output and then delete the originals</span>
./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</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>More examples in <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
@ -184,7 +184,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><span class="caption-text">Usage:</span></p>
<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"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
@ -202,6 +202,10 @@
<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"><a class="reference internal" href="errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -36,7 +36,7 @@
<div class="section" id="quickstart"> <div class="section" id="quickstart">
<h1>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h1> <h1>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h1>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py <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="o">[</span>list,convert<span class="o">]</span> <span class="o">[</span>-del<span class="o">]</span>
<span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid<span class="o">]</span> <span class="o">[</span>-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid<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>-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> <span class="o">[</span>-out:mkv/mp4,x265/av1<span class="o">]</span>
@ -54,11 +54,11 @@
</div> </div>
<p>Examples:</p> <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> <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.py list -filters:old -print:formated -dirs:/mnt/media/ &gt;&gt; ../medlist.txt 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> <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.py convert -del -filters:mpeg4 -out:av1,mp4 -dirs:<span class="s2">&quot;/mnt/media/Movies/&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"># Convert any video with avi or mpg extensions, print formated text including ffmpeg&#39;s output and then delete the originals</span>
./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</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>More examples in <a class="reference internal" href="use_cases.html"><span class="doc">Use cases</span></a></p>
@ -84,7 +84,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><span class="caption-text">Usage:</span></p>
<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"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
@ -93,6 +93,10 @@
<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"><a class="reference internal" href="errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -54,11 +54,11 @@
<div class="section" id="print-information"> <div class="section" id="print-information">
<span id="list-cmd"></span><h2>Print information<a class="headerlink" href="#print-information" title="Permalink to this headline"></a></h2> <span id="list-cmd"></span><h2>Print information<a class="headerlink" href="#print-information" title="Permalink to this headline"></a></h2>
<p>List all videos with old codec in formated format</p> <p>List all videos with old codec in formated format</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -filters:old -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:old -dirs:/mnt/media/
</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 formated output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -filters:subsd -print:formated -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:subsd -print:formated -dirs:/mnt/media/
</pre></div> </pre></div>
</div> </div>
</div> </div>
@ -66,45 +66,45 @@
<span id="id1"></span><h2>Purge<a class="headerlink" href="#purge" title="Permalink to this headline"></a></h2> <span id="id1"></span><h2>Purge<a class="headerlink" href="#purge" title="Permalink to this headline"></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.py list -del -filters:wmv -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:wmv -dirs:/mnt/media/
</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 an <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.py list -del -in:avi -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -in:avi -dirs:/mnt/media/
</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.py list -del -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:fferror -dirs:/mnt/media/
</pre></div> </pre></div>
</div> </div>
</div> </div>
<div class="section" id="batch-repair-encoding-errors"> <div class="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 headline"></a></h2> <span id="fferror"></span><h2>Batch repair encoding errors<a class="headerlink" href="#batch-repair-encoding-errors" title="Permalink to this headline"></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.py list -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -filters:fferror -dirs:/mnt/media/
</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.py list -del -filters:fferror -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator list -del -filters:fferror -dirs:/mnt/media/
</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 the delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py 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 convert -del -filters:fferror -dirs:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>
<div class="section" id="batch-re-encode"> <div class="section" id="batch-re-encode">
<span id="convert"></span><h2>Batch re-encode<a class="headerlink" href="#batch-re-encode" title="Permalink to this headline"></a></h2> <span id="convert"></span><h2>Batch re-encode<a class="headerlink" href="#batch-re-encode" title="Permalink to this headline"></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.py 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 convert -del -filters:old -dirs:<span class="s2">&quot;/mnt/media/Movies/&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.py 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 convert -filters:mpeg4 -out:av1,mkv -dirs:<span class="s2">&quot;/mnt/media/Movies/&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 formated text including ffmpegs output and then delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mediacurator convert -del -in:avi,mpg -print:formated,verbose -dirs:/mnt/media/
</pre></div> </pre></div>
</div> </div>
</div> </div>
@ -130,7 +130,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><span class="caption-text">Usage:</span></p>
<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"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
@ -145,6 +145,10 @@
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -39,24 +39,24 @@
<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> <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>
<p>When using the -del flag here is the expected behavior:</p> <p>When using the -del flag here is the expected behavior:</p>
<p>To delete all non-hd videos in a folder:</p> <p>To delete all non-hd videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -del -filters:lowres -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <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>
</pre></div> </pre></div>
</div> </div>
<p>To delete all substandard videos in a folder:</p> <p>To delete all substandard videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -del -filters:subsd -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <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>
</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;" /></a>
<p>To delete all videos in a folder with encoding errors:</p> <p>To delete all videos in a folder with encoding errors:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -del -filters:fferror -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <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>
</pre></div> </pre></div>
</div> </div>
<p>To convert (repair) then delete all videos in a folder with encoding errors:</p> <p>To convert (repair) then delete all videos in a folder with encoding errors:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py convert -del -filters:fferror -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <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>
</pre></div> </pre></div>
</div> </div>
<p>To delete all videos in a folder:</p> <p>To delete all videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.py list -del -filters:lowres -dirs/-files:<span class="s2">&quot;/mnt/media/&quot;</span> <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>
</pre></div> </pre></div>
</div> </div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p> <p>All these commands can have valuable use but are irrecoverable if done unintended.</p>
@ -83,7 +83,7 @@
<h3>Navigation</h3> <h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p> <p class="caption"><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></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>
@ -92,6 +92,10 @@
<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"><a class="reference internal" href="errors.html">Errors</a></li> <li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul> </ul>
<p class="caption"><span class="caption-text">Release Notes:</span></p>
<ul>
<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"> <div class="relations">
<h3>Related Topics</h3> <h3>Related Topics</h3>

View File

@ -17,7 +17,7 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Usage:
usage/warnings usage/warnings
usage/installation usage/installation
@ -25,6 +25,12 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
usage/manual usage/manual
usage/use_cases usage/use_cases
usage/errors usage/errors
.. toctree::
:maxdepth: 1
:caption: Release Notes:
releasenotes/0.0.1-changelog
.. Indices and tables .. Indices and tables
.. ================== .. ==================

View File

@ -0,0 +1,57 @@
================================
MediaCurator 0.0.1 Release Notes
================================
This release has been tested on Python 3.7 - 3.9
Highlights
==========
First release, implemented the following features:
* List all the videos and their information with or without filters
* Batch find and repair/convert videos with encoding errors
* Batch recode videos to more modern codecs (x265 / AV1) based on filters: extentions, codecs, resolutions …
Dropped Support
===============
Future Changes
==============
* More filters
* Test AV1 Support
* Prepare API for GUI
Compatibility notes
===================
FFMPEG Support
--------------
Mediacurator has been tested to work with FFMPEG versions ranging from 4.1.6 to 4.3.1
OS Support
----------
Mediacurator has been tested to work on various GNU/Linux distribution as well as Windows
New Features
============
Improvements
============
Changes
=======
Deprecations
============

View File

@ -11,9 +11,9 @@
import sys import sys
from library.video import Video from mediacurator.library.video import Video
from library.medialibrary import MediaLibrary from mediacurator.library.medialibrary import MediaLibrary
from library.tools import detect_ffmpeg, user_confirm from mediacurator.library.tools import detect_ffmpeg, user_confirm
import colorama import colorama
colorama.init() colorama.init()

View File

@ -0,0 +1,7 @@
from unittest import TestCase
import mediacurator
class TestOfTests(TestCase):
def IsItTested(self):
self.assertTrue(isinstance("test", str))

View File

@ -6,7 +6,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read() long_description = fh.read()
setuptools.setup( setuptools.setup(
name="mediacurator", name="MediaCurator",
version="0.0.1", version="0.0.1",
author="Fabrice Quenneville", author="Fabrice Quenneville",
author_email="fab@fabq.ca", author_email="fab@fabq.ca",
@ -15,12 +15,19 @@ setuptools.setup(
long_description=long_description, long_description=long_description,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",
download_url="TBD", download_url="TBD",
packages=setuptools.find_packages(exclude=("mediacurator.library",)), packages=setuptools.find_packages(),
classifiers=[ classifiers=[
"Topic :: Multimedia :: Video :: Conversion",
"Development Status :: 5 - Production/Stable",
"Natural Language :: English",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"License :: GPL-3.0", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Environment :: Console",
], ],
entry_points = {
'console_scripts': ['mediacurator=mediacurator.mediacurator:main'],
},
keywords=[ keywords=[
"codecs", "filters", "video", "x265", "av1", "media-database", "python-command", "hevc" "codecs", "filters", "video", "x265", "av1", "media-database", "python-command", "hevc"
], ],
@ -29,4 +36,7 @@ setuptools.setup(
], ],
license='GPL-3.0', license='GPL-3.0',
python_requires='>=3.6', python_requires='>=3.6',
test_suite='nose.collector',
tests_require=['nose'],
zip_safe=True,
) )