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.17k stars 9.93k forks source link

site support for panopto.com #22688

Open shirishag75 opened 4 years ago

shirishag75 commented 4 years ago

Checklist

$ youtube-dl -v -F "https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-F', 'https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.09.28
[debug] Python version 3.7.5rc1 (CPython) - Linux-5.2.0-3-amd64-x86_64-with-debian-bullseye-sid
[debug] exe versions: ffmpeg 4.1.4-1, ffprobe 4.1.4-1, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[generic] Embed: Requesting header
WARNING: Falling back on generic information extractor.
[generic] Embed: Downloading webpage
[generic] Embed: Extracting information
ERROR: Unsupported URL: https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/generic.py", line 3355, in _real_extract
    raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638

This is in Debian testing -

Package: youtube-dl
Version: 2019.09.28-1
Severity: normal

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (900, 'testing'), (500, 'testing-debug'), (100, 'unstable-debug'), (100, 'experimental'), (100, 'unstable'), (50, 'experimental-debug')
Architecture: amd64 (x86_64)

Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_IN, LC_CTYPE=en_IN (charmap=UTF-8), LANGUAGE=en_IN:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages youtube-dl depends on:
ii  python3                3.7.5-1
ii  python3-pkg-resources  41.2.0-1

Versions of packages youtube-dl recommends:
ii  ca-certificates  20190110
ii  curl             7.66.0-1
ii  ffmpeg           7:4.1.4-1+b2
ii  mpv              0.29.1-1
ii  phantomjs        2.1.1+dfsg-2+b1
ii  python3-pyxattr  0.6.1-1
ii  rtmpdump         2.4+20151223.gitfa8646d.1-2
ii  wget             1.20.3-1+b1

youtube-dl suggests no packages.

-- no debconf information
PeskyPotato commented 4 years ago

@shirishag75 Can you post some more example URLs, especially one's from different institutions, if you have any? This is so I can get an idea of how the URLs are formatted.

shirishag75 commented 4 years ago

while there could be many and I lost the ones which I wanted to but still here are few to start by. I am just giving links to the webpages and not to the videos themselves , although it's just a matter of just lifting the URL's, investigating them though is not my cup of tea .

https://ucc.cloud.panopto.eu/Panopto/Pages/Home.aspx

https://yale.hosted.panopto.com/Panopto/Pages/Home.aspx

I guess you can see how things are going to be.

jxu commented 4 years ago

related #13449

neosavvy commented 3 years ago

Any updates on this - I have a bunch of classes from MIT I'd love to cache up on my computer before I lose access.

jxu commented 3 years ago

You can use the method here https://github.com/jstrieb/panopto-download or my quick and dirty script https://github.com/jstrieb/panopto-download/issues/3

Klaaktu commented 2 years ago

Not sure if it's specific to each institution, but the download button and RSS feed only give the lowest quality option. Though downloading the highest quality using youtube-dl seems easy enough:

  1. Find highest quality index.m3u8 in F12. There is also a master.m3u8 showing all the options.
  2. Give the address of the index.m3u8 to youtube-dl.

Edit: yes the podcast/download quality is a setting for the video owner.

jxu commented 2 years ago

For my institution I think there is only one quality stream which is sufficient quality

jxu commented 2 years ago

btw this has been implemented downstream in yt-dlp

ZanderBrown commented 2 years ago

Why not submit it here?

jxu commented 2 years ago

idk how extractors work and if the PR is compatible with downstream

jxu commented 2 years ago

If you are able to get the master URL, I have a tool that can download it. For example, here is the master URL for the video in the original post:

PS C:\> hls -i -a https://d2y36twrtb17ty.cloudfront.net/sessions/629f20d7-8741-43f6-994b-aadf010a362a/0b3ff73b-36a0-46c5-8455-aadf010a3638-9ce65ee9-e131-429b-83ec-aae700f4753c.hls/master.m3u8
Resolution:640x360 Bandwidth:588296 Codecs:avc1.4d002a,mp4a.40.2
Resolution:800x452 Bandwidth:1469126 Codecs:avc1.4d002a,mp4a.40.2
Resolution:1008x570 Bandwidth:2867328 Codecs:avc1.4d002a,mp4a.40.2
Resolution:1280x720 Bandwidth:5086767 Codecs:avc1.4d002a,mp4a.40.2

https://github.com/89z/format

So it is a index.m3u8 downloader? That already exists in youtube-dl and yt-dlp

jxu commented 2 years ago

Yes, see above https://github.com/ytdl-org/youtube-dl/issues/22688#issuecomment-913946462