Metadata-Version: 2.0
Name: subconvert
Version: 3.0.0a4
Summary: Movie subtitles converter
Home-page: https://gitlab.com/mgoral/subconvert
Author: Michał Góral
Author-email: dev@mgoral.org
License: GPLv3+
Platform: linux
Classifier: Development Status :: 6 - Mature
Classifier: Environment :: Console
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Utilities
Requires-Dist: PyQt5 (==5.9)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: pymediainfo (==2.1.9)
Requires-Dist: python-mpv (==0.3.2)

Subconvert - movie subtitles converter
======================================

Subconvert is movie subtitles converter and editor aiming to be fast,
lightweight and easy to use. It supports a wide variety of subtitle formats, can
process files in batches and is available both as terminal application and with
a graphical frontend. Most things, like file encoding or movie framerate are
detected automatically so you can just sit and quickly enjoy your lovely
subtitles!

Installation
------------

Install from PYPI
~~~~~~~~~~~~~~~~~

.. code:: shell

    $ pip3 install --user subconvert

Install with tox
~~~~~~~~~~~~~~~~

If you cloned a git repository, you can install Subconvert with help of tox.

.. warning:: If your system has Python version lower than 3.5, you'll need to
   manually install PyQt as it's not available via PYPI.

.. code:: shell

    $ cd subconvert
    $ tox -e venv
    $ ln -s {.venv,$HOME/.local}/bin/subconvert
    $ ln -s {.venv,$HOME/.local}/share/applications/subconvert.desktop


Install with setup.py
~~~~~~~~~~~~~~~~~~~~~

.. warning:: these methods are not recommended for ordinary users as they don't
   manage some dependencies automatically. Installation methods from PYPI or
   with tox are preferable.

You can alternatively create a Python distribution (like bdist_wheel) and
install it:

.. code:: shell

    $ cd subconvert
    $ python3 setup.py bdist_wheel
    $ pip3 install dist/\*.whl

Or install it directly:

.. code:: shell

    $ cd subconvert
    $ python3 setup.py install


Removing
--------

If you installed Subconvert with pip, uninstalling it is simply calling
uninstall:

.. code:: shell

    $ pip3 uninstall subconvert

Otherwise you'll have to manually remove all subconvert files, i.e.:

* ``$prefix/lib/python*/site-packages/subconvert``
* ``$prefix/bin/subconvert``
* ``$prefix/share/applications/subconvert.desktop``
* ``$prefix/share/icons/hicolor/*/apps/aubconvert.{svg,png}``

Usage
-----

.. note:: Most recent usage description is always available by `subconvert
   --help`. You can also refer to the documentation included in ``docs/``
   directory. Documentation is also available at:
   https://mgoral.gitlab.io/subconvert.

You can use graphical or commandline interface. Default subconvert invocation
executes graphical interface. It is an interactive window in which you can
convert and edit movie subtitles.

To access commandline interface, use ``-c`` switch:

.. code:: shell

    $ subconvert -c file1.srt file2.txt

Above invocation will convert file1.srt and file2.txt to the default subtitles
format (which is SubRip). It will create file2.srt and will try to overwrite
file1.srt (don't worry, unless you used ``-f`` switch, Subconvert will first ask
you what to do).

Output filename syntax
~~~~~~~~~~~~~~~~~~~~~~
It's not uncommon to add some kind of prefix/suffix to converted subtitles. Like
this::

    my_subtitles.srt --> converted_my_subtitles.extension

When you specify output filename (via ``-o`` option), you can tell Subconvert to
use input file name base. Subconvert will substitute with it all appearances of
``%f`` in output file name. See an example:

.. code:: shell

    $ ls
    $ file1.srt  file2.txt
    $ subconvert -c file1.srt file2.txt -o "conv_%f.ABC"
    $ ls
    $ conv_file1.ABC  conv_file2.ABC  file1.srt  file2.txt

You can escape "%f" by adding second percent sign ("%"):

.. code:: shell

    $ subconvert -c file1.srt -o "conv_%%f.ABC"
    $ ls
    $ conv_%f.ABC  file1.srt  file2.txt

You can also substitute ``%e``, with original file extension (without a dot
``.``):

.. code:: shell

    $ subconvert -c file1.srt -o "conv_%f.%e_suffix"
    $ ls
    $ conv_file1.srt_suffix  file1.srt  file2.txt

Subtitle Property Files
~~~~~~~~~~~~~~~~~~~~~~~

You can create a common set of subtitle properties and apply all of them at
once. Say, your subtitles are usually iso-8859-4 encoded and you usually convert
them to TMP. You can set those settings with Subtitle Properties Editor
(available via GUI: ``Tools -> Subtitle Properties Editor``) and use them each
time:

.. code:: shell

    $ subconvert -c file1.srt file2.txt -o "~/subs/%f.tmp" -p ~/subs/iso88594_tmp.spf
    $ ls ~/subs
    $ file1.tmp  file2.tmp

Dependencies
------------
* Python 3.4+ (3.5+ is preferred)
* ``python3-pyqt5``
* ``python3-chardet``
* ``python3-pymediainfo``
* ``libmediainfo`` (optional, pymediainfo won't work without it)
* ``python-mpv`` (optional, needed for video playback)
* ``libmpv`` (optional, needed for video playback)

Additionaly, to build Subconvert you'll need:

* setuptools
* pyrcc5 (comes with ``pyqt5-dev-tools``)

To build documentation:

* ``asciidoctor``

License
-------
Subconvert is Free Software, available under terms of GNU General Public License
3, or (at your opinion) any later version. For details see LICENSE.txt which
should be delivered with Subconvert.

.. _AUR: https://aur.archlinux.org/packages/subconvert/
.. _PYPI: https://pypi.python.org/pypi/subconvert


