ffmpeg-downloader


Nameffmpeg-downloader JSON
Version 0.3.0 PyPI version JSON
download
home_page
SummaryFFmpeg Release Build Downloader
upload_time2023-12-08 02:52:22
maintainer
docs_urlNone
author
requires_python>=3.7
licenseGPL-2.0 License
keywords multimedia ffmpeg ffprobe download
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            `ffmpeg-downloader`: Python FFmpeg release build downloader
===========================================================

|pypi| |pypi-status| |pypi-pyvers| |github-license| |github-status|

.. |pypi| image:: https://img.shields.io/pypi/v/ffmpeg-downloader
  :alt: PyPI
.. |pypi-status| image:: https://img.shields.io/pypi/status/ffmpeg-downloader
  :alt: PyPI - Status
.. |pypi-pyvers| image:: https://img.shields.io/pypi/pyversions/ffmpeg-downloader
  :alt: PyPI - Python Version
.. |github-license| image:: https://img.shields.io/github/license/python-ffmpegio/python-ffmpeg-downloader
  :alt: GitHub License
.. |github-status| image:: https://img.shields.io/github/workflow/status/python-ffmpegio/python-ffmpeg-downloader/Run%20Tests
  :alt: GitHub Workflow Status

Python `ffmpeg-downloader` package automatically downloads the latest FFmpeg prebuilt binaries for Windows, Linux, & MacOS. 
It's cli interface mimics that of `pip` to install, uninstall, list, search, and download available FFmpeg versions. This package
is ideal for those who:

- Use the git snapshot version of FFmpeg
- Are in Windows environment
 
Those who intend to use a release version in Linux and MacOS are encouraged to install via the OS package manager 
(e.g., `apt-get` for Ubuntu and `brew` for MacOS).

The FFmpeg builds will be downloaded from 3rd party hosts:

=======  ==========================================================================
Windows  `https://www.gyan.dev/ffmpeg/builds <https://www.gyan.dev/ffmpeg/builds>`_
Linux    `https://johnvansickle.com/ffmpeg <https://johnvansickle.com/ffmpeg>`_
MacOS    `https://evermeet.cx/ffmpeg <https://evermeet.cx/ffmpeg>`_
=======  ==========================================================================

If you appreciate their effort to build and host these builds, please consider donating on their websites.

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

.. code-block:: bash

   pip install ffmpeg-downloader

Console Commands
----------------

In cli, use `ffdl` command after the package is installed. Alternately, you can call the module by 
`python -m ffmpeg_downloader`. For full help, run:

.. code-block::

  ffdl -h <command>

To download and install FFmpeg binaries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: bash

  ffdl install

This command downloads and installs the latest FFmpeg **release**. You will see the progress messages
similar to the following:

.. code-block:: bash

   Collecting ffmpeg 
     Using cached ffmpeg-5.1.2-essentials_build.zip (79 MB)
   Installing collected FFmpeg binaries: 5.1.2@essentials
   Successfully installed FFmpeg binaries: 5.1.2@essentials in
     C:\Users\User\AppData\Local\ffmpegio\ffmpeg-downloader\ffmpeg\bin

In Linux, symlinks fo the installed binaries are automatically created in `~/.local/bin` or `~/bin`
so the FFmpeg commands are immediately available (only if one of these directories already exists).

In Windows and MacOS, the binary folder can be added to the system path by `--add-path` option:

.. code-block:: bash

  ffdl install --add-path

The new system paths won't be applied to the current console window. You may need to close and reopen
or possibly log out and log back in for the change to take effect.

To install the latest git master snapshot build:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: bash

  ffdl install snapshot

To list or search available release versions:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Use ``list`` and ``search`` commands.

.. code-block:: bash

  ffdl list     # lists all available releases

  ffdl search 5 # lists all v5 releases 


To specify a release version:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Add version number as the last argument of the command:

.. code-block:: bash

  ffdl install 4.4

Additionally, there are multiple options for each build for the Windows builds:

===============    ===========================================================================
``essentials``     Built only with commonly used third-party libraries (default option)
``full``           Built with the most third-party libraries
``full-shared``    Same as ``full`` but separate shared libraries (DLLs) and development files 
                   (release builds only)
===============    ===========================================================================

Visit `gyan.dev <https://www.gyan.dev/ffmpeg/builds/#about-these-builds>`_ for more information. 
To specify which flavor to install, use ``@``

.. code-block:: bash

   ffdl install snapshot@full   # full build of latest snapshot
   ffdl install 5.2@full-shared # full build of v5.2

To update or change version if available
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Like ``pip``, use ``-U`` or ``--upgrade`` flag 

.. code-block:: bash

  ffdl install -U

To uninstall
^^^^^^^^^^^^

.. code-block:: bash

  ffdl uninstall

In Python
---------

This package has the following useful attributes:

.. code-block:: python
  
  import ffmpeg_downloader as ffdl

  ffdl.ffmpeg_dir     # FFmpeg binaries directory 
  ffdl.ffmpeg_version # version string of the intalled FFmpeg
  ffdl.ffmpeg_path    # full path of the FFmpeg binary
  ffdl.ffprobe_path   # full path of the FFprobe binary
  ffdl.ffplay_path    # full path of the FFplay binary


The ``ffxxx_path`` attributes are useful to call FFxxx command with ``subprocess``:

.. code-block:: python

  # To call FFmpeg via subprocess
  import subprocess as sp

  sp.run([ffdl.ffmpeg_path, '-i', 'input.mp4', 'output.mkv'])

Meanwhile, there are many FFmpeg wrapper packages which do not let you specify the
FFmpeg path or cumbersome to do so. If installing the FFmpeg with ``--add-path`` option is
not preferable, use `ffmpeg_downloader.add_path()` function to make the binaries available
to these packages.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ffmpeg-downloader",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "multimedia,ffmpeg,ffprobe,download",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/8d/d3/6857e5b8212244be739d78eb8459646c0ab49a83e54b2dd3259ee2abe37d/ffmpeg_downloader-0.3.0.tar.gz",
    "platform": null,
    "description": "`ffmpeg-downloader`: Python FFmpeg release build downloader\n===========================================================\n\n|pypi| |pypi-status| |pypi-pyvers| |github-license| |github-status|\n\n.. |pypi| image:: https://img.shields.io/pypi/v/ffmpeg-downloader\n  :alt: PyPI\n.. |pypi-status| image:: https://img.shields.io/pypi/status/ffmpeg-downloader\n  :alt: PyPI - Status\n.. |pypi-pyvers| image:: https://img.shields.io/pypi/pyversions/ffmpeg-downloader\n  :alt: PyPI - Python Version\n.. |github-license| image:: https://img.shields.io/github/license/python-ffmpegio/python-ffmpeg-downloader\n  :alt: GitHub License\n.. |github-status| image:: https://img.shields.io/github/workflow/status/python-ffmpegio/python-ffmpeg-downloader/Run%20Tests\n  :alt: GitHub Workflow Status\n\nPython `ffmpeg-downloader` package automatically downloads the latest FFmpeg prebuilt binaries for Windows, Linux, & MacOS. \nIt's cli interface mimics that of `pip` to install, uninstall, list, search, and download available FFmpeg versions. This package\nis ideal for those who:\n\n- Use the git snapshot version of FFmpeg\n- Are in Windows environment\n \nThose who intend to use a release version in Linux and MacOS are encouraged to install via the OS package manager \n(e.g., `apt-get` for Ubuntu and `brew` for MacOS).\n\nThe FFmpeg builds will be downloaded from 3rd party hosts:\n\n=======  ==========================================================================\nWindows  `https://www.gyan.dev/ffmpeg/builds <https://www.gyan.dev/ffmpeg/builds>`_\nLinux    `https://johnvansickle.com/ffmpeg <https://johnvansickle.com/ffmpeg>`_\nMacOS    `https://evermeet.cx/ffmpeg <https://evermeet.cx/ffmpeg>`_\n=======  ==========================================================================\n\nIf you appreciate their effort to build and host these builds, please consider donating on their websites.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n   pip install ffmpeg-downloader\n\nConsole Commands\n----------------\n\nIn cli, use `ffdl` command after the package is installed. Alternately, you can call the module by \n`python -m ffmpeg_downloader`. For full help, run:\n\n.. code-block::\n\n  ffdl -h <command>\n\nTo download and install FFmpeg binaries\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: bash\n\n  ffdl install\n\nThis command downloads and installs the latest FFmpeg **release**. You will see the progress messages\nsimilar to the following:\n\n.. code-block:: bash\n\n   Collecting ffmpeg \n     Using cached ffmpeg-5.1.2-essentials_build.zip (79 MB)\n   Installing collected FFmpeg binaries: 5.1.2@essentials\n   Successfully installed FFmpeg binaries: 5.1.2@essentials in\n     C:\\Users\\User\\AppData\\Local\\ffmpegio\\ffmpeg-downloader\\ffmpeg\\bin\n\nIn Linux, symlinks fo the installed binaries are automatically created in `~/.local/bin` or `~/bin`\nso the FFmpeg commands are immediately available (only if one of these directories already exists).\n\nIn Windows and MacOS, the binary folder can be added to the system path by `--add-path` option:\n\n.. code-block:: bash\n\n  ffdl install --add-path\n\nThe new system paths won't be applied to the current console window. You may need to close and reopen\nor possibly log out and log back in for the change to take effect.\n\nTo install the latest git master snapshot build:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: bash\n\n  ffdl install snapshot\n\nTo list or search available release versions:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUse ``list`` and ``search`` commands.\n\n.. code-block:: bash\n\n  ffdl list     # lists all available releases\n\n  ffdl search 5 # lists all v5 releases \n\n\nTo specify a release version:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAdd version number as the last argument of the command:\n\n.. code-block:: bash\n\n  ffdl install 4.4\n\nAdditionally, there are multiple options for each build for the Windows builds:\n\n===============    ===========================================================================\n``essentials``     Built only with commonly used third-party libraries (default option)\n``full``           Built with the most third-party libraries\n``full-shared``    Same as ``full`` but separate shared libraries (DLLs) and development files \n                   (release builds only)\n===============    ===========================================================================\n\nVisit `gyan.dev <https://www.gyan.dev/ffmpeg/builds/#about-these-builds>`_ for more information. \nTo specify which flavor to install, use ``@``\n\n.. code-block:: bash\n\n   ffdl install snapshot@full   # full build of latest snapshot\n   ffdl install 5.2@full-shared # full build of v5.2\n\nTo update or change version if available\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLike ``pip``, use ``-U`` or ``--upgrade`` flag \n\n.. code-block:: bash\n\n  ffdl install -U\n\nTo uninstall\n^^^^^^^^^^^^\n\n.. code-block:: bash\n\n  ffdl uninstall\n\nIn Python\n---------\n\nThis package has the following useful attributes:\n\n.. code-block:: python\n  \n  import ffmpeg_downloader as ffdl\n\n  ffdl.ffmpeg_dir     # FFmpeg binaries directory \n  ffdl.ffmpeg_version # version string of the intalled FFmpeg\n  ffdl.ffmpeg_path    # full path of the FFmpeg binary\n  ffdl.ffprobe_path   # full path of the FFprobe binary\n  ffdl.ffplay_path    # full path of the FFplay binary\n\n\nThe ``ffxxx_path`` attributes are useful to call FFxxx command with ``subprocess``:\n\n.. code-block:: python\n\n  # To call FFmpeg via subprocess\n  import subprocess as sp\n\n  sp.run([ffdl.ffmpeg_path, '-i', 'input.mp4', 'output.mkv'])\n\nMeanwhile, there are many FFmpeg wrapper packages which do not let you specify the\nFFmpeg path or cumbersome to do so. If installing the FFmpeg with ``--add-path`` option is\nnot preferable, use `ffmpeg_downloader.add_path()` function to make the binaries available\nto these packages.\n",
    "bugtrack_url": null,
    "license": "GPL-2.0 License",
    "summary": "FFmpeg Release Build Downloader",
    "version": "0.3.0",
    "project_urls": {
        "Issues": "https://github.com/python-ffmpegio/python-ffmpegio-downloader/issues",
        "Pull_Requests": "https://github.com/python-ffmpegio/python-ffmpegio-downloader/pulls",
        "Repository": "https://github.com/python-ffmpegio/python-ffmpeg-downloader"
    },
    "split_keywords": [
        "multimedia",
        "ffmpeg",
        "ffprobe",
        "download"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43fb376ddcc5048b1f61867595f0fd40a207f7008cb91c2e7ffdf4553f4047aa",
                "md5": "8a90a16157f03b1cca0144b576e11043",
                "sha256": "4661f3cd961326c00c3425684c733e7e9b286173a5aa6986884b4e231b3b738f"
            },
            "downloads": -1,
            "filename": "ffmpeg_downloader-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8a90a16157f03b1cca0144b576e11043",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 34403,
            "upload_time": "2023-12-08T02:52:20",
            "upload_time_iso_8601": "2023-12-08T02:52:20.597879Z",
            "url": "https://files.pythonhosted.org/packages/43/fb/376ddcc5048b1f61867595f0fd40a207f7008cb91c2e7ffdf4553f4047aa/ffmpeg_downloader-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8dd36857e5b8212244be739d78eb8459646c0ab49a83e54b2dd3259ee2abe37d",
                "md5": "6e634ee919c1168ab3cc4a314ebda148",
                "sha256": "b1f9d1fccfe6c492678adacd1f82d566273a751faf1427501dadd6b89a401bd1"
            },
            "downloads": -1,
            "filename": "ffmpeg_downloader-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6e634ee919c1168ab3cc4a314ebda148",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 30807,
            "upload_time": "2023-12-08T02:52:22",
            "upload_time_iso_8601": "2023-12-08T02:52:22.754527Z",
            "url": "https://files.pythonhosted.org/packages/8d/d3/6857e5b8212244be739d78eb8459646c0ab49a83e54b2dd3259ee2abe37d/ffmpeg_downloader-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-08 02:52:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "python-ffmpegio",
    "github_project": "python-ffmpegio-downloader",
    "github_not_found": true,
    "lcname": "ffmpeg-downloader"
}
        
Elapsed time: 0.77028s