aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdevscripts/bash-completion.py3
-rwxr-xr-xdevscripts/fish-completion.py6
-rw-r--r--devscripts/generate_aes_testdata.py8
-rwxr-xr-xdevscripts/make_contributing.py1
-rw-r--r--devscripts/make_issue_template.py10
-rw-r--r--devscripts/make_lazy_extractors.py7
-rwxr-xr-xdevscripts/make_readme.py8
-rw-r--r--devscripts/make_supportedsites.py6
-rw-r--r--devscripts/prepare_manpage.py3
-rw-r--r--devscripts/update-version.py8
-rwxr-xr-xdevscripts/zsh-completion.py3
-rw-r--r--pyinst.py1
-rw-r--r--setup.cfg2
-rw-r--r--setup.py1
-rw-r--r--test/test_InfoExtractor.py1
-rw-r--r--test/test_YoutubeDL.py2
-rw-r--r--test/test_YoutubeDLCookieJar.py8
-rw-r--r--test/test_aes.py2
-rw-r--r--test/test_age_restriction.py3
-rw-r--r--test/test_all_urls.py5
-rw-r--r--test/test_cache.py5
-rw-r--r--test/test_compat.py1
-rwxr-xr-xtest/test_download.py4
-rw-r--r--test/test_downloader_http.py5
-rw-r--r--test/test_execution.py8
-rw-r--r--test/test_http.py5
-rw-r--r--test/test_iqiyi_sdk_interpreter.py3
-rw-r--r--test/test_jsinterp.py2
-rw-r--r--test/test_netrc.py3
-rw-r--r--test/test_overwrites.py6
-rw-r--r--test/test_post_hooks.py6
-rw-r--r--test/test_postprocessors.py2
-rw-r--r--test/test_socks.py2
-rw-r--r--test/test_subtitles.py1
-rw-r--r--test/test_update.py.disabled1
-rw-r--r--test/test_utils.py4
-rw-r--r--test/test_verbose_output.py6
-rw-r--r--test/test_write_annotations.py.disabled4
-rw-r--r--test/test_youtube_lists.py3
-rw-r--r--test/test_youtube_misc.py1
-rw-r--r--test/test_youtube_signature.py6
-rw-r--r--yt_dlp/YoutubeDL.py1
-rw-r--r--yt_dlp/__init__.py1
-rw-r--r--yt_dlp/__main__.py1
-rw-r--r--yt_dlp/compat/__init__.py1
-rw-r--r--yt_dlp/compat/_legacy.py3
-rw-r--r--yt_dlp/compat/compat_utils.py1
-rw-r--r--yt_dlp/cookies.py2
-rw-r--r--yt_dlp/downloader/http.py2
-rw-r--r--yt_dlp/extractor/common.py6
-rw-r--r--yt_dlp/extractor/iwara.py4
-rw-r--r--yt_dlp/extractor/nebula.py2
-rw-r--r--yt_dlp/extractor/shared.py2
-rw-r--r--yt_dlp/extractor/urort.py2
-rw-r--r--yt_dlp/utils.py5
55 files changed, 143 insertions, 56 deletions
diff --git a/devscripts/bash-completion.py b/devscripts/bash-completion.py
index 268e8a2ae..9b4a9d4e2 100755
--- a/devscripts/bash-completion.py
+++ b/devscripts/bash-completion.py
@@ -1,9 +1,12 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import yt_dlp
BASH_COMPLETION_FILE = "completions/bash/yt-dlp"
diff --git a/devscripts/fish-completion.py b/devscripts/fish-completion.py
index d9c0048e2..5d2f68a48 100755
--- a/devscripts/fish-completion.py
+++ b/devscripts/fish-completion.py
@@ -1,10 +1,14 @@
#!/usr/bin/env python3
-import optparse
+
+# Allow direct execution
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import optparse
+
import yt_dlp
from yt_dlp.utils import shell_quote
diff --git a/devscripts/generate_aes_testdata.py b/devscripts/generate_aes_testdata.py
index c7d83f1a7..7f3c88bcf 100644
--- a/devscripts/generate_aes_testdata.py
+++ b/devscripts/generate_aes_testdata.py
@@ -1,11 +1,15 @@
#!/usr/bin/env python3
-import codecs
+
+# Allow direct execution
import os
-import subprocess
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import codecs
+import subprocess
+
from yt_dlp.aes import aes_encrypt, key_expansion
from yt_dlp.utils import intlist_to_bytes
diff --git a/devscripts/make_contributing.py b/devscripts/make_contributing.py
index 2562c4fd7..a06f8a616 100755
--- a/devscripts/make_contributing.py
+++ b/devscripts/make_contributing.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
import optparse
import re
diff --git a/devscripts/make_issue_template.py b/devscripts/make_issue_template.py
index 5a309008e..54043ef4e 100644
--- a/devscripts/make_issue_template.py
+++ b/devscripts/make_issue_template.py
@@ -1,4 +1,12 @@
#!/usr/bin/env python3
+
+# Allow direct execution
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
import optparse
@@ -7,7 +15,7 @@ def read(fname):
return f.read()
-# Get the version from yt_dlp/version.py without importing the package
+# Get the version without importing the package
def read_version(fname):
exec(compile(read(fname), fname, 'exec'))
return locals()['__version__']
diff --git a/devscripts/make_lazy_extractors.py b/devscripts/make_lazy_extractors.py
index 39d4646d0..785d66a6a 100644
--- a/devscripts/make_lazy_extractors.py
+++ b/devscripts/make_lazy_extractors.py
@@ -1,12 +1,15 @@
#!/usr/bin/env python3
-import optparse
+
+# Allow direct execution
import os
import sys
-from inspect import getsource
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import optparse
+from inspect import getsource
+
NO_ATTR = object()
STATIC_CLASS_PROPERTIES = ['IE_NAME', 'IE_DESC', 'SEARCH_KEY', '_WORKING', '_NETRC_MACHINE', 'age_limit']
CLASS_METHODS = [
diff --git a/devscripts/make_readme.py b/devscripts/make_readme.py
index 015212aa3..f2e08d7c6 100755
--- a/devscripts/make_readme.py
+++ b/devscripts/make_readme.py
@@ -1,7 +1,11 @@
#!/usr/bin/env python3
-# yt-dlp --help | make_readme.py
-# This must be run in a console of correct width
+"""
+yt-dlp --help | make_readme.py
+This must be run in a console of correct width
+"""
+
+
import functools
import re
import sys
diff --git a/devscripts/make_supportedsites.py b/devscripts/make_supportedsites.py
index d8c53c5e1..e46f7af56 100644
--- a/devscripts/make_supportedsites.py
+++ b/devscripts/make_supportedsites.py
@@ -1,10 +1,14 @@
#!/usr/bin/env python3
-import optparse
+
+# Allow direct execution
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import optparse
+
from yt_dlp.extractor import list_extractor_classes
diff --git a/devscripts/prepare_manpage.py b/devscripts/prepare_manpage.py
index 91e9ebced..cea934949 100644
--- a/devscripts/prepare_manpage.py
+++ b/devscripts/prepare_manpage.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
import optparse
import os.path
import re
@@ -23,7 +24,7 @@ yt\-dlp \- A youtube-dl fork with additional features and patches
def main():
parser = optparse.OptionParser(usage='%prog OUTFILE.md')
- options, args = parser.parse_args()
+ _, args = parser.parse_args()
if len(args) != 1:
parser.error('Expected an output filename')
diff --git a/devscripts/update-version.py b/devscripts/update-version.py
index 991cfb2af..c5bc83de9 100644
--- a/devscripts/update-version.py
+++ b/devscripts/update-version.py
@@ -1,4 +1,12 @@
#!/usr/bin/env python3
+
+# Allow direct execution
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
import subprocess
import sys
from datetime import datetime
diff --git a/devscripts/zsh-completion.py b/devscripts/zsh-completion.py
index 59faea06a..267af5f6e 100755
--- a/devscripts/zsh-completion.py
+++ b/devscripts/zsh-completion.py
@@ -1,9 +1,12 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import yt_dlp
ZSH_COMPLETION_FILE = "completions/zsh/_yt-dlp"
diff --git a/pyinst.py b/pyinst.py
index 4401125ed..a7c1be85d 100644
--- a/pyinst.py
+++ b/pyinst.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
import os
import platform
import sys
diff --git a/setup.cfg b/setup.cfg
index 946d7b122..415cca91a 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -37,3 +37,5 @@ line_length = 80
reverse_relative = true
ensure_newline_before_comments = true
include_trailing_comma = true
+known_first_party =
+ test
diff --git a/setup.py b/setup.py
index 6dae442aa..9803e928c 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
import os.path
import sys
import warnings
diff --git a/test/test_InfoExtractor.py b/test/test_InfoExtractor.py
index f0571c41a..f57a29ffc 100644
--- a/test/test_InfoExtractor.py
+++ b/test/test_InfoExtractor.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py
index 1153881e9..44e8f2917 100644
--- a/test/test_YoutubeDL.py
+++ b/test/test_YoutubeDL.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,6 +7,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import copy
import json
import urllib.error
diff --git a/test/test_YoutubeDLCookieJar.py b/test/test_YoutubeDLCookieJar.py
index 6280e1f2c..0d4e7dc97 100644
--- a/test/test_YoutubeDLCookieJar.py
+++ b/test/test_YoutubeDLCookieJar.py
@@ -1,12 +1,16 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
-import re
import sys
-import tempfile
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import re
+import tempfile
+
from yt_dlp.utils import YoutubeDLCookieJar
diff --git a/test/test_aes.py b/test/test_aes.py
index 2b7b7cf54..037246588 100644
--- a/test/test_aes.py
+++ b/test/test_aes.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,6 +7,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import base64
from yt_dlp.aes import (
diff --git a/test/test_age_restriction.py b/test/test_age_restriction.py
index e1012f69b..ff248432b 100644
--- a/test/test_age_restriction.py
+++ b/test/test_age_restriction.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,8 +7,8 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import is_download_test, try_rm
+from test.helper import is_download_test, try_rm
from yt_dlp import YoutubeDL
diff --git a/test/test_all_urls.py b/test/test_all_urls.py
index b6019554e..848c96ff0 100644
--- a/test/test_all_urls.py
+++ b/test/test_all_urls.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
+
# Allow direct execution
-import collections
import os
import sys
import unittest
@@ -8,8 +8,9 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import gettestcases
+import collections
+from test.helper import gettestcases
from yt_dlp.extractor import FacebookIE, YoutubeIE, gen_extractors
diff --git a/test/test_cache.py b/test/test_cache.py
index 14e54ba20..ce1624b68 100644
--- a/test/test_cache.py
+++ b/test/test_cache.py
@@ -1,15 +1,16 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
-import shutil
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import FakeYDL
+import shutil
+from test.helper import FakeYDL
from yt_dlp.cache import Cache
diff --git a/test/test_compat.py b/test/test_compat.py
index 62bf5a306..a70adfa30 100644
--- a/test/test_compat.py
+++ b/test/test_compat.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
diff --git a/test/test_download.py b/test/test_download.py
index b82f174bb..b98ddebcb 100755
--- a/test/test_download.py
+++ b/test/test_download.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -8,10 +9,10 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import hashlib
+import http.client
import json
import socket
import urllib.error
-import http.client
from test.helper import (
assertGreaterEqual,
@@ -23,6 +24,7 @@ from test.helper import (
report_warning,
try_rm,
)
+
import yt_dlp.YoutubeDL # isort: split
from yt_dlp.compat import compat_HTTPError
from yt_dlp.extractor import get_info_extractor
diff --git a/test/test_downloader_http.py b/test/test_downloader_http.py
index dac770758..cce7c59e2 100644
--- a/test/test_downloader_http.py
+++ b/test/test_downloader_http.py
@@ -1,17 +1,18 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
import unittest
-import http.server
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import http.server
import re
import threading
-from test.helper import http_server_port, try_rm
+from test.helper import http_server_port, try_rm
from yt_dlp import YoutubeDL
from yt_dlp.downloader.http import HttpFD
from yt_dlp.utils import encodeFilename
diff --git a/test/test_execution.py b/test/test_execution.py
index 6efd432e9..1d15fddab 100644
--- a/test/test_execution.py
+++ b/test/test_execution.py
@@ -1,12 +1,16 @@
#!/usr/bin/env python3
-import contextlib
+
+# Allow direct execution
import os
-import subprocess
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import contextlib
+import subprocess
+
from yt_dlp.utils import encodeArgument
rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
diff --git a/test/test_http.py b/test/test_http.py
index 828797ec7..b1aac7720 100644
--- a/test/test_http.py
+++ b/test/test_http.py
@@ -1,18 +1,19 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
import unittest
-import http.server
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import http.server
import ssl
import threading
import urllib.request
-from test.helper import http_server_port
+from test.helper import http_server_port
from yt_dlp import YoutubeDL
TEST_DIR = os.path.dirname(os.path.abspath(__file__))
diff --git a/test/test_iqiyi_sdk_interpreter.py b/test/test_iqiyi_sdk_interpreter.py
index 4b82b7187..47c632a4e 100644
--- a/test/test_iqiyi_sdk_interpreter.py
+++ b/test/test_iqiyi_sdk_interpreter.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,8 +7,8 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import FakeYDL, is_download_test
+from test.helper import FakeYDL, is_download_test
from yt_dlp.extractor import IqiyiIE
diff --git a/test/test_jsinterp.py b/test/test_jsinterp.py
index 872c58c8f..4277cabe0 100644
--- a/test/test_jsinterp.py
+++ b/test/test_jsinterp.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,6 +7,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
from yt_dlp.jsinterp import JSInterpreter
diff --git a/test/test_netrc.py b/test/test_netrc.py
index f7a0b33d2..dc708d974 100644
--- a/test/test_netrc.py
+++ b/test/test_netrc.py
@@ -1,3 +1,6 @@
+#!/usr/bin/env python3
+
+# Allow direct execution
import os
import sys
import unittest
diff --git a/test/test_overwrites.py b/test/test_overwrites.py
index a6d5bae40..6954c07f9 100644
--- a/test/test_overwrites.py
+++ b/test/test_overwrites.py
@@ -1,11 +1,15 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
-import subprocess
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import subprocess
+
from test.helper import is_download_test, try_rm
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
diff --git a/test/test_post_hooks.py b/test/test_post_hooks.py
index e84a08f29..3778d1794 100644
--- a/test/test_post_hooks.py
+++ b/test/test_post_hooks.py
@@ -1,13 +1,15 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import get_params, is_download_test, try_rm
-import yt_dlp.YoutubeDL
+from test.helper import get_params, is_download_test, try_rm
+import yt_dlp.YoutubeDL # isort: split
from yt_dlp.utils import DownloadError
diff --git a/test/test_postprocessors.py b/test/test_postprocessors.py
index 9d8a4dcc5..c49e3ede0 100644
--- a/test/test_postprocessors.py
+++ b/test/test_postprocessors.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,6 +7,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
from yt_dlp import YoutubeDL
from yt_dlp.compat import compat_shlex_quote
from yt_dlp.postprocessor import (
diff --git a/test/test_socks.py b/test/test_socks.py
index 0b8e03a9f..159faf58e 100644
--- a/test/test_socks.py
+++ b/test/test_socks.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,6 +7,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import random
import subprocess
import urllib.request
diff --git a/test/test_subtitles.py b/test/test_subtitles.py
index 5120f83e2..57362895f 100644
--- a/test/test_subtitles.py
+++ b/test/test_subtitles.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
diff --git a/test/test_update.py.disabled b/test/test_update.py.disabled
index 73b55cdac..85ac86692 100644
--- a/test/test_update.py.disabled
+++ b/test/test_update.py.disabled
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
diff --git a/test/test_utils.py b/test/test_utils.py
index 38647adb4..8024a8e7c 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
+
# Allow direct execution
-import contextlib
import os
import sys
import unittest
@@ -8,7 +8,7 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-# Various small unit tests
+import contextlib
import io
import itertools
import json
diff --git a/test/test_verbose_output.py b/test/test_verbose_output.py
index 657994074..21ce10a1f 100644
--- a/test/test_verbose_output.py
+++ b/test/test_verbose_output.py
@@ -1,11 +1,15 @@
#!/usr/bin/env python3
+
+# Allow direct execution
import os
-import subprocess
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import subprocess
+
rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
diff --git a/test/test_write_annotations.py.disabled b/test/test_write_annotations.py.disabled
index cca60561f..c7cf199f6 100644
--- a/test/test_write_annotations.py.disabled
+++ b/test/test_write_annotations.py.disabled
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,11 +7,12 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
import xml.etree.ElementTree
-from test.helper import get_params, is_download_test, try_rm
import yt_dlp.extractor
import yt_dlp.YoutubeDL
+from test.helper import get_params, is_download_test, try_rm
class YoutubeDL(yt_dlp.YoutubeDL):
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py
index 66611e236..c2dd0ac30 100644
--- a/test/test_youtube_lists.py
+++ b/test/test_youtube_lists.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
@@ -6,8 +7,8 @@ import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from test.helper import FakeYDL, is_download_test
+from test.helper import FakeYDL, is_download_test
from yt_dlp.extractor import YoutubeIE, YoutubeTabIE
diff --git a/test/test_youtube_misc.py b/test/test_youtube_misc.py
index 36f8be689..81be5d3c9 100644
--- a/test/test_youtube_misc.py
+++ b/test/test_youtube_misc.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Allow direct execution
import os
import sys
diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py
index 2c2013295..56304772b 100644
--- a/test/test_youtube_signature.py
+++ b/test/test_youtube_signature.py
@@ -1,17 +1,19 @@
#!/usr/bin/env python3
+
# Allow direct execution
-import contextlib
import os
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+import contextlib
import re
import string
import urllib.request
-from test.helper import FakeYDL, is_download_test
+from test.helper import FakeYDL, is_download_test
from yt_dlp.compat import compat_str
from yt_dlp.extractor import YoutubeIE
from yt_dlp.jsinterp import JSInterpreter
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index df4eef4e2..94aaaeb60 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -1,4 +1,3 @@
-#!/usr/bin/env python3
import collections
import contextlib
import datetime
diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py
index a5921c565..357be861b 100644
--- a/yt_dlp/__init__.py
+++ b/yt_dlp/__init__.py
@@ -1,4 +1,3 @@
-#!/usr/bin/env python3
f'You are using an unsupported version of Python. Only Python versions 3.6 and above are supported by yt-dlp' # noqa: F541
__license__ = 'Public Domain'
diff --git a/yt_dlp/__main__.py b/yt_dlp/__main__.py
index c9d275b86..ff5d71d3c 100644
--- a/yt_dlp/__main__.py
+++ b/yt_dlp/__main__.py
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
+
# Execute with
# $ python -m yt_dlp
diff --git a/yt_dlp/compat/__init__.py b/yt_dlp/compat/__init__.py
index 3a91fad0e..9f8e8c3e5 100644
--- a/yt_dlp/compat/__init__.py
+++ b/yt_dlp/compat/__init__.py
@@ -7,7 +7,6 @@ from . import re
from ._deprecated import * # noqa: F401, F403
from .compat_utils import passthrough_module
-
# XXX: Implement this the same way as other DeprecationWarnings without circular import
try:
passthrough_module(__name__, '._legacy', callback=lambda attr: warnings.warn(
diff --git a/yt_dlp/compat/_legacy.py b/yt_dlp/compat/_legacy.py
index 2b33638b6..49bb13a3c 100644
--- a/yt_dlp/compat/_legacy.py
+++ b/yt_dlp/compat/_legacy.py
@@ -22,7 +22,7 @@ import urllib.request
import xml.etree.ElementTree as etree
from subprocess import DEVNULL
-from .compat_utils import passthrough_module
+from .compat_utils import passthrough_module # isort: split
from .asyncio import run as compat_asyncio_run # noqa: F401
from .re import Pattern as compat_Pattern # noqa: F401
from .re import match as compat_Match # noqa: F401
@@ -30,7 +30,6 @@ from ..dependencies import Cryptodome_AES as compat_pycrypto_AES # noqa: F401
from ..dependencies import brotli as compat_brotli # noqa: F401
from ..dependencies import websockets as compat_websockets # noqa: F401
-
passthrough_module(__name__, '...utils', ('WINDOWS_VT_MODE', 'windows_enable_vt_mode'))
diff --git a/yt_dlp/compat/compat_utils.py b/yt_dlp/compat/compat_utils.py
index 79e253056..82e176281 100644
--- a/yt_dlp/compat/compat_utils.py
+++ b/yt_dlp/compat/compat_utils.py
@@ -4,7 +4,6 @@ import importlib
import sys
import types
-
_NO_ATTRIBUTE = object()
_Package = collections.namedtuple('Package', ('name', 'version'))
diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py
index 6811a7288..e2ff8c39f 100644
--- a/yt_dlp/cookies.py
+++ b/yt_dlp/cookies.py
@@ -1,5 +1,6 @@
import contextlib
import ctypes
+import http.cookiejar
import json
import os
import shutil
@@ -11,7 +12,6 @@ import time
from datetime import datetime, timedelta, timezone
from enum import Enum, auto
from hashlib import pbkdf2_hmac
-import http.cookiejar
from .aes import (
aes_cbc_decrypt_bytes,
diff --git a/yt_dlp/downloader/http.py b/yt_dlp/downloader/http.py
index ca5b26498..6b59320b8 100644
--- a/yt_dlp/downloader/http.py
+++ b/yt_dlp/downloader/http.py
@@ -1,10 +1,10 @@
+import http.client
import os
import random
import socket
import ssl
import time
import urllib.error
-import http.client
from .common import FileDownloader
from ..utils import (
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index 1c3d4af2c..4c37044f6 100644
--- a/yt_dlp/extractor/common.py
+++ b/yt_dlp/extractor/common.py
@@ -2,6 +2,9 @@ import base64
import collections
import getpass
import hashlib
+import http.client
+import http.cookiejar
+import http.cookies
import itertools
import json
import math
@@ -12,9 +15,6 @@ import sys
import time
import urllib.request
import xml.etree.ElementTree
-import http.client
-import http.cookiejar
-import http.cookies
from ..compat import functools, re # isort: split
from ..compat import (
diff --git a/yt_dlp/extractor/iwara.py b/yt_dlp/extractor/iwara.py
index 32ebd2ba6..f77c5d44d 100644
--- a/yt_dlp/extractor/iwara.py
+++ b/yt_dlp/extractor/iwara.py
@@ -7,10 +7,10 @@ from ..utils import (
int_or_none,
mimetype2ext,
remove_end,
+ strip_or_none,
+ unified_strdate,
url_or_none,
urljoin,
- unified_strdate,
- strip_or_none,
)
diff --git a/yt_dlp/extractor/nebula.py b/yt_dlp/extractor/nebula.py
index 9478f3aa3..7057b8b26 100644
--- a/yt_dlp/extractor/nebula.py
+++ b/yt_dlp/extractor/nebula.py
@@ -1,8 +1,8 @@
import itertools
import json
import time
-import urllib.parse
import urllib.error
+import urllib.parse
from .common import InfoExtractor
from ..utils import ExtractorError, parse_iso8601, try_get
diff --git a/yt_dlp/extractor/shared.py b/yt_dlp/extractor/shared.py
index 31c0080ba..9a237b320 100644
--- a/yt_dlp/extractor/shared.py
+++ b/yt_dlp/extractor/shared.py
@@ -1,5 +1,3 @@
-
-
import urllib.parse
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/urort.py b/yt_dlp/extractor/urort.py
index be508f434..3f687f737 100644
--- a/yt_dlp/extractor/urort.py
+++ b/yt_dlp/extractor/urort.py
@@ -1,5 +1,3 @@
-
-
import urllib.parse
from .common import InfoExtractor
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 6b02eb450..7327f3150 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -1,4 +1,3 @@
-#!/usr/bin/env python3
import atexit
import base64
import binascii
@@ -16,6 +15,8 @@ import hashlib
import hmac
import html.entities
import html.parser
+import http.client
+import http.cookiejar
import importlib.util
import io
import itertools
@@ -42,8 +43,6 @@ import urllib.parse
import urllib.request
import xml.etree.ElementTree
import zlib
-import http.client
-import http.cookiejar
from .compat import asyncio, functools # isort: split
from .compat import (