pytube: [BUG] RegexMatchError get_throttling_function_name: could not find match for multiple

Hello, I have problem with streams of YouTube wideo. I have tried everything I found on the net! I will be grateful for help!

My code:

from pytube import YouTube
yt = YouTube("https://www.youtube.com/watch?v=JLXBvVh8-2A")
yt.streams

My fucking error:

Traceback (most recent call last):
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\__main__.py", line 181, in fmt_streams
    extract.apply_signature(stream_manifest, self.vid_info, self.js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\extract.py", line 409, in apply_signature
    cipher = Cipher(js=js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 43, in __init__
    self.throttling_plan = get_throttling_plan(js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 405, in get_throttling_plan
    raw_code = get_throttling_function_code(js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 311, in get_throttling_function_code
    name = re.escape(get_throttling_function_name(js))
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 296, in get_throttling_function_name
    raise RegexMatchError(
pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\__main__.py", line 296, in streams
    return StreamQuery(self.fmt_streams)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\__main__.py", line 188, in fmt_streams
    extract.apply_signature(stream_manifest, self.vid_info, self.js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\extract.py", line 409, in apply_signature
    cipher = Cipher(js=js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 43, in __init__
    self.throttling_plan = get_throttling_plan(js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 405, in get_throttling_plan
    raw_code = get_throttling_function_code(js)
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 311, in get_throttling_function_code
    name = re.escape(get_throttling_function_name(js))
  File "C:\Users\kacpe\.pyenv\pyenv-win\versions\3.9.6\lib\site-packages\pytube\cipher.py", line 296, in get_throttling_function_name
    raise RegexMatchError(
pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 19
  • Comments: 26

Most upvoted comments

This fix by eroc1234 resolved it for me.

As noted by gangmax in the responses to that post, function_patterns is defined on line 264 of cipher.py The actual expressions to modify are on lines 272~273

pytube 12.0.0 python 3.8 Windows 7

same here

@EterneralAmbivalence I was able to get it working by somebody’s fork

This was the fork https://github.com/kinshuk-h/pytube uninstall pytube and pip install git+https://github.com/kinshuk-h/pytube

how to handle it ?

It works to me as well, thanks for the support! pytube 12.0.0 python 3.9.4 Windows 10

This workaround doesnt work anymore atleast for me

This worked for me. When will this be released as an official version?

This fix by eroc1234 resolved it for me.

As noted by gangmax in the responses to that post, function_patterns is defined on line 264 of cipher.py The actual expressions to modify are on lines 272~273

pytube 12.0.0 python 3.8 Windows 7

Yeah it works

same here