]> jfr.im git - yt-dlp.git/commitdiff
[docs,build] Change all pycryptodome references to pycryptodomex
authorpukkandan <redacted>
Wed, 6 Oct 2021 01:04:10 +0000 (06:34 +0530)
committerpukkandan <redacted>
Wed, 6 Oct 2021 01:15:45 +0000 (06:45 +0530)
README.md
pyinst.py
requirements.txt
setup.py
yt_dlp/downloader/hls.py
yt_dlp/extractor/ivi.py

index cf46360a90c30fce7335262f26598b507da53849..3c73d3aac15127f06671eac798a336545190357e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -195,7 +195,7 @@ ### DEPENDENCIES
 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 @@ ### COMPILE
 **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.
 
index be1e00caae5f75e4fee8127fce689713e422f5a1..ed410e0f2e0a5a9d59eaceabfbf7497f60173052 100644 (file)
--- 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
 
 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__']
 
     ]
 )
 
-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([
index 6a982fa369fce302d2f34012a5a360f4f01c16e5..cecd08eae81b2f7482526fac814cd1b1b34da25b 100644 (file)
@@ -1,3 +1,3 @@
 mutagen
-pycryptodome
+pycryptodomex
 websockets
index b5eb81c301273394a26a16b80a10a30164069e02..ff23877dccb2b0087f81f770783dd68751e83cab 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
     '**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']:
index 751d874d4218c94ecd511c84740f2cee747411d3..3c5a2617d0e5041dde2469b4fca6e9a3cea037c1 100644 (file)
@@ -72,9 +72,9 @@ def real_download(self, filename, info_dict):
         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'
index 098ab66659754f152ff4ecad1032513854d04339..5f8a046e080fd1d87d2eee27abf53457f50de2f8 100644 (file)
@@ -141,7 +141,7 @@ def _real_extract(self, url):
                 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)