Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

273
Visualizações
pytube: AttributeError: el objeto 'NoneType' no tiene atributo 'span'

Acabo de descargar pytube (versión 11.0.1) y comencé con este fragmento de código de aquí :

 from pytube import YouTube YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()

que da este error:

 AttributeError Traceback (most recent call last) <ipython-input-29-0bfa08b87614> in <module> ----> 1 YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download() ~/anaconda3/lib/python3.8/site-packages/pytube/__main__.py in streams(self) 290 """ 291 self.check_availability() --> 292 return StreamQuery(self.fmt_streams) 293 294 @property ~/anaconda3/lib/python3.8/site-packages/pytube/__main__.py in fmt_streams(self) 175 # https://github.com/pytube/pytube/issues/1054 176 try: --> 177 extract.apply_signature(stream_manifest, self.vid_info, self.js) 178 except exceptions.ExtractError: 179 # To force an update to the js file, we clear the cache and retry ~/anaconda3/lib/python3.8/site-packages/pytube/extract.py in apply_signature(stream_manifest, vid_info, js) 407 408 """ --> 409 cipher = Cipher(js=js) 410 411 for i, stream in enumerate(stream_manifest): ~/anaconda3/lib/python3.8/site-packages/pytube/cipher.py in __init__(self, js) 42 43 self.throttling_plan = get_throttling_plan(js) ---> 44 self.throttling_array = get_throttling_function_array(js) 45 46 self.calculated_n = None ~/anaconda3/lib/python3.8/site-packages/pytube/cipher.py in get_throttling_function_array(js) 321 322 array_raw = find_object_from_startpoint(raw_code, match.span()[1] - 1) --> 323 str_array = throttling_array_split(array_raw) 324 325 converted_array = [] ~/anaconda3/lib/python3.8/site-packages/pytube/parser.py in throttling_array_split(js_array) 156 # Handle functions separately. These can contain commas 157 match = func_regex.search(curr_substring) --> 158 match_start, match_end = match.span() 159 160 function_text = find_object_from_startpoint(curr_substring, match.span()[1]) AttributeError: 'NoneType' object has no attribute 'span'

y me pregunto porque? ¿Alguien puede ayudarme? Estoy ejecutando este fragmento en una consola ipython (IPython versión 7.22.0) con Python 3.8.8 en un entorno conda.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Encontré este problema, pytube v11.0.1. Es un poco tarde para mí, pero si nadie ha enviado una solución mañana, lo comprobaré.

en C:\Python38\lib\site-packages\pytube\parser.py

Cambia esta línea:

152: func_regex = re.compile(r"function\([^)]+\)")

a esto:

152: func_regex = re.compile(r"function\([^)]?\)")

El problema es que la expresión regular espera una función con un argumento, pero supongo que YouTube agregó algunos src que incluyen funciones no parametrizadas.

over 4 years ago · Santiago Trujillo Relatório

0

Editar:

Traté de mantener mi solución actualizada, pero comencé a sentir que pytube parece tener problemas con frecuencia y estos errores afectan negativamente a mi proyecto. Así que lo refactoricé y comencé a usar la biblioteca ytdlp a partir de ahora. Entonces, en el momento en que lea esto, es posible que esta solución no funcione para usted.

Por el momento, ya que tenemos este error nuevamente. Puede probar la solución dada aquí

O

Asegúrese de estar en pytube/cipher.py en la línea 293:

Tú cambias

name = re.escape(get_throttling_function_name(js))

para

name = "hha"

gracias jeffery williams

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema, cambié parser.py como en la respuesta anterior, simplemente bifurqué pytube lib en GitHub y cambié el archivo.

Puedes instalar pytube de esta manera:

 pip install git+https://github.com/baxterisme/pytube

En lugar de:

 pip install pytube
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda