diff --git a/whisper-caption.ipynb b/whisper-caption.ipynb index 45c5939..2a54636 100644 --- a/whisper-caption.ipynb +++ b/whisper-caption.ipynb @@ -2,6 +2,8 @@ "cells": [ { "cell_type": "markdown", + "id": "783e4589", + "metadata": {}, "source": [ "# Setup \n", "Here we install the required packages for this application. Additionally, we will remove a single line from the ImageMagick policy that would have prevented this code from running, create our experiments directory, and restart the kernel. \n", @@ -11,363 +13,178 @@ "> Just move onto the next section of this notebook after running the install cell below. \n", "\n", "> We should be especially wary of this if we intend to 'Run All' cells, as it will catch here." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "import os\n", - "!pip install -r requirements.txt\n", - "!pip install git+https://github.com/openai/whisper.git \n", - "!pip install yt-dlp\n", - "!pip install moviepy --upgrade\n", - "!apt-get update\n", - "!apt install imagemagick -y\n", - "# remove line 88 of vim ~/../etc/ImageMagick-6/policy.xml to run MoviePy\n", - "!sed -i '88d' ~/../etc/ImageMagick-6/policy.xml \n", - "!mkdir experiments\n", - "os._exit(00)" - ], + "id": "d06587d3", + "metadata": { + "execution": { + "iopub.execute_input": "2023-12-14T15:58:15.069487Z", + "iopub.status.busy": "2023-12-14T15:58:15.069013Z" + } + }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - "Requirement already satisfied: numpy in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 1)) (1.23.1)\n", - "Requirement already satisfied: torch in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 2)) (1.12.0+cu116)\n", - "Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 3)) (4.64.0)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 1)) (1.23.4)\n", + "Requirement already satisfied: torch in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 2)) (1.12.1+cu116)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 3)) (4.64.1)\n", "Collecting more-itertools\n", - " Downloading more_itertools-9.0.0-py3-none-any.whl (52 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m52.8/52.8 kB\u001b[0m \u001b[31m15.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: transformers>=4.19.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 5)) (4.20.1)\n", + " Downloading more_itertools-10.1.0-py3-none-any.whl (55 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m55.8/55.8 kB\u001b[0m \u001b[31m13.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: transformers>=4.19.0 in /usr/local/lib/python3.9/dist-packages (from -r requirements.txt (line 5)) (4.21.3)\n", "Collecting ffmpeg-python==0.2.0\n", " Downloading ffmpeg_python-0.2.0-py3-none-any.whl (25 kB)\n", "Requirement already satisfied: future in /usr/lib/python3/dist-packages (from ffmpeg-python==0.2.0->-r requirements.txt (line 6)) (0.18.2)\n", - "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from torch->-r requirements.txt (line 2)) (4.3.0)\n", - "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (21.3)\n", - "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (0.8.1)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (2.28.1)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from torch->-r requirements.txt (line 2)) (4.4.0)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (5.4.1)\n", "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (0.12.1)\n", - "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (2022.7.9)\n", - "Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (3.7.1)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.9/dist-packages (from packaging>=20.0->transformers>=4.19.0->-r requirements.txt (line 5)) (3.0.9)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (2.8)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (2.28.2)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (3.9.0)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (23.0)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (0.12.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->-r requirements.txt (line 5)) (2022.10.31)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (2019.11.28)\n", - "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (2.1.0)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (1.26.10)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (1.26.14)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (2.1.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests->transformers>=4.19.0->-r requirements.txt (line 5)) (2.8)\n", "Installing collected packages: more-itertools, ffmpeg-python\n", - "Successfully installed ffmpeg-python-0.2.0 more-itertools-9.0.0\n", + "Successfully installed ffmpeg-python-0.2.0 more-itertools-10.1.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", - "\u001b[0m--- Logging error ---\n", - "Traceback (most recent call last):\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 177, in emit\n", - " self.console.print(renderable, overflow=\"ignore\", crop=False, style=style)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1673, in print\n", - " extend(render(renderable, render_options))\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1305, in render\n", - " for render_output in iter_render:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 134, in __rich_console__\n", - " for line in lines:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/segment.py\", line 249, in split_lines\n", - " for segment in segments:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1283, in render\n", - " renderable = rich_cast(renderable)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/protocol.py\", line 36, in rich_cast\n", - " renderable = cast_method()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 130, in __rich__\n", - " pip_cmd = get_best_invocation_for_this_pip()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/entrypoints.py\", line 58, in get_best_invocation_for_this_pip\n", - " if found_executable and os.path.samefile(\n", - " File \"/usr/lib/python3.9/genericpath.py\", line 101, in samefile\n", - " s2 = os.stat(f2)\n", - "FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip'\n", - "Call stack:\n", - " File \"/usr/local/bin/pip\", line 8, in \n", - " sys.exit(main())\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/main.py\", line 70, in main\n", - " return command.main(cmd_args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 101, in main\n", - " return self._main(args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 223, in _main\n", - " self.handle_pip_version_check(options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/req_command.py\", line 190, in handle_pip_version_check\n", - " pip_self_version_check(session, options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 236, in pip_self_version_check\n", - " logger.warning(\"[present-rich] %s\", upgrade_prompt)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1458, in warning\n", - " self._log(WARNING, msg, args, **kwargs)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1589, in _log\n", - " self.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1599, in handle\n", - " self.callHandlers(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1661, in callHandlers\n", - " hdlr.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 952, in handle\n", - " self.emit(record)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 179, in emit\n", - " self.handleError(record)\n", - "Message: '[present-rich] %s'\n", - "Arguments: (UpgradePrompt(old='22.2.2', new='22.3'),)\n", - "Collecting git+https://github.com/openai/whisper.git\n", - " Cloning https://github.com/openai/whisper.git to /tmp/pip-req-build-c53h26nn\n", - " Running command git clone --filter=blob:none --quiet https://github.com/openai/whisper.git /tmp/pip-req-build-c53h26nn\n", - " Resolved https://github.com/openai/whisper.git to commit 9f70a352f9f8630ab3aa0d06af5cb9532bd8c21d\n", - " Preparing metadata (setup.py) ... \u001b[?25ldone\n", - "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (1.23.1)\n", - "Requirement already satisfied: torch in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (1.12.0+cu116)\n", - "Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (4.64.0)\n", - "Requirement already satisfied: more-itertools in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (9.0.0)\n", - "Requirement already satisfied: transformers>=4.19.0 in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (4.20.1)\n", - "Requirement already satisfied: ffmpeg-python==0.2.0 in /usr/local/lib/python3.9/dist-packages (from whisper==1.0) (0.2.0)\n", - "Requirement already satisfied: future in /usr/lib/python3/dist-packages (from ffmpeg-python==0.2.0->whisper==1.0) (0.18.2)\n", - "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (2022.7.9)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (2.28.1)\n", - "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (0.8.1)\n", - "Requirement already satisfied: tokenizers!=0.11.3,<0.13,>=0.11.1 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (0.12.1)\n", - "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (5.4.1)\n", - "Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (3.7.1)\n", - "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from transformers>=4.19.0->whisper==1.0) (21.3)\n", - "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from torch->whisper==1.0) (4.3.0)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.9/dist-packages (from packaging>=20.0->transformers>=4.19.0->whisper==1.0) (3.0.9)\n", - "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->whisper==1.0) (2.1.0)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests->transformers>=4.19.0->whisper==1.0) (1.26.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests->transformers>=4.19.0->whisper==1.0) (2019.11.28)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests->transformers>=4.19.0->whisper==1.0) (2.8)\n", - "Building wheels for collected packages: whisper\n", - " Building wheel for whisper (setup.py) ... \u001b[?25ldone\n", - "\u001b[?25h Created wheel for whisper: filename=whisper-1.0-py3-none-any.whl size=1175200 sha256=5aa58a8b8995833c7ba388ad1f9e0b361d4a080c93d9aeb721ade99f30791ada\n", - " Stored in directory: /tmp/pip-ephem-wheel-cache-iuaqh4yx/wheels/fe/03/29/e7919208d11b4ab32972cb448bb84a9a675d92cd52c9a48341\n", - "Successfully built whisper\n", - "Installing collected packages: whisper\n", - "Successfully installed whisper-1.0\n", + "\u001b[0mCollecting git+https://github.com/openai/whisper.git\n", + " Cloning https://github.com/openai/whisper.git to /tmp/pip-req-build-x64hkq7r\n", + " Running command git clone --filter=blob:none --quiet https://github.com/openai/whisper.git /tmp/pip-req-build-x64hkq7r\n", + " Resolved https://github.com/openai/whisper.git to commit 8bc8860694949db53c42ba47ddc23786c2e02a8b\n", + " Installing build dependencies ... \u001b[?25ldone\n", + "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", + "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (from openai-whisper==20231117) (4.64.1)\n", + "Requirement already satisfied: torch in /usr/local/lib/python3.9/dist-packages (from openai-whisper==20231117) (1.12.1+cu116)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.9/dist-packages (from openai-whisper==20231117) (1.23.4)\n", + "Collecting numba\n", + " Downloading numba-0.58.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.6/3.6 MB\u001b[0m \u001b[31m89.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n", + "\u001b[?25hCollecting tiktoken\n", + " Downloading tiktoken-0.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m110.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting triton<3,>=2.0.0\n", + " Downloading triton-2.1.0-0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (89.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m89.3/89.3 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: more-itertools in /usr/local/lib/python3.9/dist-packages (from openai-whisper==20231117) (10.1.0)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.9/dist-packages (from triton<3,>=2.0.0->openai-whisper==20231117) (3.9.0)\n", + "Collecting llvmlite<0.42,>=0.41.0dev0\n", + " Downloading llvmlite-0.41.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.6/43.6 MB\u001b[0m \u001b[31m40.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.9/dist-packages (from tiktoken->openai-whisper==20231117) (2022.10.31)\n", + "Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/python3.9/dist-packages (from tiktoken->openai-whisper==20231117) (2.28.2)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from torch->openai-whisper==20231117) (4.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper==20231117) (2.8)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper==20231117) (2.1.1)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper==20231117) (1.26.14)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper==20231117) (2019.11.28)\n", + "Building wheels for collected packages: openai-whisper\n", + " Building wheel for openai-whisper (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25h Created wheel for openai-whisper: filename=openai_whisper-20231117-py3-none-any.whl size=801404 sha256=c0bd0d48ac3538b84b96cd466de6670b501fa08cbf69985636c855b2ccb03c56\n", + " Stored in directory: /tmp/pip-ephem-wheel-cache-p8pdl1qo/wheels/fe/03/29/e7919208d11b4ab32972cb448bb84a9a675d92cd52c9a48341\n", + "Successfully built openai-whisper\n", + "Installing collected packages: triton, llvmlite, tiktoken, numba, openai-whisper\n", + "Successfully installed llvmlite-0.41.1 numba-0.58.1 openai-whisper-20231117 tiktoken-0.5.2 triton-2.1.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", - "\u001b[0m--- Logging error ---\n", - "Traceback (most recent call last):\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 177, in emit\n", - " self.console.print(renderable, overflow=\"ignore\", crop=False, style=style)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1673, in print\n", - " extend(render(renderable, render_options))\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1305, in render\n", - " for render_output in iter_render:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 134, in __rich_console__\n", - " for line in lines:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/segment.py\", line 249, in split_lines\n", - " for segment in segments:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1283, in render\n", - " renderable = rich_cast(renderable)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/protocol.py\", line 36, in rich_cast\n", - " renderable = cast_method()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 130, in __rich__\n", - " pip_cmd = get_best_invocation_for_this_pip()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/entrypoints.py\", line 58, in get_best_invocation_for_this_pip\n", - " if found_executable and os.path.samefile(\n", - " File \"/usr/lib/python3.9/genericpath.py\", line 101, in samefile\n", - " s2 = os.stat(f2)\n", - "FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip'\n", - "Call stack:\n", - " File \"/usr/local/bin/pip\", line 8, in \n", - " sys.exit(main())\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/main.py\", line 70, in main\n", - " return command.main(cmd_args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 101, in main\n", - " return self._main(args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 223, in _main\n", - " self.handle_pip_version_check(options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/req_command.py\", line 190, in handle_pip_version_check\n", - " pip_self_version_check(session, options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 236, in pip_self_version_check\n", - " logger.warning(\"[present-rich] %s\", upgrade_prompt)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1458, in warning\n", - " self._log(WARNING, msg, args, **kwargs)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1589, in _log\n", - " self.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1599, in handle\n", - " self.callHandlers(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1661, in callHandlers\n", - " hdlr.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 952, in handle\n", - " self.emit(record)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 179, in emit\n", - " self.handleError(record)\n", - "Message: '[present-rich] %s'\n", - "Arguments: (UpgradePrompt(old='22.2.2', new='22.3'),)\n", - "Collecting yt-dlp\n", - " Downloading yt_dlp-2022.10.4-py2.py3-none-any.whl (2.7 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.7/2.7 MB\u001b[0m \u001b[31m10.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", + "\u001b[0mCollecting yt-dlp\n", + " Downloading yt_dlp-2023.11.16-py2.py3-none-any.whl (3.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m55.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", + "\u001b[?25hCollecting urllib3<3,>=1.26.17\n", + " Downloading urllib3-2.1.0-py3-none-any.whl (104 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m104.6/104.6 kB\u001b[0m \u001b[31m28.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting mutagen\n", - " Downloading mutagen-1.46.0-py3-none-any.whl (193 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m193.6/193.6 kB\u001b[0m \u001b[31m19.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hCollecting websockets\n", - " Downloading websockets-10.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m106.5/106.5 kB\u001b[0m \u001b[31m10.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + " Downloading mutagen-1.47.0-py3-none-any.whl (194 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.4/194.4 kB\u001b[0m \u001b[31m49.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pycryptodomex\n", - " Downloading pycryptodomex-3.15.0-cp35-abi3-manylinux2010_x86_64.whl (2.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.3/2.3 MB\u001b[0m \u001b[31m32.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", + " Downloading pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m101.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting requests<3,>=2.31.0\n", + " Downloading requests-2.31.0-py3-none-any.whl (62 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.6/62.6 kB\u001b[0m \u001b[31m19.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting websockets\n", + " Downloading websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m130.0/130.0 kB\u001b[0m \u001b[31m36.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting brotli\n", + " Downloading Brotli-1.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (2.8 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m110.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: certifi in /usr/lib/python3/dist-packages (from yt-dlp) (2019.11.28)\n", - "Collecting brotli\n", - " Downloading Brotli-1.0.9-cp39-cp39-manylinux1_x86_64.whl (357 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m357.2/357.2 kB\u001b[0m \u001b[31m32.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hInstalling collected packages: brotli, websockets, pycryptodomex, mutagen, yt-dlp\n", - "Successfully installed brotli-1.0.9 mutagen-1.46.0 pycryptodomex-3.15.0 websockets-10.4 yt-dlp-2022.10.4\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3,>=2.31.0->yt-dlp) (2.8)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests<3,>=2.31.0->yt-dlp) (2.1.1)\n", + "Installing collected packages: brotli, websockets, urllib3, pycryptodomex, mutagen, requests, yt-dlp\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 1.26.14\n", + " Uninstalling urllib3-1.26.14:\n", + " Successfully uninstalled urllib3-1.26.14\n", + " Attempting uninstall: requests\n", + " Found existing installation: requests 2.28.2\n", + " Uninstalling requests-2.28.2:\n", + " Successfully uninstalled requests-2.28.2\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "botocore 1.27.90 requires urllib3<1.27,>=1.25.4, but you have urllib3 2.1.0 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[0mSuccessfully installed brotli-1.1.0 mutagen-1.47.0 pycryptodomex-3.19.0 requests-2.31.0 urllib3-2.1.0 websockets-12.0 yt-dlp-2023.11.16\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", - "\u001b[0m--- Logging error ---\n", - "Traceback (most recent call last):\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 177, in emit\n", - " self.console.print(renderable, overflow=\"ignore\", crop=False, style=style)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1673, in print\n", - " extend(render(renderable, render_options))\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1305, in render\n", - " for render_output in iter_render:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 134, in __rich_console__\n", - " for line in lines:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/segment.py\", line 249, in split_lines\n", - " for segment in segments:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1283, in render\n", - " renderable = rich_cast(renderable)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/protocol.py\", line 36, in rich_cast\n", - " renderable = cast_method()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 130, in __rich__\n", - " pip_cmd = get_best_invocation_for_this_pip()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/entrypoints.py\", line 58, in get_best_invocation_for_this_pip\n", - " if found_executable and os.path.samefile(\n", - " File \"/usr/lib/python3.9/genericpath.py\", line 101, in samefile\n", - " s2 = os.stat(f2)\n", - "FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip'\n", - "Call stack:\n", - " File \"/usr/local/bin/pip\", line 8, in \n", - " sys.exit(main())\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/main.py\", line 70, in main\n", - " return command.main(cmd_args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 101, in main\n", - " return self._main(args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 223, in _main\n", - " self.handle_pip_version_check(options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/req_command.py\", line 190, in handle_pip_version_check\n", - " pip_self_version_check(session, options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 236, in pip_self_version_check\n", - " logger.warning(\"[present-rich] %s\", upgrade_prompt)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1458, in warning\n", - " self._log(WARNING, msg, args, **kwargs)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1589, in _log\n", - " self.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1599, in handle\n", - " self.callHandlers(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1661, in callHandlers\n", - " hdlr.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 952, in handle\n", - " self.emit(record)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 179, in emit\n", - " self.handleError(record)\n", - "Message: '[present-rich] %s'\n", - "Arguments: (UpgradePrompt(old='22.2.2', new='22.3'),)\n", - "Collecting moviepy\n", + "\u001b[0mCollecting moviepy\n", " Downloading moviepy-1.0.3.tar.gz (388 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m388.3/388.3 kB\u001b[0m \u001b[31m42.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m388.3/388.3 kB\u001b[0m \u001b[31m39.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting decorator<5.0,>=4.0.2\n", " Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)\n", - "Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.9/dist-packages (from moviepy) (4.64.0)\n", - "Requirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.9/dist-packages (from moviepy) (2.28.1)\n", + "Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.9/dist-packages (from moviepy) (4.64.1)\n", + "Requirement already satisfied: requests<3.0,>=2.8.1 in /usr/local/lib/python3.9/dist-packages (from moviepy) (2.31.0)\n", "Collecting proglog<=1.0.0\n", " Downloading proglog-0.1.10-py3-none-any.whl (6.1 kB)\n", - "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.9/dist-packages (from moviepy) (1.23.1)\n", - "Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.9/dist-packages (from moviepy) (2.19.3)\n", + "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.9/dist-packages (from moviepy) (1.23.4)\n", + "Requirement already satisfied: imageio<3.0,>=2.5 in /usr/local/lib/python3.9/dist-packages (from moviepy) (2.25.0)\n", "Collecting imageio_ffmpeg>=0.2.0\n", - " Downloading imageio_ffmpeg-0.4.7-py3-none-manylinux2010_x86_64.whl (26.9 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m26.9/26.9 MB\u001b[0m \u001b[31m53.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", + " Downloading imageio_ffmpeg-0.4.9-py3-none-manylinux2010_x86_64.whl (26.9 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m26.9/26.9 MB\u001b[0m \u001b[31m54.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pillow>=8.3.2 in /usr/local/lib/python3.9/dist-packages (from imageio<3.0,>=2.5->moviepy) (9.2.0)\n", - "Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2.1.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2.8)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests<3.0,>=2.8.1->moviepy) (1.26.10)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.9/dist-packages (from imageio_ffmpeg>=0.2.0->moviepy) (66.1.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2.1.1)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2019.11.28)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2.1.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3.0,>=2.8.1->moviepy) (2.8)\n", "Building wheels for collected packages: moviepy\n", " Building wheel for moviepy (setup.py) ... \u001b[?25ldone\n", - "\u001b[?25h Created wheel for moviepy: filename=moviepy-1.0.3-py3-none-any.whl size=110728 sha256=762beb1a41a1e86c2f57da6d1a3bc98e900649f0bdabe16d11b325428aab557a\n", - " Stored in directory: /root/.cache/pip/wheels/29/15/e4/4f790bec6acd51a00b67e8ee1394f0bc6e0135c315f8ff399a\n", + "\u001b[?25h Created wheel for moviepy: filename=moviepy-1.0.3-py3-none-any.whl size=110728 sha256=0f9220879874bfec8f3d9dba38a730c78c64489a3817624ea53507cdb744f9d9\n", + " Stored in directory: /root/.cache/pip/wheels/f0/23/29/c6379bde05643dcb1cd56f5ad432f26acb3ca7db075dc0c35f\n", "Successfully built moviepy\n", "Installing collected packages: proglog, imageio_ffmpeg, decorator, moviepy\n", " Attempting uninstall: decorator\n", " Found existing installation: decorator 5.1.1\n", " Uninstalling decorator-5.1.1:\n", " Successfully uninstalled decorator-5.1.1\n", - "Successfully installed decorator-4.4.2 imageio_ffmpeg-0.4.7 moviepy-1.0.3 proglog-0.1.10\n", + "Successfully installed decorator-4.4.2 imageio_ffmpeg-0.4.9 moviepy-1.0.3 proglog-0.1.10\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", - "\u001b[0m--- Logging error ---\n", - "Traceback (most recent call last):\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 177, in emit\n", - " self.console.print(renderable, overflow=\"ignore\", crop=False, style=style)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1673, in print\n", - " extend(render(renderable, render_options))\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1305, in render\n", - " for render_output in iter_render:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 134, in __rich_console__\n", - " for line in lines:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/segment.py\", line 249, in split_lines\n", - " for segment in segments:\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/console.py\", line 1283, in render\n", - " renderable = rich_cast(renderable)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_vendor/rich/protocol.py\", line 36, in rich_cast\n", - " renderable = cast_method()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 130, in __rich__\n", - " pip_cmd = get_best_invocation_for_this_pip()\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/entrypoints.py\", line 58, in get_best_invocation_for_this_pip\n", - " if found_executable and os.path.samefile(\n", - " File \"/usr/lib/python3.9/genericpath.py\", line 101, in samefile\n", - " s2 = os.stat(f2)\n", - "FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip'\n", - "Call stack:\n", - " File \"/usr/local/bin/pip\", line 8, in \n", - " sys.exit(main())\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/main.py\", line 70, in main\n", - " return command.main(cmd_args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 101, in main\n", - " return self._main(args)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py\", line 223, in _main\n", - " self.handle_pip_version_check(options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/req_command.py\", line 190, in handle_pip_version_check\n", - " pip_self_version_check(session, options)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/self_outdated_check.py\", line 236, in pip_self_version_check\n", - " logger.warning(\"[present-rich] %s\", upgrade_prompt)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1458, in warning\n", - " self._log(WARNING, msg, args, **kwargs)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1589, in _log\n", - " self.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1599, in handle\n", - " self.callHandlers(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 1661, in callHandlers\n", - " hdlr.handle(record)\n", - " File \"/usr/lib/python3.9/logging/__init__.py\", line 952, in handle\n", - " self.emit(record)\n", - " File \"/usr/local/lib/python3.9/dist-packages/pip/_internal/utils/logging.py\", line 179, in emit\n", - " self.handleError(record)\n", - "Message: '[present-rich] %s'\n", - "Arguments: (UpgradePrompt(old='22.2.2', new='22.3'),)\n", - "Get:1 https://deb.nodesource.com/node_16.x focal InRelease [4583 B]\n", - "Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] \n", - "Get:3 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB] \n", + "Get:1 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease [1581 B]\n", + "Get:2 https://deb.nodesource.com/node_16.x focal InRelease [4583 B] \n", + "Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] \n", "Get:4 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease [18.1 kB]\n", - "Get:5 https://deb.nodesource.com/node_16.x focal/main amd64 Packages [773 B]\n", - "Get:6 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [926 kB]\n", - "Get:7 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [27.5 kB]\n", - "Get:8 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1655 kB]\n", - "Get:9 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [2267 kB]\n", - "Get:10 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] \n", - "Get:11 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal/main amd64 Packages [25.0 kB]\n", - "Get:12 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB] \n", - "Get:13 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]\n", - "Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]\n", - "Get:15 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]\n", - "Get:16 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]\n", - "Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2737 kB]\n", - "Get:18 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [37.7 kB]\n", - "Get:19 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1224 kB]\n", - "Get:20 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1772 kB]\n", - "Get:21 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [55.2 kB]\n", - "Get:22 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [27.4 kB]\n", - "Fetched 24.2 MB in 2s (10.4 MB/s) \n", + "Hit:5 http://archive.ubuntu.com/ubuntu focal InRelease \n", + "Get:6 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 Packages [1314 kB]\n", + "Get:7 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] \n", + "Get:8 https://deb.nodesource.com/node_16.x focal/main amd64 Packages [776 B] \n", + "Get:9 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal/main amd64 Packages [35.8 kB]\n", + "Get:10 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]\n", + "Get:11 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [3130 kB]\n", + "Get:12 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [32.0 kB]\n", + "Get:13 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [3279 kB]\n", + "Get:14 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [3282 kB]\n", + "Get:15 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1443 kB]\n", + "Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [3761 kB]\n", + "Get:17 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1148 kB]\n", + "Get:18 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [29.3 kB]\n", + "Get:19 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [55.2 kB]\n", + "Get:20 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [28.6 kB]\n", + "Fetched 17.9 MB in 2s (10.6 MB/s) \n", "Reading package lists... Done\n", "Reading package lists... Done\n", "Building dependency tree \n", @@ -392,36 +209,36 @@ " libgs9-common libidn11 libijs-0.35 libilmbase24 libjbig2dec0\n", " libmagickcore-6.q16-6-extra libnetpbm10 libopenexr24 libpaper-utils\n", " libpaper1 libwmf0.2-7 netpbm poppler-data\n", - "0 upgraded, 22 newly installed, 0 to remove and 98 not upgraded.\n", + "0 upgraded, 22 newly installed, 0 to remove and 167 not upgraded.\n", "Need to get 15.8 MB of archives.\n", "After this operation, 64.1 MB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 fonts-droid-fallback all 1:6.0.1r16-1.1 [1805 kB]\n", "Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 poppler-data all 0.4.9-2 [1475 kB]\n", "Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 fonts-noto-mono all 20200323-1build1~ubuntu20.04.1 [80.6 kB]\n", "Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 fonts-urw-base35 all 20170801.1-3 [6333 kB]\n", - "Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgs9-common all 9.50~dfsg-5ubuntu4.6 [681 kB]\n", + "Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgs9-common all 9.50~dfsg-5ubuntu4.11 [682 kB]\n", "Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 libidn11 amd64 1.33-2.2ubuntu2 [46.2 kB]\n", "Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 libijs-0.35 amd64 0.35-15 [15.7 kB]\n", "Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 libjbig2dec0 amd64 0.18-1ubuntu1 [60.0 kB]\n", "Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 libpaper1 amd64 1.1.28 [13.0 kB]\n", - "Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgs9 amd64 9.50~dfsg-5ubuntu4.6 [2173 kB]\n", - "Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 ghostscript amd64 9.50~dfsg-5ubuntu4.6 [51.8 kB]\n", - "Get:12 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 imagemagick-6.q16 amd64 8:6.9.10.23+dfsg-2.1ubuntu11.4 [427 kB]\n", - "Get:13 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 imagemagick amd64 8:6.9.10.23+dfsg-2.1ubuntu11.4 [14.4 kB]\n", + "Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgs9 amd64 9.50~dfsg-5ubuntu4.11 [2174 kB]\n", + "Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 ghostscript amd64 9.50~dfsg-5ubuntu4.11 [52.1 kB]\n", + "Get:12 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 imagemagick-6.q16 amd64 8:6.9.10.23+dfsg-2.1ubuntu11.9 [427 kB]\n", + "Get:13 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 imagemagick amd64 8:6.9.10.23+dfsg-2.1ubuntu11.9 [14.4 kB]\n", "Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libdjvulibre-text all 3.5.27.1-14ubuntu0.1 [49.2 kB]\n", "Get:15 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libdjvulibre21 amd64 3.5.27.1-14ubuntu0.1 [578 kB]\n", "Get:16 http://archive.ubuntu.com/ubuntu focal/universe amd64 libilmbase24 amd64 2.3.0-6build1 [75.1 kB]\n", "Get:17 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libopenexr24 amd64 2.3.0-6ubuntu0.5 [592 kB]\n", "Get:18 http://archive.ubuntu.com/ubuntu focal/main amd64 libwmf0.2-7 amd64 0.2.8.4-17ubuntu1 [149 kB]\n", - "Get:19 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libmagickcore-6.q16-6-extra amd64 8:6.9.10.23+dfsg-2.1ubuntu11.4 [64.6 kB]\n", + "Get:19 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libmagickcore-6.q16-6-extra amd64 8:6.9.10.23+dfsg-2.1ubuntu11.9 [64.8 kB]\n", "Get:20 http://archive.ubuntu.com/ubuntu focal/universe amd64 libnetpbm10 amd64 2:10.0-15.3build1 [58.0 kB]\n", "Get:21 http://archive.ubuntu.com/ubuntu focal/main amd64 libpaper-utils amd64 1.1.28 [8400 B]\n", "Get:22 http://archive.ubuntu.com/ubuntu focal/universe amd64 netpbm amd64 2:10.0-15.3build1 [1017 kB]\n", - "Fetched 15.8 MB in 1s (12.6 MB/s) \u001b[0m\u001b[33m\n", + "Fetched 15.8 MB in 2s (8187 kB/s) \u001b[0m\u001b[33m\n", "Preconfiguring packages ...\n", "\n", "\u001b7\u001b[0;23r\u001b8\u001b[1ASelecting previously unselected package fonts-droid-fallback.\n", - "(Reading database ... 78556 files and directories currently installed.)\n", + "(Reading database ... 69943 files and directories currently installed.)\n", "Preparing to unpack .../00-fonts-droid-fallback_1%3a6.0.1r16-1.1_all.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 0%]\u001b[49m\u001b[39m [..........................................................] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 1%]\u001b[49m\u001b[39m [..........................................................] \u001b8Unpacking fonts-droid-fallback (1:6.0.1r16-1.1) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 2%]\u001b[49m\u001b[39m [#.........................................................] \u001b8Selecting previously unselected package poppler-data.\n", @@ -434,8 +251,8 @@ "Preparing to unpack .../03-fonts-urw-base35_20170801.1-3_all.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 8%]\u001b[49m\u001b[39m [####......................................................] \u001b8Unpacking fonts-urw-base35 (20170801.1-3) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 9%]\u001b[49m\u001b[39m [#####.....................................................] \u001b8Selecting previously unselected package libgs9-common.\n", - "Preparing to unpack .../04-libgs9-common_9.50~dfsg-5ubuntu4.6_all.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 10%]\u001b[49m\u001b[39m [#####.....................................................] \u001b8Unpacking libgs9-common (9.50~dfsg-5ubuntu4.6) ...\n", + "Preparing to unpack .../04-libgs9-common_9.50~dfsg-5ubuntu4.11_all.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 10%]\u001b[49m\u001b[39m [#####.....................................................] \u001b8Unpacking libgs9-common (9.50~dfsg-5ubuntu4.11) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 11%]\u001b[49m\u001b[39m [######....................................................] \u001b8Selecting previously unselected package libidn11:amd64.\n", "Preparing to unpack .../05-libidn11_1.33-2.2ubuntu2_amd64.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 12%]\u001b[49m\u001b[39m [#######...................................................] \u001b8Unpacking libidn11:amd64 (1.33-2.2ubuntu2) ...\n", @@ -449,17 +266,17 @@ "Preparing to unpack .../08-libpaper1_1.1.28_amd64.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 19%]\u001b[49m\u001b[39m [###########...............................................] \u001b8Unpacking libpaper1:amd64 (1.1.28) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 20%]\u001b[49m\u001b[39m [###########...............................................] \u001b8Selecting previously unselected package libgs9:amd64.\n", - "Preparing to unpack .../09-libgs9_9.50~dfsg-5ubuntu4.6_amd64.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 21%]\u001b[49m\u001b[39m [############..............................................] \u001b8Unpacking libgs9:amd64 (9.50~dfsg-5ubuntu4.6) ...\n", + "Preparing to unpack .../09-libgs9_9.50~dfsg-5ubuntu4.11_amd64.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 21%]\u001b[49m\u001b[39m [############..............................................] \u001b8Unpacking libgs9:amd64 (9.50~dfsg-5ubuntu4.11) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 22%]\u001b[49m\u001b[39m [#############.............................................] \u001b8Selecting previously unselected package ghostscript.\n", - "Preparing to unpack .../10-ghostscript_9.50~dfsg-5ubuntu4.6_amd64.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 24%]\u001b[49m\u001b[39m [#############.............................................] \u001b8Unpacking ghostscript (9.50~dfsg-5ubuntu4.6) ...\n", + "Preparing to unpack .../10-ghostscript_9.50~dfsg-5ubuntu4.11_amd64.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 24%]\u001b[49m\u001b[39m [#############.............................................] \u001b8Unpacking ghostscript (9.50~dfsg-5ubuntu4.11) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 25%]\u001b[49m\u001b[39m [##############............................................] \u001b8Selecting previously unselected package imagemagick-6.q16.\n", - "Preparing to unpack .../11-imagemagick-6.q16_8%3a6.9.10.23+dfsg-2.1ubuntu11.4_amd64.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 26%]\u001b[49m\u001b[39m [##############............................................] \u001b8Unpacking imagemagick-6.q16 (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", + "Preparing to unpack .../11-imagemagick-6.q16_8%3a6.9.10.23+dfsg-2.1ubuntu11.9_amd64.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 26%]\u001b[49m\u001b[39m [##############............................................] \u001b8Unpacking imagemagick-6.q16 (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 27%]\u001b[49m\u001b[39m [###############...........................................] \u001b8Selecting previously unselected package imagemagick.\n", - "Preparing to unpack .../12-imagemagick_8%3a6.9.10.23+dfsg-2.1ubuntu11.4_amd64.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 28%]\u001b[49m\u001b[39m [################..........................................] \u001b8Unpacking imagemagick (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", + "Preparing to unpack .../12-imagemagick_8%3a6.9.10.23+dfsg-2.1ubuntu11.9_amd64.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 28%]\u001b[49m\u001b[39m [################..........................................] \u001b8Unpacking imagemagick (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 29%]\u001b[49m\u001b[39m [################..........................................] \u001b8Selecting previously unselected package libdjvulibre-text.\n", "Preparing to unpack .../13-libdjvulibre-text_3.5.27.1-14ubuntu0.1_all.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 30%]\u001b[49m\u001b[39m [#################.........................................] \u001b8Unpacking libdjvulibre-text (3.5.27.1-14ubuntu0.1) ...\n", @@ -476,8 +293,8 @@ "Preparing to unpack .../17-libwmf0.2-7_0.2.8.4-17ubuntu1_amd64.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 39%]\u001b[49m\u001b[39m [######################....................................] \u001b8Unpacking libwmf0.2-7:amd64 (0.2.8.4-17ubuntu1) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 40%]\u001b[49m\u001b[39m [#######################...................................] \u001b8Selecting previously unselected package libmagickcore-6.q16-6-extra:amd64.\n", - "Preparing to unpack .../18-libmagickcore-6.q16-6-extra_8%3a6.9.10.23+dfsg-2.1ubuntu11.4_amd64.deb ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 42%]\u001b[49m\u001b[39m [########################..................................] \u001b8Unpacking libmagickcore-6.q16-6-extra:amd64 (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", + "Preparing to unpack .../18-libmagickcore-6.q16-6-extra_8%3a6.9.10.23+dfsg-2.1ubuntu11.9_amd64.deb ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 42%]\u001b[49m\u001b[39m [########################..................................] \u001b8Unpacking libmagickcore-6.q16-6-extra:amd64 (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 43%]\u001b[49m\u001b[39m [########################..................................] \u001b8Selecting previously unselected package libnetpbm10.\n", "Preparing to unpack .../19-libnetpbm10_2%3a10.0-15.3build1_amd64.deb ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 44%]\u001b[49m\u001b[39m [#########################.................................] \u001b8Unpacking libnetpbm10 (2:10.0-15.3build1) ...\n", @@ -502,7 +319,7 @@ "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 71%]\u001b[49m\u001b[39m [#########################################.................] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 72%]\u001b[49m\u001b[39m [#########################################.................] \u001b8Setting up libjbig2dec0:amd64 (0.18-1ubuntu1) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 73%]\u001b[49m\u001b[39m [##########################################................] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 74%]\u001b[49m\u001b[39m [###########################################...............] \u001b8Setting up libidn11:amd64 (1.33-2.2ubuntu2) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 75%]\u001b[49m\u001b[39m [###########################################...............] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 76%]\u001b[49m\u001b[39m [############################################..............] \u001b8Setting up netpbm (2:10.0-15.3build1) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 78%]\u001b[49m\u001b[39m [############################################..............] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 79%]\u001b[49m\u001b[39m [#############################################.............] \u001b8Setting up imagemagick-6.q16 (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 78%]\u001b[49m\u001b[39m [############################################..............] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 79%]\u001b[49m\u001b[39m [#############################################.............] \u001b8Setting up imagemagick-6.q16 (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 80%]\u001b[49m\u001b[39m [##############################################............] \u001b8update-alternatives: using /usr/bin/compare-im6.q16 to provide /usr/bin/compare (compare) in auto mode\n", "update-alternatives: using /usr/bin/compare-im6.q16 to provide /usr/bin/compare-im6 (compare-im6) in auto mode\n", "update-alternatives: using /usr/bin/animate-im6.q16 to provide /usr/bin/animate (animate) in auto mode\n", @@ -527,31 +344,40 @@ "update-alternatives: using /usr/bin/mogrify-im6.q16 to provide /usr/bin/mogrify-im6 (mogrify-im6) in auto mode\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 81%]\u001b[49m\u001b[39m [##############################################............] \u001b8Setting up fonts-droid-fallback (1:6.0.1r16-1.1) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 82%]\u001b[49m\u001b[39m [###############################################...........] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 83%]\u001b[49m\u001b[39m [################################################..........] \u001b8Setting up libdjvulibre-text (3.5.27.1-14ubuntu0.1) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 84%]\u001b[49m\u001b[39m [################################################..........] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 85%]\u001b[49m\u001b[39m [#################################################.........] \u001b8Setting up libgs9-common (9.50~dfsg-5ubuntu4.6) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 87%]\u001b[49m\u001b[39m [##################################################........] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 88%]\u001b[49m\u001b[39m [##################################################........] \u001b8Setting up libgs9:amd64 (9.50~dfsg-5ubuntu4.6) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 84%]\u001b[49m\u001b[39m [################################################..........] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 85%]\u001b[49m\u001b[39m [#################################################.........] \u001b8Setting up libgs9-common (9.50~dfsg-5ubuntu4.11) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 87%]\u001b[49m\u001b[39m [##################################################........] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 88%]\u001b[49m\u001b[39m [##################################################........] \u001b8Setting up libgs9:amd64 (9.50~dfsg-5ubuntu4.11) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 89%]\u001b[49m\u001b[39m [###################################################.......] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 90%]\u001b[49m\u001b[39m [####################################################......] \u001b8Setting up libdjvulibre21:amd64 (3.5.27.1-14ubuntu0.1) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 91%]\u001b[49m\u001b[39m [####################################################......] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 92%]\u001b[49m\u001b[39m [#####################################################.....] \u001b8Setting up ghostscript (9.50~dfsg-5ubuntu4.6) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 93%]\u001b[49m\u001b[39m [######################################################....] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 94%]\u001b[49m\u001b[39m [######################################################....] \u001b8Setting up imagemagick (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", - "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 96%]\u001b[49m\u001b[39m [#######################################################...] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 97%]\u001b[49m\u001b[39m [########################################################..] \u001b8Setting up libmagickcore-6.q16-6-extra:amd64 (8:6.9.10.23+dfsg-2.1ubuntu11.4) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 91%]\u001b[49m\u001b[39m [####################################################......] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 92%]\u001b[49m\u001b[39m [#####################################################.....] \u001b8Setting up ghostscript (9.50~dfsg-5ubuntu4.11) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 93%]\u001b[49m\u001b[39m [######################################################....] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 94%]\u001b[49m\u001b[39m [######################################################....] \u001b8Setting up imagemagick (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", + "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 96%]\u001b[49m\u001b[39m [#######################################################...] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 97%]\u001b[49m\u001b[39m [########################################################..] \u001b8Setting up libmagickcore-6.q16-6-extra:amd64 (8:6.9.10.23+dfsg-2.1ubuntu11.9) ...\n", "\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 98%]\u001b[49m\u001b[39m [########################################################..] \u001b8\u001b7\u001b[24;0f\u001b[42m\u001b[30mProgress: [ 99%]\u001b[49m\u001b[39m [#########################################################.] \u001b8Processing triggers for man-db (2.9.1-1) ...\n", "Processing triggers for fontconfig (2.13.1-2ubuntu3) ...\n", "Processing triggers for mime-support (3.64ubuntu1) ...\n", "Processing triggers for hicolor-icon-theme (0.17-2) ...\n", - "Processing triggers for libc-bin (2.31-0ubuntu9.7) ...\n", + "Processing triggers for libc-bin (2.31-0ubuntu9.9) ...\n", "\n", "\u001b7\u001b[0;24r\u001b8\u001b[1A\u001b[Jmkdir: cannot create directory ‘experiments’: File exists\n" ] } ], - "metadata": { - "execution": { - "iopub.execute_input": "2022-10-28T15:30:52.313173Z", - "iopub.status.busy": "2022-10-28T15:30:52.312462Z" - } - } + "source": [ + "import os\n", + "!pip install -r requirements.txt\n", + "!pip install git+https://github.com/openai/whisper.git \n", + "!pip install yt-dlp\n", + "!pip install moviepy --upgrade\n", + "!apt-get update\n", + "!apt install imagemagick -y\n", + "# remove line 88 of vim ~/../etc/ImageMagick-6/policy.xml to run MoviePy\n", + "!sed -i '88d' ~/../etc/ImageMagick-6/policy.xml \n", + "!mkdir experiments\n", + "os._exit(00)" + ] }, { "cell_type": "markdown", + "id": "dd9b2695", + "metadata": {}, "source": [ "# The function\n", "\n", @@ -560,12 +386,22 @@ "This works for both youtube links and videos uploaded directly to this Notebook, and will automatically scale the size of the captions to the video size.\n", "\n", "See the params notes section of the start of the function and the function call below for more details on the arguments for this function." - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 2, + "id": "ffedc8a2", + "metadata": { + "execution": { + "iopub.execute_input": "2023-12-14T16:01:24.820153Z", + "iopub.status.busy": "2023-12-14T16:01:24.819481Z", + "iopub.status.idle": "2023-12-14T16:01:27.566764Z", + "shell.execute_reply": "2023-12-14T16:01:27.566129Z", + "shell.execute_reply.started": "2023-12-14T16:01:24.820129Z" + } + }, + "outputs": [], "source": [ "## Imports\n", "from __future__ import unicode_literals\n", @@ -584,7 +420,7 @@ "\n", "import cv2\n", "\n", - "def subtitle_video(download, url, aud_opts, vid_opts, model_type, name, audio_file, input_file, output, uploaded_vid = None):\n", + "def subtitle_video(download, url, aud_opts, vid_opts, model_type, name, audio_file, input_file, output, lang, uploaded_vid = None):\n", "# ------------------------------------------------------------------------------------------------------------------------------\n", "# Params:\n", "# ------------------------------------------------------------------------------------------------------------------------------\n", @@ -636,7 +472,7 @@ " model = whisper.load_model(model_type)\n", " \n", " # Get text from speech for subtitles from audio file\n", - " result = model.transcribe(f'experiments/{name}/{audio_file}', task = 'translate')\n", + " result = model.transcribe(f'''experiments/{name}/{audio_file}''', task = 'translate', language = lang)\n", " \n", " # create Subtitle dataframe, and save it\n", " dict1 = {'start':[], 'end':[], 'text':[]}\n", @@ -646,7 +482,7 @@ " dict1['text'].append(i['text'])\n", " df = pd.DataFrame.from_dict(dict1)\n", " df.to_csv(f'experiments/{name}/subs.csv')\n", - " vidcap = cv2.VideoCapture(f'experiments/{name}/{input_file}')\n", + " vidcap = cv2.VideoCapture(f'''experiments/{name}/{input_file}''')\n", " success,image = vidcap.read()\n", " height = image.shape[0]\n", " width =image.shape[1]\n", @@ -669,28 +505,30 @@ " final.write_videofile(f'experiments/{name}/{output}', fps=video.fps, remove_temp=True, codec=\"libx264\", audio_codec=\"aac\")\n", "\n", "\n" - ], - "outputs": [], - "metadata": { - "execution": { - "iopub.execute_input": "2022-10-28T15:39:08.370304Z", - "iopub.status.busy": "2022-10-28T15:39:08.369806Z", - "iopub.status.idle": "2022-10-28T15:39:08.384733Z", - "shell.execute_reply": "2022-10-28T15:39:08.384003Z", - "shell.execute_reply.started": "2022-10-28T15:39:08.370269Z" - } - } + ] }, { "cell_type": "markdown", + "id": "fe41bec9", + "metadata": {}, "source": [ "## Declare relevant variables" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 3, + "id": "52afb830", + "metadata": { + "execution": { + "iopub.execute_input": "2023-12-14T16:01:27.568394Z", + "iopub.status.busy": "2023-12-14T16:01:27.567872Z", + "iopub.status.idle": "2023-12-14T16:01:27.571778Z", + "shell.execute_reply": "2023-12-14T16:01:27.571316Z", + "shell.execute_reply.started": "2023-12-14T16:01:27.568371Z" + } + }, + "outputs": [], "source": [ "# Options for youtube download to ensure we get a high quality audio file extraction. \n", "# This is key, as extracting from the video in the same download seemed to significantly affect caption Word Error Rate in our experiments.\n", @@ -705,21 +543,13 @@ "# Youtube URL\n", "URL = 'https://www.youtube.com/watch?v=lHcIfogQQ60' # The Hobbit Smaug in many languages\n", "\n", - "URL = 'https://youtu.be/3DKDt693p8Y' # steamed hams in many languages, sample link\n" - ], - "outputs": [], - "metadata": { - "execution": { - "iopub.execute_input": "2022-10-28T15:39:08.931281Z", - "iopub.status.busy": "2022-10-28T15:39:08.930594Z", - "iopub.status.idle": "2022-10-28T15:39:08.935603Z", - "shell.execute_reply": "2022-10-28T15:39:08.934989Z", - "shell.execute_reply.started": "2022-10-28T15:39:08.931249Z" - } - } + "URL = 'https://youtu.be/C-WFK7iKPb0?feature=shared' # steamed hams in many languages, sample link\n" + ] }, { "cell_type": "markdown", + "id": "187a443f", + "metadata": {}, "source": [ "# Generate subtitles\n", "\n", @@ -728,293 +558,89 @@ "The only required change is to the URL value if we would like that to be a different video from the sample. \n", "\n", "> Note: If we run into an error, we can try restarting the kernel and running these 3 code cells again. It is unclear why this happens, but MoviePy seems to require a restart to the kernel occasionally." - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": 29, - "source": [ - "name = 'run1'\n", - "subtitle_video(\n", - " download=True,\n", - " uploaded_vid=None, # path to local file\n", - " url = URL,\n", - " name = name,\n", - " aud_opts = opts_aud,\n", - " vid_opts = opts_vid, # Video download settings\n", - " model_type = 'medium', # change to 'large' if you want more accurate results, \n", - " #change to 'medium.en' or 'large.en' for all english language tasks,\n", - " #and change to 'small' or 'base' for faster inference\n", - " audio_file = \"audio.mp3\",\n", - " input_file = 'video.mp4',\n", - " output = 'output.mp4')\n" - ], + "execution_count": null, + "id": "f315ad30", + "metadata": { + "execution": { + "iopub.execute_input": "2023-12-14T16:01:29.519176Z", + "iopub.status.busy": "2023-12-14T16:01:29.518322Z" + } + }, "outputs": [ { - "output_type": "stream", - "name": "stdout", - "text": [ - "Starting AutoCaptioning...\n", - "Results will be stored in experiments/run9\n" - ] - }, - { - "output_type": "stream", - "name": "stderr", - "text": [ - "t: 0%| | 2/515 [01:47<7:37:29, 53.51s/it, now=None]" - ] - }, - { - "output_type": "stream", "name": "stdout", - "text": [ - "Moviepy - Building video experiments/run9/test.mp4.\n", - "MoviePy - Writing audio in testTEMP_MPY_wvf_snd.mp3\n" - ] - }, - { "output_type": "stream", - "name": "stderr", "text": [ - "\n", - "chunk: 0%| | 0/378 [00:00