A good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest quality such as 8K.

Overview

๐Ÿš€ youtube-dl-web

A good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest quality such as 8K.

Sadly, the public hosted website has been shut down. You are free to host this tool yourself!

Screenshot of the Webpage

Motive

There is no user-friendly method to download the highest quality of a YouTube video, without errors, and without installing software on your computer.

The web application, youtube-dl-web aims to create a user-friendly interface for downloading such videos.

Features

  • โฉ Quick Download of pre-encoded YouTube Videos

    Most YouTube downloaders would only provide the sources that youtube-dl-web provides in its Quick Download category. Although preservation of quality is important, the Quick Download option is for users who simply just want an mp4, of a decent quality, downloaded fast.

  • โœจ Quality Selection

    The most powerful feature of this interface is the ability to select any pair of audio and video for a resulting matroska video file. Unfortunately, due to the differing nature of the video and audio containers, matroska is the only option that can be used in order to preserve fast download speeds, and original quality. Again, the Quick Download section exists.

  • ๐Ÿ“ก Direct Download Streaming

    Youtube-dl-web never saves a file on the server disk, or makes you wait to start receiving data. As soon as a stream is received from YouTube, it immediately starts streaming over to your browser, for a direct download. This also works for the "pick your own" section, ensuring download speeds essentially limited only by your network connection.

  • ๐ŸŽž๏ธ Unlimited Video Length

    Given that the video data is streamed directly, there is no limit to the size of a video you can download using the website, unlike some other alternative download sites. Videos that were previously live are supported, alongside their full Live Chat JSON.

  • ๐Ÿ“ข Subtitle Download

    Download videos with their subtitles in all supported languages, with options to embed directly into the video (experimental) or to export separately as either a .srt, .ass or .vtt file!

  • ๐Ÿ‘ User Friendly UI

    The UI is modern, easy to use and informative. Arguably the biggest limitation of youtube-dl is the command line interface, as most users do not know how to use it, and would often go back to subpar websites for downloading videos, at a lower quality.

  • ๐Ÿ”— Direct Substitution

    You can simply replace "www.youtube.com" with the tool's URL (keeping the watch?v= part), and it will automatically pick up the video URL you are trying to use.

Hosting Yourself

Architecture

Youtube-dl-web relies on three main components:

  • The built frontend files, which are served to the user
  • The backend API server, which does the downloading
  • The NGINX Proxy, which routes requests to the API server, and serves the frontend files

The API server and the NGINX Proxy can most easily be deployed using Docker Compose. The frontend can be built manually with yarn, although a build script which accomplishes this in a platform independent way (using a temporary Docker container) is included.

Getting Started

For the hosting experience to be smooth for everyone, youtube-dl-web can be easily deployed using Docker Compose in a secure manner, secluded from your host operating system and without you having to install any dependencies.

Step 1: Install Docker and Docker Compose

Verify you have them installed with:

$ docker --version
Docker version 20.10.12

$ docker-compose --version
Docker Compose version 2.2.3

The actual versions don't matter much, just about anything should do!

If you're on an ARM system, such as a Raspberry Pi (untested) you can install Docker Compose as so:

$ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Step 3: Clone this repo

$ git clone https://github.com/xxcodianxx/youtube-dl-web

Step 2: Build Frontend Static Files

This makes sure that all of the HTML is compiled ready for the webserver to serve.

$ cd frontend
$ bash ./build.sh

Step 3: Start the Docker Compose cluster

This will start all the necessary containers in their environments.

$ cd ..
$ docker-compose up -d --build

That's it!

You can look at your running containers with:

$ docker-compose ps

And view their logs with:

$ docker-compose logs -f

SSL

The steps above describe running youtube-dl-web without SSL, meaning that all traffic sent to and from your webserver is over the internet in the clear!

It's not like there's that much sensitive data being sent over, but it's nice to have HTTPS support.

For home hosting, this is not required at all.

Obtaining SSL Certificates

The NGINX config is set up for Let's Encrypt certificates.

Once generated with certbot, they can be found in /etc/letsencrypt/live/yourdomain.example.net/*.pem

Enabling SSL Support

Add your certificates (files fullchain.pem and privkey.pem) into the nginx/certs directory. You can obtain these from Let's Encrypt with certbot.

First, stop the cluster if you have it running:

$ docker-compose down

Then, go into the docker-compose.yml file and follow the commented directions.

After this, repeat step 3 again, and you should be good to go!

Comments
  • frontend build.sh error

    frontend build.sh error

    I have a error installing the frontend on debian 10/11

    root@v-1:~# git clone https://github.com/xxcodianxx/youtube-dl-web
    Cloning into 'youtube-dl-web'...
    remote: Enumerating objects: 194, done.
    remote: Counting objects: 100% (194/194), done.
    remote: Compressing objects: 100% (143/143), done.
    remote: Total 194 (delta 94), reused 127 (delta 45), pack-reused 0
    Receiving objects: 100% (194/194), 598.44 KiB | 10.50 MiB/s, done.
    Resolving deltas: 100% (94/94), done.
    root@v-1:~# cd youtube-dl-web/frontend/
    root@v-1:~/youtube-dl-web/frontend# bash ./build.sh
    Unable to find image 'node:17' locally
    17: Pulling from library/node
    e756f3fdd6a3: Pull complete
    bf168a674899: Pull complete
    e604223835cc: Pull complete
    6d5c91c4cd86: Pull complete
    2cc8d8854262: Pull complete
    b8798d556362: Pull complete
    52af362cf952: Pull complete
    3ee1c40b6f6b: Pull complete
    600346d6347c: Pull complete
    Digest: sha256:e44a474a494c84a059b50d81d93c4bc281cf66d27b1cab5210b1bb657c6750a5
    Status: Downloaded newer image for node:17
    yarn install v1.22.18
    [1/4] Resolving packages...
    [2/4] Fetching packages...
    warning Pattern ["@types/react@latest"] is trying to unpack in the same destination "/home/node/.cache/yarn/v6/npm-@types-react-17.0.38-f24249fefd89357d5fa71f739a686b8d7c7202bd-integrity/node_modules/@types/react" as pattern ["@types/react@*","@types/react@*","@types/react@*"]. This could result in non-deterministic behavior, skipping.
    info There appears to be trouble with your network connection. Retrying...
    info There appears to be trouble with your network connection. Retrying...
    info There appears to be trouble with your network connection. Retrying...
    [3/4] Linking dependencies...
    warning "@emotion/styled > @emotion/[email protected]" has unmet peer dependency "@babel/core@^7.0.0".
    warning "@emotion/styled > @emotion/babel-plugin > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
    warning "react-scripts > [email protected]" has unmet peer dependency "autoprefixer@^10.0.2".
    warning "react-scripts > eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-syntax-flow@^7.14.5".
    warning "react-scripts > eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-transform-react-jsx@^7.14.9".
    warning "react-scripts > webpack-dev-server > [email protected]" has unmet peer dependency "@types/express@^4.17.13".
    error Could not write file "/mnt/yarn-error.log": "EACCES: permission denied, open '/mnt/yarn-error.log'"
    error An unexpected error occurred: "EACCES: permission denied, mkdir '/mnt/node_modules'".
    info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
    

    I have tried a clean install and have have even set /mnt to 777 still have the error any help please Thanks

    bug 
    opened by djnaff 6
  • Support for Live Videos

    Support for Live Videos

    Would it be possible to add support for live videos? I am asking because I am interested in using this server for streaming audio from YouTube without downloading it via the http://localhost/api/dl/<VIDEO ID>?f=bestaudio endpoint. It works perfectly except for the lack of live video support!

    enhancement 
    opened by DavidBerdik 4
  • Docker issue

    Docker issue

    Hi, I'm new to docker and I'm having some trouble with self-hosting. I'm using a Raspberry Pi Zero and when I try to build frontend files or start the docker container I get this message:

    WARNING: The requested image's platform (linux/arm/v7) does not match the detected host platform (linux/arm/v6) and no specific platform was requested
    failed to resize tty, using default size
    

    I had no problems running everything the same way in VirualBox with Ubuntu. What should I do to make it work for Raspberry Pi?

    question 
    opened by Kreeony 3
  • Permit downloading non-YouTube videos

    Permit downloading non-YouTube videos

    Currently, only YouTube links are allowed. Itโ€™d be a nice touch to allow any link. If itโ€™s supported by yt-dlp, it should output download links. If not, an error would pop up.

    enhancement help wanted wontfix 
    opened by Mennaruuk 2
  • Allow for wider selection of base URLs to be used

    Allow for wider selection of base URLs to be used

    Currently, only base URLs of the form https://www.youtube.com and https://youtu.be work. The fix would be to allow base URLs such as:

    https://youtube.com
    www.youtube.com
    youtube.com
    youtu.be
    

    This would also require changing the message that pops up: image

    opened by rayokamoto 2
  • build error while the container tries to install brotli (required by yt-dlp)

    build error while the container tries to install brotli (required by yt-dlp)

    Hello, i tried installing this on my raspberry pi but when i do docker compose up -d --build it installs some packages and then fails while installing brotli

    here is the error

    [+] Building 16.2s (9/14)
     => [internal] load build definition from Dockerfile                                                                                                                          0.0s
     => => transferring dockerfile: 32B                                                                                                                                           0.0s
     => [internal] load .dockerignore                                                                                                                                             0.0s
     => => transferring context: 2B                                                                                                                                               0.0s
     => [internal] load metadata for docker.io/library/python:3.9-slim                                                                                                            0.6s
     => [ 1/10] FROM docker.io/library/python:3.9-slim@sha256:dcf2eafca55558d8b1aa73edd6aa41b7187c5bcb63e533a7b04a0673f81f37fe                                                    0.0s
     => [internal] load build context                                                                                                                                             0.0s
     => => transferring context: 230B                                                                                                                                             0.0s
     => CACHED [ 2/10] COPY ./requirements.txt /tmp/requirements.txt                                                                                                              0.0s
     => CACHED [ 3/10] RUN pip3  --disable-pip-version-check --no-cache-dir install -r /tmp/requirements.txt                                                                      0.0s
     => CACHED [ 4/10] RUN rm -v /tmp/requirements.txt                                                                                                                            0.0s
     => ERROR [ 5/10] RUN pip3 install -U yt-dlp                                                                                                                                 15.3s
    ------
     > [ 5/10] RUN pip3 install -U yt-dlp:
    #0 2.309 Collecting yt-dlp
    #0 2.474   Downloading yt_dlp-2022.8.19-py2.py3-none-any.whl (2.7 MB)
    #0 2.870      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 2.7/2.7 MB 6.9 MB/s eta 0:00:00
    #0 3.632 Collecting pycryptodomex
    #0 3.670   Downloading pycryptodomex-3.15.0.tar.gz (4.5 MB)
    #0 4.286      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 4.5/4.5 MB 7.6 MB/s eta 0:00:00
    #0 5.096   Preparing metadata (setup.py): started
    #0 6.308   Preparing metadata (setup.py): finished with status 'done'
    #0 6.505 Collecting brotli
    #0 6.549   Downloading Brotli-1.0.9.zip (510 kB)
    #0 6.625      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 510.2/510.2 KB 7.5 MB/s eta 0:00:00
    #0 6.705   Preparing metadata (setup.py): started
    #0 7.409   Preparing metadata (setup.py): finished with status 'done'
    #0 7.720 Collecting websockets
    #0 7.752   Downloading websockets-10.3.tar.gz (84 kB)
    #0 7.778      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 84.1/84.1 KB 4.2 MB/s eta 0:00:00
    #0 7.829   Preparing metadata (setup.py): started
    #0 8.448   Preparing metadata (setup.py): finished with status 'done'
    #0 8.548 Collecting mutagen
    #0 8.581   Downloading mutagen-1.45.1-py3-none-any.whl (218 kB)
    #0 8.622      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 218.7/218.7 KB 6.5 MB/s eta 0:00:00
    #0 8.740 Collecting certifi
    #0 8.772   Downloading certifi-2022.6.15-py3-none-any.whl (160 kB)
    #0 8.805      โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 160.2/160.2 KB 6.0 MB/s eta 0:00:00
    #0 8.832 Building wheels for collected packages: brotli, pycryptodomex, websockets
    #0 8.835   Building wheel for brotli (setup.py): started
    #0 9.582   Building wheel for brotli (setup.py): finished with status 'error'
    #0 9.603   error: subprocess-exited-with-error
    #0 9.603
    #0 9.603   ร— python setup.py bdist_wheel did not run successfully.
    #0 9.603   โ”‚ exit code: 1
    #0 9.603   โ•ฐโ”€> [17 lines of output]
    #0 9.603       /usr/local/lib/python3.9/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'build-base' will not be supported in future versions. Please use the underscore name 'build_base' instead
    #0 9.603         warnings.warn(
    #0 9.603       running bdist_wheel
    #0 9.603       running build
    #0 9.603       running build_py
    #0 9.603       creating bin
    #0 9.603       creating bin/lib.linux-armv7l-3.9
    #0 9.603       copying python/brotli.py -> bin/lib.linux-armv7l-3.9
    #0 9.603       running build_ext
    #0 9.603       building '_brotli' extension
    #0 9.603       creating bin/temp.linux-armv7l-3.9
    #0 9.603       creating bin/temp.linux-armv7l-3.9/c
    #0 9.603       creating bin/temp.linux-armv7l-3.9/c/common
    #0 9.603       creating bin/temp.linux-armv7l-3.9/c/dec
    #0 9.603       creating bin/temp.linux-armv7l-3.9/c/enc
    #0 9.603       gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Ic/include -I/usr/local/include/python3.9 -c c/common/constants.c -o bin/temp.linux-armv7l-3.9/c/common/constants.o
    #0 9.603       error: command 'gcc' failed: No such file or directory
    #0 9.603       [end of output]
    #0 9.603
    #0 9.603   note: This error originates from a subprocess, and is likely not a problem with pip.
    #0 9.604   ERROR: Failed building wheel for brotli
    #0 9.605   Running setup.py clean for brotli
    #0 10.21   Building wheel for pycryptodomex (setup.py): started
    #0 11.16   Building wheel for pycryptodomex (setup.py): finished with status 'error'
    #0 11.24   error: subprocess-exited-with-error
    #0 11.24
    #0 11.24   ร— python setup.py bdist_wheel did not run successfully.
    #0 11.24   โ”‚ exit code: 1
    #0 11.24   โ•ฐโ”€> [333 lines of output]
    #0 11.24       Testing support for clang
    #0 11.24       Target does not support clang
    #0 11.24       Testing support for gcc
    #0 11.24       Target does not support gcc
    #0 11.24       Testing support for stdint.h header
    #0 11.24       Target does not support stdint.h header
    #0 11.24       Testing support for 128-bit integer
    #0 11.24       Target does not support 128-bit integer
    #0 11.24       Testing support for cpuid.h header
    #0 11.24       Target does not support cpuid.h header
    #0 11.24       Testing support for intrin.h header
    #0 11.24       Target does not support intrin.h header
    #0 11.24       Testing support for posix_memalign
    #0 11.24       Target does not support posix_memalign
    #0 11.24       Testing support for memalign
    #0 11.24       Target does not support memalign
    #0 11.24       Testing support for SSE2(intrin.h)
    #0 11.24       Target does not support SSE2(intrin.h)
    #0 11.24       Testing support for SSE2(x86intrin.h)
    #0 11.24       Target does not support SSE2(x86intrin.h)
    #0 11.24       Testing support for SSE2(emmintrin.h)
    #0 11.24       Target does not support SSE2(emmintrin.h)
    #0 11.24       Warning: compiler does not support AESNI instructions
    #0 11.24       Warning: compiler does not support CLMUL instructions
    #0 11.24       running bdist_wheel
    #0 11.24       running build
    #0 11.24       running build_py
    #0 11.24       creating build/lib.linux-armv7l-3.9
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome
    #0 11.24       copying lib/Cryptodome/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_openpgp.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ChaCha20.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ctr.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/PKCS1_OAEP.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_siv.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ofb.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ccm.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ARC4.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/CAST.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ARC2.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_gcm.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/Salsa20.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/DES3.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_cfb.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ecb.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/DES.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_cbc.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_EKSBlowfish.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ocb.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ChaCha20_Poly1305.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/AES.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/PKCS1_v1_5.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_eax.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/Blowfish.py -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_224.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA512.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_384.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA1.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/RIPEMD.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/CMAC.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA384.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/BLAKE2b.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA224.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/BLAKE2s.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/cSHAKE128.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/TupleHash256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/cSHAKE256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KangarooTwelve.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD4.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHAKE128.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/keccak.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/HMAC.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_512.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD2.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD5.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/TupleHash128.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHAKE256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/Poly1305.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/RIPEMD160.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KMAC128.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KMAC256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_256.py -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/_PBES.py -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/PEM.py -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/PKCS8.py -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/ElGamal.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/RSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/ECC.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/_openssh.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/DSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Protocol/SecretSharing.py -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Protocol/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Protocol/KDF.py -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Random
    #0 11.24       copying lib/Cryptodome/Random/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Random
    #0 11.24       copying lib/Cryptodome/Random/random.py -> build/lib.linux-armv7l-3.9/Cryptodome/Random
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/DSS.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/pss.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/eddsa.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/pkcs1_15.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/PKCS1_PSS.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/PKCS1_v1_5.py -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_file_system.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/Padding.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/RFC1751.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_cpu_features.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/asn1.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_raw_api.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/py3compat.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/strxor.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/number.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/Counter.py -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerBase.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerGMP.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerNative.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerCustom.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/Numbers.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/Primality.py -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest
    #0 11.24       copying lib/Cryptodome/SelfTest/st_common.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest
    #0 11.24       copying lib/Cryptodome/SelfTest/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest
    #0 11.24       copying lib/Cryptodome/SelfTest/loader.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest
    #0 11.24       copying lib/Cryptodome/SelfTest/__main__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_OCB.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_CAST.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_CFB.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_DES.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_SIV.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_ARC4.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_Salsa20.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_ChaCha20_Poly1305.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_DES3.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_OpenPGP.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/common.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_ChaCha20.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_CTR.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_CBC.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_OFB.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_ARC2.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_EAX.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_CCM.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_GCM.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_Blowfish.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       copying lib/Cryptodome/SelfTest/Cipher/test_AES.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Cipher
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_KMAC.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA3_384.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA224.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_BLAKE2.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_RIPEMD160.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_keccak.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_MD5.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_TupleHash.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/common.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_KangarooTwelve.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA256.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_Poly1305.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA1.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_cSHAKE.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA512.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA3_224.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_CMAC.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA3_512.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_MD2.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_MD4.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA3_256.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHAKE.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_HMAC.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       copying lib/Cryptodome/SelfTest/Hash/test_SHA384.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Hash
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/IO
    #0 11.24       copying lib/Cryptodome/SelfTest/IO/test_PKCS8.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/IO
    #0 11.24       copying lib/Cryptodome/SelfTest/IO/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/IO
    #0 11.24       copying lib/Cryptodome/SelfTest/IO/test_PBES.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/IO
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Protocol
    #0 11.24       copying lib/Cryptodome/SelfTest/Protocol/test_SecretSharing.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Protocol
    #0 11.24       copying lib/Cryptodome/SelfTest/Protocol/test_KDF.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Protocol
    #0 11.24       copying lib/Cryptodome/SelfTest/Protocol/test_rfc1751.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Protocol
    #0 11.24       copying lib/Cryptodome/SelfTest/Protocol/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Protocol
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_ECC_25519.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_ElGamal.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_ECC_448.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_DSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_import_RSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_RSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_import_DSA.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_ECC_NIST.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       copying lib/Cryptodome/SelfTest/PublicKey/test_import_ECC.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/PublicKey
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Random
    #0 11.24       copying lib/Cryptodome/SelfTest/Random/test_random.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Random
    #0 11.24       copying lib/Cryptodome/SelfTest/Random/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Random
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       copying lib/Cryptodome/SelfTest/Signature/test_pkcs1_15.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       copying lib/Cryptodome/SelfTest/Signature/test_eddsa.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       copying lib/Cryptodome/SelfTest/Signature/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       copying lib/Cryptodome/SelfTest/Signature/test_pss.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       copying lib/Cryptodome/SelfTest/Signature/test_dss.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Signature
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_number.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_rfc1751.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_asn1.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_strxor.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_Padding.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       copying lib/Cryptodome/SelfTest/Util/test_Counter.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Util
    #0 11.24       creating build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Math
    #0 11.24       copying lib/Cryptodome/SelfTest/Math/test_Numbers.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Math
    #0 11.24       copying lib/Cryptodome/SelfTest/Math/__init__.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Math
    #0 11.24       copying lib/Cryptodome/SelfTest/Math/test_Primality.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Math
    #0 11.24       copying lib/Cryptodome/SelfTest/Math/test_modexp.py -> build/lib.linux-armv7l-3.9/Cryptodome/SelfTest/Math
    #0 11.24       copying lib/Cryptodome/py.typed -> build/lib.linux-armv7l-3.9/Cryptodome
    #0 11.24       copying lib/Cryptodome/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome
    #0 11.24       copying lib/Cryptodome/Cipher/ARC2.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_EKSBlowfish.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ChaCha20.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ecb.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/CAST.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_eax.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ChaCha20_Poly1305.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/ARC4.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_siv.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_openpgp.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/Blowfish.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_cbc.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/Salsa20.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ccm.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_gcm.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_cfb.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ofb.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/PKCS1_v1_5.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/DES3.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ctr.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/PKCS1_OAEP.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/_mode_ocb.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/AES.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Cipher/DES.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Cipher
    #0 11.24       copying lib/Cryptodome/Hash/RIPEMD.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD2.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHAKE256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD5.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KangarooTwelve.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/cSHAKE256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/BLAKE2s.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/TupleHash256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_512.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/CMAC.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KMAC128.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_224.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/cSHAKE128.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA512.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/BLAKE2b.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHAKE128.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA384.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA1.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/keccak.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/HMAC.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/KMAC256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/TupleHash128.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_384.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/Poly1305.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA3_256.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/SHA224.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/MD4.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/Hash/RIPEMD160.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Hash
    #0 11.24       copying lib/Cryptodome/IO/_PBES.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/PEM.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/IO/PKCS8.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/IO
    #0 11.24       copying lib/Cryptodome/PublicKey/ECC.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/RSA.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/_openssh.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/ElGamal.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/PublicKey/DSA.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/PublicKey
    #0 11.24       copying lib/Cryptodome/Protocol/KDF.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Protocol/SecretSharing.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Protocol/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Protocol
    #0 11.24       copying lib/Cryptodome/Random/random.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Random
    #0 11.24       copying lib/Cryptodome/Random/__init__.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Random
    #0 11.24       copying lib/Cryptodome/Signature/PKCS1_PSS.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/pss.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/pkcs1_15.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/DSS.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/PKCS1_v1_5.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Signature/eddsa.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Signature
    #0 11.24       copying lib/Cryptodome/Util/number.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/py3compat.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_raw_api.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/RFC1751.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/strxor.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/Padding.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_cpu_features.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/_file_system.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/asn1.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Util/Counter.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Util
    #0 11.24       copying lib/Cryptodome/Math/_IntegerCustom.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/Primality.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerBase.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerGMP.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/Numbers.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       copying lib/Cryptodome/Math/_IntegerNative.pyi -> build/lib.linux-armv7l-3.9/Cryptodome/Math
    #0 11.24       running build_ext
    #0 11.24       building 'Cryptodome.Hash._MD2' extension
    #0 11.24       creating build/temp.linux-armv7l-3.9
    #0 11.24       creating build/temp.linux-armv7l-3.9/src
    #0 11.24       gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPYCRYPTO_LITTLE_ENDIAN -DSYS_BITS=32 -DLTC_NO_ASM -Isrc/ -I/usr/local/include/python3.9 -c src/MD2.c -o build/temp.linux-armv7l-3.9/src/MD2.o
    #0 11.24       error: command 'gcc' failed: No such file or directory
    #0 11.24       [end of output]
    #0 11.24
    #0 11.24   note: This error originates from a subprocess, and is likely not a problem with pip.
    #0 11.24   Running setup.py clean for pycryptodomex
    #0 11.25   ERROR: Failed building wheel for pycryptodomex
    #0 11.97   Building wheel for websockets (setup.py): started
    #0 12.95   Building wheel for websockets (setup.py): finished with status 'done'
    #0 12.95   Created wheel for websockets: filename=websockets-10.3-cp39-cp39-linux_armv7l.whl size=94376 sha256=4b492e591e457ebfaea260881f14f727a7866931fc535c3155642843f5dfbb40
    #0 12.95   Stored in directory: /root/.cache/pip/wheels/2f/1e/77/097069d35580f93f02355c49a0e7a8f78b7661566239e34bae
    #0 12.96 Successfully built websockets
    #0 12.96 Failed to build brotli pycryptodomex
    #0 13.49 Installing collected packages: brotli, websockets, pycryptodomex, mutagen, certifi, yt-dlp
    #0 13.50   Running setup.py install for brotli: started
    #0 14.13   Running setup.py install for brotli: finished with status 'error'
    #0 14.15   error: subprocess-exited-with-error
    #0 14.15
    #0 14.15   ร— Running setup.py install for brotli did not run successfully.
    #0 14.15   โ”‚ exit code: 1
    #0 14.15   โ•ฐโ”€> [17 lines of output]
    #0 14.15       /usr/local/lib/python3.9/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'build-base' will not be supported in future versions. Please use the underscore name 'build_base' instead
    #0 14.15         warnings.warn(
    #0 14.15       running install
    #0 14.15       running build
    #0 14.15       running build_py
    #0 14.15       creating bin
    #0 14.15       creating bin/lib.linux-armv7l-3.9
    #0 14.15       copying python/brotli.py -> bin/lib.linux-armv7l-3.9
    #0 14.15       running build_ext
    #0 14.15       building '_brotli' extension
    #0 14.15       creating bin/temp.linux-armv7l-3.9
    #0 14.15       creating bin/temp.linux-armv7l-3.9/c
    #0 14.15       creating bin/temp.linux-armv7l-3.9/c/common
    #0 14.15       creating bin/temp.linux-armv7l-3.9/c/dec
    #0 14.15       creating bin/temp.linux-armv7l-3.9/c/enc
    #0 14.15       gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Ic/include -I/usr/local/include/python3.9 -c c/common/constants.c -o bin/temp.linux-armv7l-3.9/c/common/constants.o
    #0 14.15       error: command 'gcc' failed: No such file or directory
    #0 14.15       [end of output]
    #0 14.15
    #0 14.15   note: This error originates from a subprocess, and is likely not a problem with pip.
    #0 14.15 error: legacy-install-failure
    #0 14.15
    #0 14.15 ร— Encountered error while trying to install package.
    #0 14.15 โ•ฐโ”€> brotli
    #0 14.15
    #0 14.15 note: This is an issue with the package mentioned above, not pip.
    #0 14.15 hint: See above for output from the failure.
    #0 14.54 WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
    #0 14.54 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
    ------
    failed to solve: executor failed running [/bin/sh -c pip3 install -U yt-dlp]: exit code: 1
    

    btw im also doing this over ssh

    EDIT: i just realised that gcc is missing, but i have no idea how to install that in the container

    question 
    opened by DaBlincx 1
  • PR_CONNECT_RESET_ERROR on your website https://yt-dlp.us.to/

    PR_CONNECT_RESET_ERROR on your website https://yt-dlp.us.to/

    https://yt-dlp.us.to/

    Neither work I don't get a meaningful error from Firefox, Librewolf, Aurora, links

    An error occurred during a connection to yt-dlp.us.to. PR_CONNECT_RESET_ERROR

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem.
    
    opened by doggodanubus 1
  • g++ added to pkg deps in server

    g++ added to pkg deps in server

    opened by MerlinLeWizard 0
  • Bump ejs from 3.1.6 to 3.1.8 in /frontend

    Bump ejs from 3.1.6 to 3.1.8 in /frontend

    Bumps ejs from 3.1.6 to 3.1.8.

    Release notes

    Sourced from ejs's releases.

    v3.1.8

    Version 3.1.8

    v3.1.7

    Version 3.1.7

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump minimist from 1.2.5 to 1.2.6 in /frontend

    Bump minimist from 1.2.5 to 1.2.6 in /frontend

    Bumps minimist from 1.2.5 to 1.2.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump node-forge from 1.2.1 to 1.3.0 in /frontend

    Bump node-forge from 1.2.1 to 1.3.0 in /frontend

    Bumps node-forge from 1.2.1 to 1.3.0.

    Changelog

    Sourced from node-forge's changelog.

    1.3.0 - 2022-03-17

    Security

    • Three RSA PKCS#1 v1.5 signature verification issues were reported by Moosa Yahyazadeh ([email protected]).
    • HIGH: Leniency in checking digestAlgorithm structure can lead to signature forgery.
    • HIGH: Failing to check tailing garbage bytes can lead to signature forgery.
    • MEDIUM: Leniency in checking type octet.
      • DigestInfo is not properly checked for proper ASN.1 structure. This can lead to successful verification with signatures that contain invalid structures but a valid digest.
      • CVE ID: CVE-2022-24773
      • GHSA ID: GHSA-2r2c-g63r-vccr

    Fixed

    • [asn1] Add fallback to pretty print invalid UTF8 data.
    • [asn1] fromDer is now more strict and will default to ensuring all input bytes are parsed or throw an error. A new option parseAllBytes can disable this behavior.
      • NOTE: The previous behavior is being changed since it can lead to security issues with crafted inputs. It is possible that code doing custom DER parsing may need to adapt to this new behavior and optional flag.
    • [rsa] Add and use a validator to check for proper structure of parsed ASN.1 RSASSA-PKCS-v1_5 DigestInfo data. Additionally check that the hash algorithm identifier is a known value from RFC 8017 PKCS1-v1-5DigestAlgorithms. An invalid DigestInfo or algorithm identifier will now throw an error.
      • NOTE: The previous lenient behavior is being changed to be more strict since it could lead to security issues with crafted inputs. It is possible that code may have to handle the errors from these stricter checks.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Endpoint used for downloading fails for video with ID awjBLm41xJI when using bestvideo+bestaudio.

    Endpoint used for downloading fails for video with ID awjBLm41xJI when using bestvideo+bestaudio.

    I have found a scenario in which trying to use the endpoint for downloading a video using bestvideo+bestaudio fails.

    To reproduce:

    1. Run youtube-dl-web.
    2. Browse directly to the following URL: http://localhost/api/dl/awjBLm41xJI?f=bestvideo%2Bbestaudio
    3. Instead of the download process beginning, you will receive the following error text: Internal Server Error
    4. Check the log of the youtube-dl-web-server container. The log will contain the following stack trace which was generated from the failed download attempt.
    [awjBLm41xJI]: requested with format bestvideo+bestaudio and subs None, configuring...
    [awjBLm41xJI]: sending stream
    [awjBLm41xJI]: stream will be merged (bestvideo+bestaudio)
    [awjBLm41xJI]: end of data (no error reported)
    cleanup[awjBLm41xJI]: killing downloader process (PID: 62)
    INFO:     172.19.0.2:55686 - "GET /dl/awjBLm41xJI?f=bestvideo%2Bbestaudio HTTP/1.0" 500 Internal Server Error
    ERROR:    Exception in ASGI application
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 377, in run_asgi
        result = await app(self.scope, self.receive, self.send)
      File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
        return await self.app(scope, receive, send)
      File "/usr/local/lib/python3.9/site-packages/fastapi/applications.py", line 212, in __call__
        await super().__call__(scope, receive, send)
      File "/usr/local/lib/python3.9/site-packages/starlette/applications.py", line 112, in __call__
        await self.middleware_stack(scope, receive, send)
      File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 181, in __call__
        raise exc
      File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 159, in __call__
        await self.app(scope, receive, _send)
      File "/usr/local/lib/python3.9/site-packages/starlette/exceptions.py", line 82, in __call__
        raise exc
      File "/usr/local/lib/python3.9/site-packages/starlette/exceptions.py", line 71, in __call__
        await self.app(scope, receive, sender)
      File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 656, in __call__
        await route.handle(scope, receive, send)
      File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 259, in handle
        await self.app(scope, receive, send)
      File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 61, in app
        response = await func(request)
      File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 226, in app
        raw_response = await run_endpoint_function(
      File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 159, in run_endpoint_function
        return await dependant.call(**values)
      File "/home/user/app/./server.py", line 23, in api_dl
        first_chunk = await stream.__anext__() # peek first chunk
    StopAsyncIteration
    

    I have found that this seems to happen for some audio and video combinations when using the web UI as well. For example, here is a screenshot showing the configuration I attempted to use for this video through the web UI.

    image

    opened by DavidBerdik 0
Owner
Codian
computer
Codian
This plugin can generate timestamps for video, audio and Bilibili video, it takes you to the corresponding video/audio position when clicked.

logseq-plugin-media-ts ๆœฌๆ’ไปถ่ƒฝๅคŸ็”Ÿๆˆ่ง†้ข‘ใ€้Ÿณ้ข‘ไปฅๅŠ B ็ซ™่ง†้ข‘็š„ๆ—ถ้—ดๆˆณ๏ผŒ็‚นๅ‡ปๆ—ถ้—ดๆˆณๅŽไผš่ทณ่ฝฌๅˆฐๅฏนๅบ”็š„้Ÿณ่ง†้ข‘ไฝ็ฝฎใ€‚ This plugin can generate timestamps for video, audio and Bilibili video, it takes

Seth Yuan 58 Jan 3, 2023
A simple cli-app that allows you to divide a YouTube video into multiple separate videos base on a video's time stamps. Powered by pkg and yt-scissors library.

YouTube-Scissors CLI A simple CLI app that allows you to divide a YouTube video into multiple separate videos base on a video's time stamps. This proj

Gabe 23 Nov 8, 2022
The Happy Devs Leaderboard allows users to submit their scores. The app then ranks them from highest scores to the lowest.

HAPPY DEVS LEADERBOARD The HAPPY DEVS LEADERBOARD app allows users to submit their scores to be ranked on the Leaderboard. Live Demo Live Demo Link Bu

Benjamin Semah 3 Feb 10, 2022
Grupprojekt fรถr kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet fรถr kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide Fรถr information om hur utv

Svante Jonsson IT-Hรถgskolan 3 May 18, 2022
๐Ÿƒ Create soothing focus mixes

Groovi ?? Create soothing concentration mixes Branding/Design Board ยท Demo ?? Quickstart Run the website locally git clone https://github.com/harshhhd

Harsh Singh 21 Nov 29, 2022
Hemsida fรถr personer i Sverige som kan och vill erbjuda boende till mรคnniskor pรฅ flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo fรถr kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Hackathon for Social Good 2022 and use your superpowers to create a solution for the social good.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Laura Diaz 3 Jun 27, 2022
A Very Good Documentation Site created by the Very Good Ventures Team ๐Ÿฆ„

Very Good Docs Site Developed with ?? by Very Good Ventures ?? A Very Good Docs Site created by the Very Good Ventures Team. Generated by the Very Goo

Very Good Open Source 8 Nov 2, 2022
Essential Audio Player JS is a simple, clean and minimal JavaScript / HTML5 / CSS web audio player.

Essential Audio Player JS is a simple, clean and minimal JavaScript / HTML5 / CSS web audio player. No unnecessary controls, just a button and a track

null 32 Dec 14, 2022
High-quality, customizable web components for common user interface patterns

Elix is a community-driven collection of high-quality web components for common user interface patterns. Most applications make use of common, general

Elix 699 Dec 19, 2022
App that allows you to control and watch YouTube videos using hand gestures. Additionally, app that allows you to search for videos, playlists, and channels.

YouTube Alternative Interaction App An app I made with Edward Wu that allows you to search and watch videos from YouTube. Leverages Google's YouTube D

Aaron Lam 2 Dec 28, 2021
This project focuses on increasing the efficiency of a hospital's patient waitlist by creating an algorithm to generate an ordered list of 10 patients with the highest chance of accepting an appointment offer.

Patients-Facility Technical Interview Requirements This application was built on Node.JS v12.14. It has not been tested on other versions. You will al

Rwubakwanayo Olivier 4 Mar 20, 2023
Serialize arbitrary NodeJS closures and customize serialization behavior.

Closure Serializer This is a fork of the Pulumi Closure Serializer. @pulumi/pulumi. Motivation Functionless allows developers to write cloud applicati

null 4 Jul 19, 2022
๐Ÿš€AIๆ‹Ÿๅฃฐ: 5็ง’ๅ†…ๅ…‹้š†ๆ‚จ็š„ๅฃฐ้Ÿณๅนถ็”Ÿๆˆไปปๆ„่ฏญ้Ÿณๅ†…ๅฎน Clone a voice in 5 seconds to generate arbitrary speech in real-time

English | ไธญๆ–‡ Features ?? Chinese supported mandarin and tested with multiple datasets: aidatatang_200zh, magicdata, aishell3, and etc. ?? PyTorch work

Vega 25.6k Dec 29, 2022
Render arbitrary Markdown content in Astro, optionally integrating with any existing configuration.

Astro Markdown Astro Markdown lets you render arbitrary Markdown content in Astro, optionally integrating with any existing configuration. --- import

Astro Community 14 Dec 22, 2022
๐Ÿ“ˆ AI powered web scraper that let's you scrape anything you want from the web including google search results

AI powered web scraper that let's you scrape anything you want from the web including google web search results from your terminal. And at the same ti

Udhay rajeev 27 Dec 27, 2022
Cindy Dorantes 12 Oct 18, 2022