Works here, after minor patching to disable CTYPES,
With a new clone from github,
K:\work\youtube-dl>python -m youtube_dl https://www.youtube.com/watch?v=JV7xHhvo
[youtube] JV7xHhvowGc: Downloading webpage
[download] Destination: taking Rubber band ball to pawn shop #shorts-JV7xHhvowGc
.f248.webm
[download] 100% of 18.23MiB in 00:1706MiB/s ETA 00:008
[download] Destination: taking Rubber band ball to pawn shop #shorts-JV7xHhvowGc.f251.webm
[download] 100% of 999.34KiB in 00:0013MiB/s ETA 00:001
[ffmpeg] Merging formats into "taking Rubber band ball to pawn shop #shorts-JV7xHhvowGc.webm"
Deleting original file taking Rubber band ball to pawn shop #shorts-JV7xHhvowGc.f248.webm (pass -k to keep)
Deleting original file taking Rubber band ball to pawn shop #shorts-JV7xHhvowGc.f251.webm (pass -k to keep)
Quick hack, needs work, likely just operating system changes like (if NT and !os2) but I have to look up the correct syntax.
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index 8f65c6499..0018c1a4a 100755
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -109,8 +109,8 @@ from .postprocessor import (
)
from .version import __version__
-if compat_os_name == 'nt':
- import ctypes
+#if compat_os_name == 'nt':
+# import ctypes
class YoutubeDL(object):
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py
index 6c3d49d45..d1a8feae6 100644
--- a/youtube_dl/compat.py
+++ b/youtube_dl/compat.py
@@ -4,7 +4,7 @@ from __future__ import unicode_literals
import base64
import binascii
import collections
-import ctypes
+#import ctypes
import email
import getpass
import io
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 8e4d144c9..966d202eb 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -9,7 +9,7 @@ import calendar
import codecs
import collections
import contextlib
-import ctypes
+#import ctypes
import datetime
import email.utils
import email.header
@@ -3520,7 +3520,7 @@ def setproctitle(title):
# ctypes in Jython is not complete
# http://bugs.jython.org/issue2148
- if sys.platform.startswith('java'):
+ if sys.platform.startswith('os2'):
return
try:
And of course packaging.