Working on documentation

This commit is contained in:
Fabrice Quenneville 2020-11-21 23:29:09 -05:00
parent 73d70b6b0f
commit d1ba9c9571
38 changed files with 694 additions and 34 deletions

View File

@ -107,7 +107,7 @@ Select the outputs for the video conversions
:width: 400
:alt: Deleting videos
* formated: Print the FFmpeg output during the video conversions
* verbose: Print the FFmpeg output during the video conversions
-dir:
=====

View File

@ -1,3 +1,105 @@
=========
Use cases
=========
The main reasons to use MediaCurator would be the following:
* :ref:`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:`purge` selected videos in a media library
* :ref:`fferror` on selected videos in a media library
* :ref:`convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _list_cmd:
Print information
-----------------
List all videos with old codec in formated format
.. code-block:: bash
./curator.py list -filters:old -dir:/mnt/media/
List all videos with substandard definitions with a formated output
.. code-block:: bash
./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
.. _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
./curator.py list -del -filters:wmv -dir:/mnt/media/
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
./curator.py list -del -in:avi -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/mnt/media/
.. _fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
./curator.py list -filters:fferror -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/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
.. code-block:: bash
./curator.py convert -del -filters:fferror -dir:"/mnt/media/Movies/"
.. _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
./curator.py convert -del -filters:old -dir:"/mnt/media/Movies/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:"/mnt/media/Movies/"
Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
.. code-block:: bash
./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/

View File

@ -2,7 +2,7 @@
Warnings
========
Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you it can irreparably damage your media library when not used properly.
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.
When using the -del flag here is the expected behavior:
@ -42,4 +42,4 @@ To delete all videos in a folder:
All these commands can have valuable use but are irrecoverable if done unintended.
Again, please run a few dry runs until you are acquainted with MediaCurator.
Again, please try a few dry runs without -del until you are acquainted with MediaCurator.

View File

@ -62,7 +62,13 @@
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#author">Author</a></li>
</ul>
</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/use_cases.html">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<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#ffmpeg-issues">FFmpeg issues</a></li>

Binary file not shown.

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,For:2,The:[0,3],Use:[0,3,4],about:3,acquaint:6,activ:1,aerat:3,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],ani:[3,4],aomedia:3,audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],been: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,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],compress:3,contain:3,content:0,convers:3,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,definit:3,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,developp:3,dir:[4,6],directori:3,distribut:[1,2],don:1,done:[3,6],doubl:[3,4],download:2,dry:6,dure:3,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],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:[3,6],header:1,height:3,here:[1,6],hevc:3,http:2,includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrepar:6,irrirrepar:[],issu:0,its:1,latest:1,less:3,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,matroska:3,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:[1,3],movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onc:3,onli:2,open:1,oper:3,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:[2,3],page:[],paramet:3,pass:3,pip:2,pleas:6,possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,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],scan:3,search:3,see:0,segfault:1,sei:1,select:3,separ:[3,4],serv:1,singl:3,some:1,sourc:[0,1],specif:3,step:1,subsd:[3,6],substandard:[3,6],succefulli:3,suggest:1,synopsi:0,take:1,text:[3,4],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,6],used:[1,3,6],user:3,using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:[0,3],when:[1,6],wich:1,width:3,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,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,bug:1,convert:3,del:3,descript:3,dir:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,indic:[],instal:2,issu:1,list:3,manual:3,mediacur:0,name:3,option:3,other:1,out:3,print:3,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}})
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: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:[3,4,5,6],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,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,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,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:5,without:[0,3,6],wmv3:[3,4],wmv:[3,4,5],work:2,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}})

View File

@ -128,7 +128,7 @@
</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>
<ul class="simple">
<li><p>formated: Print the FFmpeg output during the video conversions</p></li>
<li><p>verbose: Print the FFmpeg output during the video conversions</p></li>
</ul>
</div>
<div class="section" id="dir">

View File

@ -36,6 +36,78 @@
<div class="section" id="use-cases">
<h1>Use cases<a class="headerlink" href="#use-cases" title="Permalink to this headline"></a></h1>
<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="#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="#purge"><span class="std std-ref">Purge</span></a> selected videos in a media library</p></li>
<li><p><a class="reference internal" href="#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="#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>
<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>
<p>List all videos with old codec in formated format</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:old -dir:/mnt/media/
</pre></div>
</div>
<p>List all videos with substandard definitions with a formated output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
</pre></div>
</div>
</div>
<div class="section" id="purge">
<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>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>./curator.py list -del -filters:wmv -dir:/mnt/media/
</pre></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>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -in:avi -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
</div>
<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>
<p>List all videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</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 the delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py convert -del -filters:fferror -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
</div>
<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>
<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>./curator.py convert -del -filters:old -dir:<span class="s2">&quot;/mnt/media/Movies/&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>./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
<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>./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
</pre></div>
</div>
</div>
</div>
@ -64,7 +136,13 @@
<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 current"><a class="current reference internal" href="#">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>

View File

@ -36,7 +36,7 @@
<div class="section" id="warnings">
<h1>Warnings<a class="headerlink" href="#warnings" title="Permalink to this headline"></a></h1>
<p>Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you 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>To delete all non-hd videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:lowres -dir/-files:<span class="s2">&quot;/mnt/media/&quot;</span>
@ -60,7 +60,7 @@
</pre></div>
</div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p>
<p>Again, please run a few dry runs until you are acquainted with MediaCurator.</p>
<p>Again, please try a few dry runs without -del until you are acquainted with MediaCurator.</p>
</div>

View File

@ -107,7 +107,7 @@ Select the outputs for the video conversions
:width: 400
:alt: Deleting videos
* formated: Print the FFmpeg output during the video conversions
* verbose: Print the FFmpeg output during the video conversions
-dir:
=====

View File

@ -1,3 +1,105 @@
=========
Use cases
=========
The main reasons to use MediaCurator would be the following:
* :ref:`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:`purge` selected videos in a media library
* :ref:`fferror` on selected videos in a media library
* :ref:`convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _list_cmd:
Print information
-----------------
List all videos with old codec in formated format
.. code-block:: bash
./curator.py list -filters:old -dir:/mnt/media/
List all videos with substandard definitions with a formated output
.. code-block:: bash
./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
.. _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
./curator.py list -del -filters:wmv -dir:/mnt/media/
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
./curator.py list -del -in:avi -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/mnt/media/
.. _fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
./curator.py list -filters:fferror -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/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
.. code-block:: bash
./curator.py convert -del -filters:fferror -dir:"/mnt/media/Movies/"
.. _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
./curator.py convert -del -filters:old -dir:"/mnt/media/Movies/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:"/mnt/media/Movies/"
Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
.. code-block:: bash
./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/

View File

@ -2,7 +2,7 @@
Warnings
========
Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you it can irreparably damage your media library when not used properly.
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.
When using the -del flag here is the expected behavior:
@ -42,4 +42,4 @@ To delete all videos in a folder:
All these commands can have valuable use but are irrecoverable if done unintended.
Again, please run a few dry runs until you are acquainted with MediaCurator.
Again, please try a few dry runs without -del until you are acquainted with MediaCurator.

View File

@ -62,7 +62,13 @@
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#author">Author</a></li>
</ul>
</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/use_cases.html">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<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#ffmpeg-issues">FFmpeg issues</a></li>

Binary file not shown.

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,For:2,The:[0,3],Use:[0,3,4],about:3,acquaint:6,activ:1,aerat:3,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],ani:[3,4],aomedia:3,audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],been: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,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],compress:3,contain:3,content:0,convers:3,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,definit:3,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,developp:3,dir:[4,6],directori:3,distribut:[1,2],don:1,done:[3,6],doubl:[3,4],download:2,dry:6,dure:3,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],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:[3,6],header:1,height:3,here:[1,6],hevc:3,http:2,includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrepar:6,irrirrepar:[],issu:0,its:1,latest:1,less:3,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,matroska:3,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:[1,3],movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onc:3,onli:2,open:1,oper:3,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:[2,3],page:[],paramet:3,pass:3,pip:2,pleas:6,possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,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],scan:3,search:3,see:0,segfault:1,sei:1,select:3,separ:[3,4],serv:1,singl:3,some:1,sourc:[0,1],specif:3,step:1,subsd:[3,6],substandard:[3,6],succefulli:3,suggest:1,synopsi:0,take:1,text:[3,4],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,6],used:[1,3,6],user:3,using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:[0,3],when:[1,6],wich:1,width:3,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,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,bug:1,convert:3,del:3,descript:3,dir:3,document:0,encod:1,error:1,exampl:3,ffmpeg:[1,2],file:3,filter:3,from:2,github:2,indic:[],instal:2,issu:1,list:3,manual:3,mediacur:0,name:3,option:3,other:1,out:3,print:3,quickstart:4,repair:1,see:3,synopsi:3,tabl:[],warn:6,welcom:0}})
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: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:[3,4,5,6],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,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,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,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:5,without:[0,3,6],wmv3:[3,4],wmv:[3,4,5],work:2,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}})

View File

@ -128,7 +128,7 @@
</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>
<ul class="simple">
<li><p>formated: Print the FFmpeg output during the video conversions</p></li>
<li><p>verbose: Print the FFmpeg output during the video conversions</p></li>
</ul>
</div>
<div class="section" id="dir">

View File

@ -36,6 +36,78 @@
<div class="section" id="use-cases">
<h1>Use cases<a class="headerlink" href="#use-cases" title="Permalink to this headline"></a></h1>
<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="#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="#purge"><span class="std std-ref">Purge</span></a> selected videos in a media library</p></li>
<li><p><a class="reference internal" href="#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="#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>
<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>
<p>List all videos with old codec in formated format</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:old -dir:/mnt/media/
</pre></div>
</div>
<p>List all videos with substandard definitions with a formated output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
</pre></div>
</div>
</div>
<div class="section" id="purge">
<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>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>./curator.py list -del -filters:wmv -dir:/mnt/media/
</pre></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>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -in:avi -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
</div>
<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>
<p>List all videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</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 the delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py convert -del -filters:fferror -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
</div>
<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>
<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>./curator.py convert -del -filters:old -dir:<span class="s2">&quot;/mnt/media/Movies/&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>./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
<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>./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
</pre></div>
</div>
</div>
</div>
@ -64,7 +136,13 @@
<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 current"><a class="current reference internal" href="#">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>

View File

@ -36,7 +36,7 @@
<div class="section" id="warnings">
<h1>Warnings<a class="headerlink" href="#warnings" title="Permalink to this headline"></a></h1>
<p>Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you 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>To delete all non-hd videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:lowres -dir/-files:<span class="s2">&quot;/mnt/media/&quot;</span>
@ -60,7 +60,7 @@
</pre></div>
</div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p>
<p>Again, please run a few dry runs until you are acquainted with MediaCurator.</p>
<p>Again, please try a few dry runs without -del until you are acquainted with MediaCurator.</p>
</div>

View File

@ -107,7 +107,7 @@ Select the outputs for the video conversions
:width: 400
:alt: Deleting videos
* formated: Print the FFmpeg output during the video conversions
* verbose: Print the FFmpeg output during the video conversions
-dir:
=====

View File

@ -1,3 +1,105 @@
=========
Use cases
=========
The main reasons to use MediaCurator would be the following:
* :ref:`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:`purge` selected videos in a media library
* :ref:`fferror` on selected videos in a media library
* :ref:`convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _list_cmd:
Print information
-----------------
List all videos with old codec in formated format
.. code-block:: bash
./curator.py list -filters:old -dir:/mnt/media/
List all videos with substandard definitions with a formated output
.. code-block:: bash
./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
.. _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
./curator.py list -del -filters:wmv -dir:/mnt/media/
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
./curator.py list -del -in:avi -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/mnt/media/
.. _fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
./curator.py list -filters:fferror -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/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
.. code-block:: bash
./curator.py convert -del -filters:fferror -dir:"/mnt/media/Movies/"
.. _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
./curator.py convert -del -filters:old -dir:"/mnt/media/Movies/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:"/mnt/media/Movies/"
Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
.. code-block:: bash
./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/

View File

@ -2,7 +2,7 @@
Warnings
========
Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you it can irreparably damage your media library when not used properly.
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.
When using the -del flag here is the expected behavior:
@ -42,4 +42,4 @@ To delete all videos in a folder:
All these commands can have valuable use but are irrecoverable if done unintended.
Again, please run a few dry runs until you are acquainted with MediaCurator.
Again, please try a few dry runs without -del until you are acquainted with MediaCurator.

View File

@ -62,7 +62,13 @@
<li class="toctree-l2"><a class="reference internal" href="usage/manual.html#author">Author</a></li>
</ul>
</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/use_cases.html">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="usage/use_cases.html#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<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#ffmpeg-issues">FFmpeg issues</a></li>

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,"600":[],"720":3,"720p":[3,4],"case":[0,3,4],"default":[3,4],"try":[1,6],"while":1,For:2,The:[0,3],Use:[0,3,4],_static:[],about:3,acquaint:6,activ:1,aerat:3,after:1,again:[1,6],all:[0,3,4,6],also:[0,1],alt:[],ani:[3,4],aomedia:3,audio:1,author:0,av1:[0,3,4],avi:[3,4],base:[0,3],bash:[],batch:[0,3],been:3,befor:6,behavior:6,between:[],big:1,big_valu:1,block:[],bug:0,can:[0,1,6],chapter:1,clean:1,clone:2,code:0,codec:[0,3,4],com:2,comma:[3,4],command:[0,3,6],compress:3,contain:3,content:0,convers:3,convert:[0,4,6],curat:[3,4,6],damag:[1,6],databas:[0,3],decod:1,definit:3,del:[4,6],delet:[3,4,6],depend:1,descript:0,detect:1,developp:3,dir:[4,6],directori:3,distribut:[1,2],don:1,done:[3,6],doubl:[3,4],download:2,dry:6,dure:3,either:[],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],extent:[0,3],fabquennevil:2,fabric:3,face:1,failur:1,featur:[1,6],feel:1,few:[1,6],fferror:[3,4,6],ffmpeg:[0,3,4],file:[4,6],filenam:[3,4],filter:[0,4,6],find:[0,3],flag:6,flv:[3,4],folder:6,format:[3,4],found:[0,1],frame:1,free:1,from:0,get:6,git:2,github:[0,1],gnu:2,happen:1,have:[3,6],header:1,height:3,here:[1,6],hevc:3,http:2,imag:[],includ:[3,4],index:[],inform:[0,1,3],instal:0,irrecover:6,irrepar:6,irrirrepar:[],issu:0,its:1,latest:1,less:3,librari:6,like:1,line:[0,3],linux:2,list:[0,4,6],lowr:[3,4,6],m4v:[3,4],mai:1,manag:[0,3],manual:0,matroska:3,media2:[3,4],media:[0,3,4,6],mediacur:[1,2,3,6],medlist:[3,4],miss:1,mkv:[3,4],mnt:[3,4,6],modern:[0,3],modul:[],more:[0,3,4],most:1,move:[1,3],movi:[3,4],mp4:[3,4],mpeg4:[3,4],mpeg:[1,3,4],mpg:[3,4],multipl:[3,4],name:0,necessarli:1,next:1,non:6,now:2,occur:1,old:[1,3,4],onc:3,onli:2,open:1,oper:3,option:[0,1,4],origin:[3,4],other:0,out:4,output:[1,3,4],packag:[2,3],page:[],paramet:3,part:[],pass:3,pip:2,pleas:6,png:[],possibl:1,print:[1,4],project:1,properli:6,python:[0,3],quennevil:3,quickstart:0,quit:1,raw:1,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],scan:3,screenshot:[],search:3,see:0,segfault:1,sei:1,select:3,separ:[3,4],serv:1,singl:3,some:1,sourc:[0,1],specif:3,step:1,subsd:[3,6],substandard:[3,6],succefulli:3,suggest:1,synopsi:0,take:1,text:[3,4],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,6],used:[1,3,6],user:3,using:[1,3,4,6],valu:[3,4],valuabl:6,verbos:[1,3,4],veri:1,version:1,vid:[3,4],video2:3,video:[0,1,3,4,6],want:1,warn:[0,3],when:[1,6],wich:1,width:3,without:[0,3],wmv3:[3,4],wmv:[3,4],work:2,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:{"1080p":[],"720p":[],"case":5,For:[],Use:5,also:3,ani:[],author:3,av1:[],avi:[],bug:1,convert:3,del:3,descript:3,dir:3,distribut:[],document:0,download:[],encod:1,error:1,exampl:3,fferror:[],ffmpeg:[1,2],file:3,filter:3,flv:[],format:[],from:2,github:2,gnu:[],indic:[],instal:2,issu:1,linux:[],list:3,lowr:[],m4v:[],manual:3,mediacur:0,mkv:[],mp4:[],mpeg4:[],mpeg:[],mpg:[],name:3,now:[],old:[],onli:[],option:3,other:1,out:3,packag:[],print:3,quickstart:4,repair:1,requir:[],see:3,synopsi:3,tabl:[],thi:[],uhd:[],verbos:[],vid:[],warn:6,welcom:0,wmv3:[],wmv:[],work:[],x264:[],x265:[]}})
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,"600":[],"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],_list_cmd:[],_static:[],about:3,acquaint:6,activ:1,aerat:3,after:1,again:[1,6],all:[0,3,4,5,6],also:[0,1],alt:[],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:3,befor:6,behavior:6,between:[],big:1,big_valu:1,block:[],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:[3,4,5,6],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,either:[],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,have:[3,6],header:1,height:3,here:[1,6],hevc:3,high:5,how:5,http:2,imag:[],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],list_cmd:[],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,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,part:[],pass:3,pip:2,pleas:[5,6],png:[],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,screenshot:[],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,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:5,without:[0,3,6],wmv3:[3,4],wmv:[3,4,5],work:2,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:{"1080p":[],"720p":[],"case":5,For:[],Use:5,also:3,ani:[],author:3,av1:[],avi:[],batch:5,bug:1,convert:3,damag:[],del:3,delet:[],descript:3,detect:[],dir:3,distribut:[],document:0,download:[],encod:[1,5],error:[1,5],exampl:3,fferror:[],ffmpeg:[1,2],file:3,filter:3,flv:[],format:[],from:2,github:2,gnu:[],indic:[],inform:5,instal:2,issu:1,linux:[],list:3,lowr:[],m4v:[],manual:3,mediacur:0,mkv:[],mp4:[],mpeg4:[],mpeg:[],mpg:[],name:3,now:[],old:[],onli:[],option:3,other:1,out:3,packag:[],print:[3,5],purg:5,quickstart:4,repair:[1,5],requir:[],see:3,synopsi:3,tabl:[],thi:[],uhd:[],verbos:[],vid:[],video:[],warn:6,welcom:0,wmv3:[],wmv:[],work:[],x264:[],x265:[]}})

View File

@ -128,7 +128,7 @@
</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>
<ul class="simple">
<li><p>formated: Print the FFmpeg output during the video conversions</p></li>
<li><p>verbose: Print the FFmpeg output during the video conversions</p></li>
</ul>
</div>
<div class="section" id="dir">

View File

@ -36,6 +36,78 @@
<div class="section" id="use-cases">
<h1>Use cases<a class="headerlink" href="#use-cases" title="Permalink to this headline"></a></h1>
<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="#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="#purge"><span class="std std-ref">Purge</span></a> selected videos in a media library</p></li>
<li><p><a class="reference internal" href="#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="#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>
<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>
<p>List all videos with old codec in formated format</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:old -dir:/mnt/media/
</pre></div>
</div>
<p>List all videos with substandard definitions with a formated output</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
</pre></div>
</div>
</div>
<div class="section" id="purge">
<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>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>./curator.py list -del -filters:wmv -dir:/mnt/media/
</pre></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>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -in:avi -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
</div>
<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>
<p>List all videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -filters:fferror -dir:/mnt/media/
</pre></div>
</div>
<p>List and delete any videos with encoding errors</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:fferror -dir:/mnt/media/
</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 the delete the originals</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py convert -del -filters:fferror -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
</div>
<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>
<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>./curator.py convert -del -filters:old -dir:<span class="s2">&quot;/mnt/media/Movies/&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>./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:<span class="s2">&quot;/mnt/media/Movies/&quot;</span>
</pre></div>
</div>
<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>./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/
</pre></div>
</div>
</div>
</div>
@ -64,7 +136,13 @@
<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 current"><a class="current reference internal" href="#">Use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#print-information">Print information</a></li>
<li class="toctree-l2"><a class="reference internal" href="#purge">Purge</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-repair-encoding-errors">Batch repair encoding errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="#batch-re-encode">Batch re-encode</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</ul>

View File

@ -36,7 +36,7 @@
<div class="section" id="warnings">
<h1>Warnings<a class="headerlink" href="#warnings" title="Permalink to this headline"></a></h1>
<p>Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you 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>To delete all non-hd videos in a folder:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./curator.py list -del -filters:lowres -dir/-files:<span class="s2">&quot;/mnt/media/&quot;</span>
@ -60,7 +60,7 @@
</pre></div>
</div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p>
<p>Again, please run a few dry runs until you are acquainted with MediaCurator.</p>
<p>Again, please try a few dry runs without -del until you are acquainted with MediaCurator.</p>
</div>

View File

@ -107,7 +107,7 @@ Select the outputs for the video conversions
:width: 400
:alt: Deleting videos
* formated: Print the FFmpeg output during the video conversions
* verbose: Print the FFmpeg output during the video conversions
-dir:
=====

View File

@ -1,3 +1,105 @@
=========
Use cases
=========
The main reasons to use MediaCurator would be the following:
* :ref:`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:`purge` selected videos in a media library
* :ref:`fferror` on selected videos in a media library
* :ref:`convert` videos from an old codec to `High Efficiency Video Coding <https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding>`_
.. _list_cmd:
Print information
-----------------
List all videos with old codec in formated format
.. code-block:: bash
./curator.py list -filters:old -dir:/mnt/media/
List all videos with substandard definitions with a formated output
.. code-block:: bash
./curator.py list -filters:subsd -print:formated -dir:/mnt/media/
.. _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
./curator.py list -del -filters:wmv -dir:/mnt/media/
List and delete all videos using an `Audio Video Interleave <https://en.wikipedia.org/wiki/Audio_Video_Interleave>`_
.. code-block:: bash
./curator.py list -del -in:avi -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/mnt/media/
.. _fferror:
Batch repair encoding errors
----------------------------
List all videos with encoding errors
.. code-block:: bash
./curator.py list -filters:fferror -dir:/mnt/media/
List and delete any videos with encoding errors
.. code-block:: bash
./curator.py list -del -filters:fferror -dir:/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
.. code-block:: bash
./curator.py convert -del -filters:fferror -dir:"/mnt/media/Movies/"
.. _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
./curator.py convert -del -filters:old -dir:"/mnt/media/Movies/"
Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec
.. code-block:: bash
./curator.py convert -filters:mpeg4 -out:av1,mkv -dir:"/mnt/media/Movies/"
Convert any video with avi or mpg extensions, print formated text including ffmpeg's output and then delete the originals
.. code-block:: bash
./curator.py convert -del -in:avi,mpg -print:formated,verbose -dir:/mnt/media/

View File

@ -2,7 +2,7 @@
Warnings
========
Before using the delete feature please try a few dry runs to get acquainted with MediaCurator as you it can irreparably damage your media library when not used properly.
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.
When using the -del flag here is the expected behavior:
@ -42,4 +42,4 @@ To delete all videos in a folder:
All these commands can have valuable use but are irrecoverable if done unintended.
Again, please run a few dry runs until you are acquainted with MediaCurator.
Again, please try a few dry runs without -del until you are acquainted with MediaCurator.