aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2021-10-06 06:34:10 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2021-10-06 06:45:45 +0530
commit49e7e9c3ce9d5294f024757cbbfedd6c9d0623be (patch)
tree5baa6a28ec6b02e35d4012561a82dd3a56968d96
parent84726743993295f6105ed9ef5412040b8842e4c6 (diff)
downloadhypervideo-pre-49e7e9c3ce9d5294f024757cbbfedd6c9d0623be.tar.lz
hypervideo-pre-49e7e9c3ce9d5294f024757cbbfedd6c9d0623be.tar.xz
hypervideo-pre-49e7e9c3ce9d5294f024757cbbfedd6c9d0623be.zip
[docs,build] Change all pycryptodome references to pycryptodomex
-rw-r--r--README.md4
-rw-r--r--pyinst.py22
-rw-r--r--requirements.txt2
-rw-r--r--setup.py2
-rw-r--r--yt_dlp/downloader/hls.py4
-rw-r--r--yt_dlp/extractor/ivi.py2
6 files changed, 23 insertions, 13 deletions
diff --git a/README.md b/README.md
index cf46360a9..3c73d3aac 100644
--- a/README.md
+++ b/README.md
@@ -195,7 +195,7 @@ On windows, [Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)](https:
While all the other dependancies are optional, `ffmpeg` and `ffprobe` are highly recommended
* [**ffmpeg** and **ffprobe**](https://www.ffmpeg.org) - Required for [merging seperate video and audio files](#format-selection) as well as for various [post-processing](#post-processing-options) tasks. Licence [depends on the build](https://www.ffmpeg.org/legal.html)
* [**mutagen**](https://github.com/quodlibet/mutagen) - For embedding thumbnail in certain formats. Licenced under [GPLv2+](https://github.com/quodlibet/mutagen/blob/master/COPYING)
-* [**pycryptodome**](https://github.com/Legrandin/pycryptodome) - For decrypting AES-128 HLS streams and various other data. Licenced under [BSD2](https://github.com/Legrandin/pycryptodome/blob/master/LICENSE.rst)
+* [**pycryptodomex**](https://github.com/Legrandin/pycryptodomex) - For decrypting AES-128 HLS streams and various other data. Licenced under [BSD2](https://github.com/Legrandin/pycryptodomex/blob/master/LICENSE.rst)
* [**websockets**](https://github.com/aaugustin/websockets) - For downloading over websocket. Licenced under [BSD3](https://github.com/aaugustin/websockets/blob/main/LICENSE)
* [**keyring**](https://github.com/jaraco/keyring) - For decrypting cookies of chromium-based browsers on Linux. Licenced under [MIT](https://github.com/jaraco/keyring/blob/main/LICENSE)
* [**AtomicParsley**](https://github.com/wez/atomicparsley) - For embedding thumbnail in mp4/m4a if mutagen is not present. Licenced under [GPLv2+](https://github.com/wez/atomicparsley/blob/master/COPYING)
@@ -217,7 +217,7 @@ The windows releases are already built with the python interpreter, mutagen, pyc
**For Windows**:
To build the Windows executable, you must have pyinstaller (and optionally mutagen, pycryptodomex, websockets)
- python3 -m pip install --upgrade pyinstaller mutagen pycryptodomex websockets
+ python3 -m pip install -U -r requirements.txt
Once you have all the necessary dependencies installed, just run `py pyinst.py`. The executable will be built for the same architecture (32/64 bit) as the python used to build it.
diff --git a/pyinst.py b/pyinst.py
index be1e00caa..ed410e0f2 100644
--- a/pyinst.py
+++ b/pyinst.py
@@ -3,7 +3,6 @@
from __future__ import unicode_literals
import sys
-# import os
import platform
from PyInstaller.utils.hooks import collect_submodules
@@ -29,10 +28,6 @@ print(f'Building {arch}bit version with options {opts}')
FILE_DESCRIPTION = 'yt-dlp%s' % (' (32 Bit)' if _x86 else '')
-# root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
-# print('Changing working directory to %s' % root_dir)
-# os.chdir(root_dir)
-
exec(compile(open('yt_dlp/version.py').read(), 'yt_dlp/version.py', 'exec'))
VERSION = locals()['__version__']
@@ -76,7 +71,22 @@ VERSION_FILE = VSVersionInfo(
]
)
-dependancies = ['Cryptodome', 'mutagen'] + collect_submodules('websockets')
+
+def pycryptodome_module():
+ try:
+ import Cryptodome # noqa: F401
+ except ImportError:
+ try:
+ import Crypto # noqa: F401
+ print('WARNING: Using Crypto since Cryptodome is not available. '
+ 'Install with: pip install pycryptodomex', file=sys.stderr)
+ return 'Crypto'
+ except ImportError:
+ pass
+ return 'Cryptodome'
+
+
+dependancies = [pycryptodome_module(), 'mutagen'] + collect_submodules('websockets')
excluded_modules = ['test', 'ytdlp_plugins', 'youtube-dl', 'youtube-dlc']
PyInstaller.__main__.run([
diff --git a/requirements.txt b/requirements.txt
index 6a982fa36..cecd08eae 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,3 @@
mutagen
-pycryptodome
+pycryptodomex
websockets
diff --git a/setup.py b/setup.py
index b5eb81c30..ff23877dc 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ LONG_DESCRIPTION = '\n\n'.join((
'**PS**: Some links in this document will not work since this is a copy of the README.md from Github',
open('README.md', 'r', encoding='utf-8').read()))
-REQUIREMENTS = ['mutagen', 'pycryptodome', 'websockets']
+REQUIREMENTS = ['mutagen', 'pycryptodomex', 'websockets']
if sys.argv[1:2] == ['py2exe']:
diff --git a/yt_dlp/downloader/hls.py b/yt_dlp/downloader/hls.py
index 751d874d4..3c5a2617d 100644
--- a/yt_dlp/downloader/hls.py
+++ b/yt_dlp/downloader/hls.py
@@ -72,9 +72,9 @@ class HlsFD(FragmentFD):
can_download, message = self.can_download(s, info_dict, self.params.get('allow_unplayable_formats')), None
if can_download and not compat_pycrypto_AES and '#EXT-X-KEY:METHOD=AES-128' in s:
if FFmpegFD.available():
- can_download, message = False, 'The stream has AES-128 encryption and pycryptodome is not available'
+ can_download, message = False, 'The stream has AES-128 encryption and pycryptodomex is not available'
else:
- message = ('The stream has AES-128 encryption and neither ffmpeg nor pycryptodome are available; '
+ message = ('The stream has AES-128 encryption and neither ffmpeg nor pycryptodomex are available; '
'Decryption will be performed natively, but will be extremely slow')
if not can_download:
message = message or 'Unsupported features have been detected'
diff --git a/yt_dlp/extractor/ivi.py b/yt_dlp/extractor/ivi.py
index 098ab6665..5f8a046e0 100644
--- a/yt_dlp/extractor/ivi.py
+++ b/yt_dlp/extractor/ivi.py
@@ -141,7 +141,7 @@ class IviIE(InfoExtractor):
elif site == 353:
continue
elif not pycryptodome_found:
- raise ExtractorError('pycryptodome not found. Please install', expected=True)
+ raise ExtractorError('pycryptodomex not found. Please install', expected=True)
elif message:
extractor_msg += ': ' + message
raise ExtractorError(extractor_msg % video_id, expected=True)