diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..748d4dbf --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,12 @@ +cff-version: 1.2.0 +title: PySceneDetect +message: www.scenedetect.com +type: software +authors: + - given-names: Brandon + family-names: Castellano + affiliation: www.bcastell.com +repository-code: 'https://github.com/Breakthrough/PySceneDetect' +url: 'https://www.scenedetect.com' +abstract: Video Cut Detection and Analysis Tool +license: BSD-3-Clause diff --git a/LICENSE b/LICENSE index 59b46506..b8110e2f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,103 +1,28 @@ -By downloading, copying, installing, or using this software, you agree -to the terms of this license, and those contained in the "Ancillary -Software Licenses" section below. If you do not agree to any of these -terms or licenses, do not download, install, copy, or use the software -or any other material included in in distribution. +BSD 3-Clause License ------------------------------------------------------------------------ - - PySceneDetect License (BSD 3-Clause) - < http://www.bcastell.com/projects/PySceneDetect > - -Copyright (C) 2014-2024, Brandon Castellano. -All rights reserved. +Copyright (C) 2024, Brandon Castellano Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials - provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------ - - Ancillary Software Licenses - -This software uses the following third-party open source libraries and -are released under the terms detailed below. By downloading, copying, -installing or using this software/tutorial, you agree to these terms. - ------------------------------------------------------------------------ - - -> click [Copyright (C) 2017, Armin Ronacher]: - This software uses OpenCV; see thirdparty/LICENSE-CLICK or visit: - [ http://click.pocoo.org/license/ ] - -> NumPy [Copyright (C) 2005-2016, Numpy Developers]: - This software uses Numpy; see thirdparty/LICENSE-NUMPY or visit: - [ http://www.numpy.org/license.html ] - -> OpenCV [Copyright (C) 2017, Itseez]: - This software uses OpenCV; see thirdparty/LICENSE-OPENCV or visit: - [ http://opencv.org/license.html ] - -> PyAV [Copyright (C) 2017, Mike Boers and others]: - This software uses PyAV; see thirdparty/LICENSE-PYAV or visit: - [ https://github.com/PyAV-Org/PyAV/blob/main/LICENSE.txt ] - -> pytest [Copyright (C) 2004-2017, Holger Krekel and others]: - This software uses pytest; see thirdparty/LICENSE-PYTEST or visit: - [ https://docs.pytest.org/en/latest/license.html ] - -> simpletable [Copyright (C) 2014-2019, Matheus Vieira Portela and others]: - This software uses simpletable; see thirdparty/LICENSE-SIMPLETABLE or visit: - [ https://github.com/matheusportela/simpletable/blob/master/LICENSE ] - -> tqdm [Copyright (C) 2013-2018, Casper da Costa-Luis, - Google Inc., and Noam Yorav-Raphael]: - This software uses tqdm; see thirdparty/LICENSE-TQDM or visit: - [ https://github.com/tqdm/tqdm/blob/master/LICENCE ] - - ------------------------------------------------------------------------ - -This software may also invoke FFmpeg or mkvmerge, if available. If required, -these programs can be obtained from following URLs: - - FFmpeg: [ https://ffmpeg.org/download.html ] - mkvmerge: [ https://mkvtoolnix.download/downloads.html ] - -Once installed, ensure the program is in your PATH variable (i.e. you can -run the `ffmpeg` or `mkvmerge` command from any location). - -Certain distributions of PySceneDetect may include ffmpeg. See -thirdparty/LICENSE-FFMPEG file or visit [ https://ffmpeg.org ] - -FFmpeg is a trademark of Fabrice Bellard -mkvmerge is Copyright (C) 2005-2016, Matroska - -Windows distributions may include a compiled Python distribution. For license -information regarding the distributed version of Python, see the -thirdparty/LICENSE-PYTHON file, or visit [ https://docs.python.org/3/license.html ] diff --git a/README.md b/README.md index b0aef51d..b47d7c86 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![PySceneDetect](https://raw.githubusercontent.com/Breakthrough/PySceneDetect/main/website/pages/img/pyscenedetect_logo_small.png) ========================================================== -Video Scene Cut Detection and Analysis Tool +Video Cut Detection and Analysis Tool ---------------------------------------------------------- [![Build Status](https://img.shields.io/github/actions/workflow/status/Breakthrough/PySceneDetect/build.yml)](https://github.com/Breakthrough/PySceneDetect/actions) @@ -117,7 +117,9 @@ This program uses free code signing provided by [SignPath.io](https://signpath.i ## License -Licensed under BSD 3-Clause (see the `LICENSE` file for details). +BSD-3-Clause; see [`LICENSE`](LICENSE) and [`THIRD-PARTY.md`](THIRD-PARTY.md) for details. + +---------------------------------------------------------- Copyright (C) 2014-2024 Brandon Castellano. All rights reserved. diff --git a/THIRD-PARTY.md b/THIRD-PARTY.md new file mode 100644 index 00000000..959c2e4f --- /dev/null +++ b/THIRD-PARTY.md @@ -0,0 +1,75 @@ +# Ancillary Software Licenses + +This file includes license information for various open-source projects +that are imported, derived into, or distributed with PySceneDetect. +See [LICENSE](LICENSE) for the main PySceneDetect license. + +Depending on the features being used, PySceneDetect uses the following +third-party software which are released under the terms detailed below. +By downloading, copying, installing or using this software, you agree +to these terms. + +In no particular order: + +----------------------------------------------------------------------- + +> click [Copyright (C) 2017, Armin Ronacher]: + This software uses OpenCV; see thirdparty/LICENSE-CLICK or visit: + [ http://click.pocoo.org/license/ ] + +> NumPy [Copyright (C) 2005-2016, Numpy Developers]: + This software uses Numpy; see thirdparty/LICENSE-NUMPY or visit: + [ http://www.numpy.org/license.html ] + +> OpenCV [Copyright (C) 2017, Itseez]: + This software uses OpenCV; see thirdparty/LICENSE-OPENCV or visit: + [ http://opencv.org/license.html ] + +> PyAV [Copyright (C) 2017, Mike Boers and others]: + This software uses PyAV; see thirdparty/LICENSE-PYAV or visit: + [ https://github.com/PyAV-Org/PyAV/blob/main/LICENSE.txt ] + +> pytest [Copyright (C) 2004-2017, Holger Krekel and others]: + This software uses pytest; see thirdparty/LICENSE-PYTEST or visit: + [ https://docs.pytest.org/en/latest/license.html ] + +> simpletable [Copyright (C) 2014-2019, Matheus Vieira Portela and others]: + This software uses simpletable; see thirdparty/LICENSE-SIMPLETABLE or visit: + [ https://github.com/matheusportela/simpletable/blob/master/LICENSE ] + +> tqdm [Copyright (C) 2013-2018, Casper da Costa-Luis, + Google Inc., and Noam Yorav-Raphael]: + This software uses tqdm; see thirdparty/LICENSE-TQDM or visit: + [ https://github.com/tqdm/tqdm/blob/master/LICENCE ] + +> MoviePy [ Copyright (C) 2015 Zulko ] + This software uses tqdm; see thirdparty/LICENSE-TQDM or visit: + [ https://github.com/Zulko/moviepy/blob/master/LICENCE.txt ] + +----------------------------------------------------------------------- + +This software may also invoke FFmpeg or mkvmerge, if available. If required, +these programs can be obtained from following URLs: + + FFmpeg: [ https://ffmpeg.org/download.html ] + mkvmerge: [ https://mkvtoolnix.download/downloads.html ] + +Once installed, ensure the program is in your PATH variable (i.e. you can +run the `ffmpeg` or `mkvmerge` command from any location). + +Certain distributions of PySceneDetect may include ffmpeg. See +thirdparty/LICENSE-FFMPEG file or visit [ https://ffmpeg.org ] + +FFmpeg is a trademark of Fabrice Bellard +mkvmerge is Copyright (C) 2005-2016, Matroska + +Windows distributions may include a compiled Python distribution. For license +information regarding the distributed version of Python, see the +thirdparty/LICENSE-PYTHON file, or visit [ https://docs.python.org/3/license.html ] + +----------------------------------------------------------------------- + +If any information above is incorrect, please let us know. +Visit [ https://www.scenedetect.com ] for contact information. + + diff --git a/dist/pre_release.py b/dist/pre_release.py index 0673020a..d7fc6735 100644 --- a/dist/pre_release.py +++ b/dist/pre_release.py @@ -1,16 +1,15 @@ # -*- coding: utf-8 -*- import os import sys -import xml sys.path.append(os.path.abspath(".")) import scenedetect VERSION = scenedetect.__version__ - -installer_aip = '' -with open("dist/installer/PySceneDetect.aip", "r") as f: - installer_aip = f.read() +if len(sys.argv) <= 2 or not ("--ignore-installer" in sys.argv): + installer_aip = '' + with open("dist/installer/PySceneDetect.aip", "r") as f: + installer_aip = f.read() aip_version = f"" diff --git a/scenedetect/_cli/__init__.py b/scenedetect/_cli/__init__.py index 66008f6f..1890b9b5 100644 --- a/scenedetect/_cli/__init__.py +++ b/scenedetect/_cli/__init__.py @@ -45,50 +45,33 @@ # About & copyright message string shown for the 'about' CLI command (scenedetect about). _ABOUT_STRING = """ Site: http://scenedetect.com/ -Docs: http://manual.scenedetect.com/ +Docs: https://www.scenedetect.com/docs/ Code: https://github.com/Breakthrough/PySceneDetect/ Copyright (C) 2014-2024 Brandon Castellano. All rights reserved. PySceneDetect is released under the BSD 3-Clause license. See the -included LICENSE file or visit the PySceneDetect website for details. +LICENSE file or visit [ https://www.scenedetect.com/copyright/ ]. This software uses the following third-party components: > NumPy [Copyright (C) 2018, Numpy Developers] > OpenCV [Copyright (C) 2018, OpenCV Team] > click [Copyright (C) 2018, Armin Ronacher] > simpletable [Copyright (C) 2014 Matheus Vieira Portela] + > PyAV [Copyright (C) 2017, Mike Boers and others] + > MoviePy [Copyright (C) 2015 Zulko] This software may also invoke the following third-party executables: > FFmpeg [Copyright (C) 2018, Fabrice Bellard] > mkvmerge [Copyright (C) 2005-2016, Matroska] -If included with your distribution of PySceneDetect, see the included -LICENSE-FFMPEG and LICENSE-MKVMERGE or visit: - [ https://scenedetect.com/copyright/ ] +Certain distributions of PySceneDetect may include ffmpeg. See +the included LICENSE-FFMPEG or visit [ https://ffmpeg.org ]. -FFmpeg and mkvmerge are distributed only with certain PySceneDetect -releases, in order to allow for automatic video splitting capability. -If they were not included with your distribution, they can usually be -installed from your operating system's package manager, or downloaded -from the following URLs: - - FFmpeg: [ https://ffmpeg.org/download.html ] - mkvmerge: [ https://mkvtoolnix.download/downloads.html ] - (Note that mkvmerge is a part of the mkvtoolnix package.) - -Once installed, ensure the respective program can be accessed from the -same location running PySceneDetect by calling the `ffmpeg` or -`mkvmerge` command from a terminal/command prompt. - -PySceneDetect will automatically use whichever program is available on -the computer, depending on the specified command-line options. - -Additionally, certain Windows distributions may include a compiled -Python distribution. For license information regarding the distributed -version of Python, see the included LICENSE-PYTHON file for details, -or visit the following URL: [ https://docs.python.org/3/license.html ] +Binary distributions of PySceneDetect include a compiled Python +distribution. See the included LICENSE-PYTHON file, or visit +[ https://docs.python.org/3/license.html ]. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. """ diff --git a/scenedetect/_thirdparty/LICENSE-MOVIEPY b/scenedetect/_thirdparty/LICENSE-MOVIEPY new file mode 100644 index 00000000..1f7d430a --- /dev/null +++ b/scenedetect/_thirdparty/LICENSE-MOVIEPY @@ -0,0 +1,28 @@ +MoviePy license +Copyright (c) 2015 Zulko + +URL: https://github.com/Zulko/moviepy/blob/master/LICENCE.txt + +----------------------------------------------------------------------- + +The MIT License (MIT) + +Copyright (c) 2015 Zulko + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/website/requirements.txt b/website/requirements.txt index 3c69294b..cd132c7f 100644 --- a/website/requirements.txt +++ b/website/requirements.txt @@ -1,2 +1,2 @@ mkdocs==1.5.2 -jinja2==3.1.3 +jinja2==3.1.4