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::
:maxdepth: 2
:caption: Contents:
:caption: Usage:
usage/warnings
usage/installation
@ -25,6 +25,12 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
usage/manual
usage/use_cases
usage/errors
.. toctree::
:maxdepth: 1
:caption: Release Notes:
releasenotes/0.0.1-changelog
.. 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
:linenos:
git clone https://github.com/fabquenneville/MediaCurator.git
cd MediaCurator
pip install -r requirements.txt
pip install mediacurator

View File

@ -12,7 +12,7 @@ Synopsis
.. code-block:: bash
./mediacurator.py [list,convert] [-del]
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
@ -128,11 +128,11 @@ Examples
.. code-block:: bash
# 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
./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
./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`

View File

@ -4,7 +4,7 @@ Quickstart
.. code-block:: bash
./mediacurator.py [list,convert] [-del]
mediacurator [list,convert] [-del]
[-in:any,avi,mkv,wmv,mpg,mp4,m4v,flv,vid]
[-filters:fferror,old,lowres,hd,720p,1080p,uhd,mpeg,mpeg4,x264,wmv3,wmv]
[-out:mkv/mp4,x265/av1]
@ -27,10 +27,10 @@ Examples:
.. code-block:: bash
# 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
./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
./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`

View File

@ -21,13 +21,13 @@ List all videos with old codec in formated format
.. 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
.. code-block:: bash
./mediacurator.py list -filters:subsd -print:formated -dirs:/mnt/media/
mediacurator list -filters:subsd -print:formated -dirs:/mnt/media/
.. _purge:
@ -41,19 +41,19 @@ List and delete all videos using the `Windows Media Video <https://en.wikipedia.
.. 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>`_
.. 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
.. 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
./mediacurator.py list -filters:fferror -dirs:/mnt/media/
mediacurator list -filters:fferror -dirs:/mnt/media/
List and delete any videos with encoding errors
.. 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
.. code-block:: bash
./mediacurator.py convert -del -filters:fferror -dirs:"/mnt/media/Movies/"
mediacurator convert -del -filters:fferror -dirs:"/mnt/media/Movies/"
.. _convert:
@ -90,16 +90,16 @@ Convert all videos with old codecs to `High Efficiency Video Coding <https://en.
.. 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
.. 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
.. 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
./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:
.. 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
:width: 600
@ -26,19 +26,19 @@ To delete all videos in a folder with encoding errors:
.. 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:
.. 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:
.. 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.

View File

@ -59,7 +59,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<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>
@ -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/errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -43,7 +43,7 @@
</ul>
<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">
<p class="caption"><span class="caption-text">Contents:</span></p>
<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><ul>
@ -77,6 +77,12 @@
</li>
</ul>
</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>
@ -99,7 +105,7 @@
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<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>
@ -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/errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -2,5 +2,4 @@
# Project: MediaCurator
# Version: 0.0.1
# 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
¸ž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
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åÍ—ùºÉ[Â

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>
<p class="caption"><span class="caption-text">Contents:</span></p>
<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>
@ -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/errors.html">Errors</a></li>
</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">
<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="index" title="Index" href="../genindex.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="stylesheet" href="../_static/custom.css" type="text/css" />
@ -86,8 +87,9 @@
<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">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quickstart</a></li>
<li class="toctree-l1"><a class="reference internal" href="manual.html">Manual</a></li>
@ -99,12 +101,17 @@
</ul>
</li>
</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">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li>Previous: <a href="use_cases.html" title="previous chapter">Use cases</a></li>
<li>Next: <a href="../releasenotes/0.0.1-changelog.html" title="next chapter">mediacurator 0.0.1 Release Notes</a></li>
</ul></li>
</ul>
</div>

View File

@ -43,11 +43,7 @@
</div>
<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>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
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
<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
</pre></div>
</td></tr></table></div>
</div>
@ -73,7 +69,7 @@
<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">
<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>
@ -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="errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -42,7 +42,7 @@
</div>
<div class="section" id="synopsis">
<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>-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>
@ -145,11 +145,11 @@
<div class="section" id="examples">
<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>
./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>
./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>
./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>
</div>
<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>
<p class="caption"><span class="caption-text">Contents:</span></p>
<p class="caption"><span class="caption-text">Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
@ -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="errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -36,7 +36,7 @@
<div class="section" id="quickstart">
<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>-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>
@ -54,11 +54,11 @@
</div>
<p>Examples:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># List all videos with old codec in formated format</span>
./mediacurator.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>
./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>
./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>
</div>
<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>
<p class="caption"><span class="caption-text">Contents:</span></p>
<p class="caption"><span class="caption-text">Usage:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="warnings.html">Warnings</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
@ -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="errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -54,11 +54,11 @@
<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>./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>
</div>
<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>
</div>
</div>
@ -66,45 +66,45 @@
<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>./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>
</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>./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>
</div>
<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>
</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>./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>
</div>
<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>
</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>./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>
</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>./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>
</div>
<p>Convert all videos with the codec mpeg4 to an mkv container using the av1 video codec</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./mediacurator.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>
</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>./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>
</div>
</div>
@ -130,7 +130,7 @@
<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">
<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>
@ -145,6 +145,10 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Errors</a></li>
</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">
<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>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>./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>
</div>
<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>
</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>
<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>
</div>
<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>
</div>
<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>
</div>
<p>All these commands can have valuable use but are irrecoverable if done unintended.</p>
@ -83,7 +83,7 @@
<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">
<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>
@ -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="errors.html">Errors</a></li>
</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">
<h3>Related Topics</h3>

View File

@ -17,7 +17,7 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
.. toctree::
:maxdepth: 2
:caption: Contents:
:caption: Usage:
usage/warnings
usage/installation
@ -25,6 +25,12 @@ The source code can be found on `GitHub <https://github.com/fabquenneville/Media
usage/manual
usage/use_cases
usage/errors
.. toctree::
:maxdepth: 1
:caption: Release Notes:
releasenotes/0.0.1-changelog
.. 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
from library.video import Video
from library.medialibrary import MediaLibrary
from library.tools import detect_ffmpeg, user_confirm
from mediacurator.library.video import Video
from mediacurator.library.medialibrary import MediaLibrary
from mediacurator.library.tools import detect_ffmpeg, user_confirm
import colorama
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()
setuptools.setup(
name="mediacurator",
name="MediaCurator",
version="0.0.1",
author="Fabrice Quenneville",
author_email="fab@fabq.ca",
@ -15,12 +15,19 @@ setuptools.setup(
long_description=long_description,
long_description_content_type="text/markdown",
download_url="TBD",
packages=setuptools.find_packages(exclude=("mediacurator.library",)),
packages=setuptools.find_packages(),
classifiers=[
"Topic :: Multimedia :: Video :: Conversion",
"Development Status :: 5 - Production/Stable",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"License :: GPL-3.0",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent",
"Environment :: Console",
],
entry_points = {
'console_scripts': ['mediacurator=mediacurator.mediacurator:main'],
},
keywords=[
"codecs", "filters", "video", "x265", "av1", "media-database", "python-command", "hevc"
],
@ -29,4 +36,7 @@ setuptools.setup(
],
license='GPL-3.0',
python_requires='>=3.6',
test_suite='nose.collector',
tests_require=['nose'],
zip_safe=True,
)