ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
131.87k stars 10k forks source link

AdobeConnect #21862

Open betabrain opened 5 years ago

betabrain commented 5 years ago

Checklist

Verbose log

$ youtube-dl --verbose http://neufeld.adobeconnect.com/p5yj0jakm0a/
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'http://neufeld.adobeconnect.com/p5yj0jakm0a/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.07.16
[debug] Python version 3.7.4 (CPython) - Darwin-18.5.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1.4, ffprobe 4.1.4, rtmpdump 2.4
[debug] Proxy map: {}
[AdobeConnect] p5yj0jakm0a: Downloading webpage
ERROR: An extractor error has occurred. (caused by KeyError('conStrings')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/extractor/adobeconnect.py", line 21, in _real_extract
    for con_string in qs['conStrings'][0].split(','):
KeyError: 'conStrings'
Traceback (most recent call last):
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/extractor/adobeconnect.py", line 21, in _real_extract
    for con_string in qs['conStrings'][0].split(','):
KeyError: 'conStrings'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/Users/ta/Library/Python/3.7/lib/python/site-packages/youtube_dl/extractor/common.py", line 543, in extract
    raise ExtractorError('An extractor error has occurred.', cause=e)
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('conStrings')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description

I am trying to download this online lecture for offline study. Unfortunately the extractor fails. As far as I can tell, there is no auth on this particular lecture, otherwise let me know.

szacchino commented 4 years ago

On my machine, in file youtube_dl/extractor/adobeconnect.py I noticed that line 18 (of the current version) fails since the parameter is now an encoded url. Current line 18 is the following:

qs = compat_parse_qs(self._search_regex(r"swfUrl\s*=\s*'([^']+)'", webpage, 'swf url').split('?')[1])

I tryed to replace line 18 with the following and the code works; unfortunately rtmpdump fails:

from urllib.parse import unquote
...
...
qs = compat_parse_qs(self._search_regex(r"(?:')swfUrl\s*=\s*([^']+)(?:')", unquote(webpage), 'swf url').split('?')[1])

the import is also needed by my new line.

Maybe the proposed line needs more tuning.

invertedzero commented 4 years ago

Same issue here. Not sure exactly what URL I'm meant to pass to it, but I can't get it to work for Adobe Connect and have exactly the same error