Repository: ytdl-org/youtube-dl

Issue:
[WDR] "Die Sendung mit der Maus" broken site support
<!--

######################################################################
  WARNING!
  IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE
######################################################################

-->


## Checklist

<!--
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.12.17. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
- Finally, put x into all relevant boxes (like this [x])
-->

- [x] I'm reporting a broken site support
- [x] I've verified that I'm running youtube-dl version **2021.12.17**
- [x] I've checked that all provided URLs are alive and playable in a browser
- [x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
- [x] I've searched the bugtracker for similar issues including closed ones


## Verbose log

<!--
Provide the complete verbose output of youtube-dl that clearly demonstrates the problem.
Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <your command line>`), copy the WHOLE output and insert it below. It should look similar to this:
 [debug] System config: []
 [debug] User config: []
 [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
 [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
 [debug] youtube-dl version 2021.12.17
 [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
 [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
 [debug] Proxy map: {}
 <more lines>
-->

```
youtube-dl -v https://www.wdrmaus.de/aktuelle-sendung/index.php5
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://www.wdrmaus.de/aktuelle-sendung/index.php5']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 2.7.18 (CPython) - Linux-5.4.0-92-generic-x86_64-with-Ubuntu-20.04-focal
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Proxy map: {}
[WDRPage] None: Downloading webpage
[download] Downloading playlist: None
[WDRPage] playlist None: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
ERROR: no suitable InfoExtractor for URL https://kinder.wdr.de/tv/kika/av/sendung-mit-der-maus/video-die-sendung-vom--898.assetjsonp
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/bin/youtube-dl/__main__.py", line 19, in <module>
    youtube_dl.main()
  File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 475, in main
    _real_main(argv)
  File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 465, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2069, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 933, in process_ie_result
    return self.__process_playlist(ie_result, download)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1067, in __process_playlist
    entry_result = self.__process_iterable_entry(entry, download, extra)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1077, in __process_iterable_entry
    entry, download=download, extra_info=extra_info)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 888, in process_ie_result
    extra_info=extra_info)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 810, in extract_info
    self.report_error('no suitable InfoExtractor for URL %s' % url)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 628, in report_error
    self.trouble(error_message, tb)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 590, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())
```


## Description

<!--
Provide an explanation of your issue in an arbitrary form. Provide any additional information, suggested solution and as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
-->

Hello everyone,
since mid of December the the weekly download of "Die Sendung mit der Maus" is not working any more. I'm not much of a developer, so i have no clue what might be the reason.

Thank you for the great tool and kind regards.
Sendung mit der Maus
## Please follow the guide below

---

### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2018.05.09*. If it's not, read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
- [X] I've **verified** and **I assure** that I'm running youtube-dl **2018.05.09**

### What is the purpose of your *issue*?
- [ ] Bug report (encountered problems with youtube-dl)
- [ ] Site support request (request for adding support for a new site)
- [X] Feature request (request for a new functionality)
- [ ] Question
- [ ] Other

---

### The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your *issue*

---

### If the purpose of this *issue* is a *site support request* please provide all kinds of example URLs support for which should be included (replace following example URLs by **yours**):

- Single video: https://www.wdrmaus.de/aktuelle-sendung/

---

### Description of your *issue*, suggested solution and other information

Hi! It's currently already possible to download the current "Sendung mit der Maus" with youtube-dl. If I open chrome, look for the master.m3u8 file and download that master.m3u8 file with Youtube-DL, I get the current "Sendung mit der Maus" ("TV Show with the Mouse", a german childrens program).

Would it also be possible to just do a "youtube-dl https://www.wdrmaus.de/aktuelle-sendung/" and download the current episode with that?

Example: Current "Sendung mit der Maus" can be downloaded with "youtube-dl https://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/weltweit/fsk0/164/1643743/,1643743_18998337,1643743_18998331,1643743_18998340,1643743_18998339,1643743_18998330,1643743_18998333,.mp4.csmil/master.m3u8?b=0-"

Thanks!



Discussion:
The proximate cause is that the playlist item ends in `.assetjsonp` while the `WDRIE` is looking for a different pattern ending in `.js`.

We can download the JSONP, extract the ID and punt to a known good format instead (also, let's name the playlist):
```
--- old/youtube-dl/youtube_dl/extractor/wdr.py
+++ new/youtube-dl/youtube_dl/extractor/wdr.py
@@ -234,7 +234,7 @@
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
-        display_id = mobj.group('display_id')
+        display_id = mobj.group('display_id') or 'wdrmaus'
         webpage = self._download_webpage(url, display_id)
 
         entries = []
@@ -260,6 +260,12 @@
             jsonp_url = try_get(
                 media_link_obj, lambda x: x['mediaObj']['url'], compat_str)
             if jsonp_url:
+                if jsonp_url.endswith('.assetjsonp'):
+                    asset = self._download_json(
+                        jsonp_url, display_id, fatal=False, transform_source=strip_jsonp)
+                    clip_id = try_get(asset, lambda x: x['trackerData']['trackerClipId'], compat_str)
+                    if clip_id:
+                        jsonp_url = 'https://deviceids-medp.wdr.de/ondemand/%s/%s.js' % (clip_id[4:7], clip_id[4:], )
                 entries.append(self.url_result(jsonp_url, ie=WDRIE.ie_key()))
 
         # Playlist (e.g. https://www1.wdr.de/mediathek/video/sendungen/aktuelle-stunde/aktuelle-stunde-120.html)

```
Then:
```
$ python -m youtube_dl -v -F 'https://www.wdrmaus.de/aktuelle-sendung/index.php5'
[debug] System config: [u'--prefer-ffmpeg']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'-F', u'https://www.wdrmaus.de/aktuelle-sendung/index.php5']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: 5014bd67c
[debug] Python version 2.7.17 (CPython) - Linux-4.4.0-210-generic-i686-with-Ubuntu-16.04-xenial
[debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[WDRPage] wdrmaus: Downloading webpage
[WDRPage] wdrmaus: Downloading JSON metadata
[download] Downloading playlist: wdrmaus
[WDRPage] playlist wdrmaus: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[debug] Using fake IP 53.234.100.45 (DE) as X-Forwarded-For.
[WDR] 2611380: Downloading JSON metadata
[WDR] 2611380: Downloading m3u8 information
[WDR] 2611380: Downloading m3u8 information
[info] Available formats for mdb-2611380:
format code  extension  resolution note
hls-128-0    mp4        audio only  128k , mp4a.40.2
hls-128-1    mp4        audio only  128k , mp4a.40.2
hls-487-0    mp4        480x270     487k , avc1.77.30, mp4a.40.2
hls-487-1    mp4        480x270     487k , avc1.77.30, mp4a.40.2
hls-732-0    mp4        640x360     732k , avc1.77.30, mp4a.40.2
hls-732-1    mp4        640x360     732k , avc1.77.30, mp4a.40.2
hls-1241-0   mp4        960x540    1241k , avc1.77.30, mp4a.40.2
hls-1241-1   mp4        960x540    1241k , avc1.77.30, mp4a.40.2
hls-2046-0   mp4        1280x720   2046k , avc1.64001f, mp4a.40.2
hls-2046-1   mp4        1280x720   2046k , avc1.64001f, mp4a.40.2 (best)
[download] Finished downloading playlist: wdrmaus
$
```
I tried to download the show of 2019-05-26. From https://wdrmaus.de/ youtube-dl does not download anything (this issue), from https://kinder.wdr.de/ it downloads a HTML page instead of the video (issue #17989), with https://ardmediathek.de/ it works.

```
$ youtube-dl --version
2019.04.24


$ youtube-dl 'https://www.wdrmaus.de/aktuelle-sendung/'
[generic] aktuelle-sendung: Requesting header
WARNING: Falling back on generic information extractor.
[generic] aktuelle-sendung: Downloading webpage
[generic] aktuelle-sendung: Extracting information
ERROR: Unsupported URL: https://www.wdrmaus.de/aktuelle-sendung/


$ youtube-dl 'https://kinder.wdr.de/tv/die-sendung-mit-der-maus/av/video-die-sendung-vom--222.html'
[generic] video-die-sendung-vom--222: Requesting header
WARNING: Falling back on generic information extractor.
[generic] video-die-sendung-vom--222: Downloading webpage
[generic] video-die-sendung-vom--222: Extracting information
[download] Die Sendung vom 26.05.2019-video-die-sendung-vom--222.html has already been downloaded
[download] 100% of 36.92KiB


$ youtube-dl 'https://kinder.wdr.de/tv/kika/av/sendung-mit-der-maus/video-die-sendung-vom--224.html'
[generic] video-die-sendung-vom--224: Requesting header
WARNING: Falling back on generic information extractor.
[generic] video-die-sendung-vom--224: Downloading webpage
[generic] video-die-sendung-vom--224: Extracting information
[download] Destination: Die Sendung vom 26.05.2019-video-die-sendung-vom--224.html
[download] 100% of 33.35KiB in 00:00


$ youtube-dl 'https://www.ardmediathek.de/ard/player/Y3JpZDovL3dkci5kZS9CZWl0cmFnLWNkYTg1ZGFjLTA5NTgtNGFkMC1iODk0LWU2ZTZhZTRlYTUxZg/'
[ARDBetaMediathek] Y3JpZDovL3dkci5kZS9CZWl0cmFnLWNkYTg1ZGFjLTA5NTgtNGFkMC1iODk0LWU2ZTZhZTRlYTUxZg: Downloading webpage
[ARDBetaMediathek] Y3JpZDovL3dkci5kZS9CZWl0cmFnLWNkYTg1ZGFjLTA5NTgtNGFkMC1iODk0LWU2ZTZhZTRlYTUxZg: Downloading m3u8 information
[download] Destination: Die Sendung vom 26.05.2019-Y3JpZDovL3dkci5kZS9CZWl0cmFnLWNkYTg1ZGFjLTA5NTgtNGFkMC1iODk0LWU2ZTZhZTRlYTUxZg.mp4
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-indev=jack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[hls,applehttp @ 0x560e80bddb00] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment1_5_av.ts?null=0' for reading
[hls,applehttp @ 0x560e80bddb00] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment2_5_av.ts?null=0' for reading
Input #0, hls,applehttp, from 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/index_5_av.m3u8?null=0':
  Duration: 00:28:52.89, start: 0.100667, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'file:Die Sendung vom 26.05.2019-Y3JpZDovL3dkci5kZS9CZWl0cmFnLWNkYTg1ZGFjLTA5NTgtNGFkMC1iODk0LWU2ZTZhZTRlYTUxZg.mp4.part':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 50 fps, 50 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[http @ 0x560e80c09800] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment3_5_av.ts?null=0' for reading
[http @ 0x560e80c14240] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment4_5_av.ts?null=0' for reading
[http @ 0x560e80c09800] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment5_5_av.ts?null=0' for reading
[http @ 0x560e80c14240] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926173/,1926173_22954183,1926173_22954178,1926173_22954180,1926173_22954181,1926173_22954179,1926173_22954182,.mp4.csmil/segment6_5_av.ts?null=0' for reading
[...]


$ youtube-dl 'https://www.ardmediathek.de/ard/player/Y3JpZDovL3dkci5kZS9CZWl0cmFnLTI2NThmN2FiLTAxYjAtNDUxYy1hNWI2LTIzMDU2OTZmMDNlNg/'
[ARDBetaMediathek] Y3JpZDovL3dkci5kZS9CZWl0cmFnLTI2NThmN2FiLTAxYjAtNDUxYy1hNWI2LTIzMDU2OTZmMDNlNg: Downloading webpage
[ARDBetaMediathek] Y3JpZDovL3dkci5kZS9CZWl0cmFnLTI2NThmN2FiLTAxYjAtNDUxYy1hNWI2LTIzMDU2OTZmMDNlNg: Downloading m3u8 information
[download] Destination: Die Sendung vom 26.05.2019-Y3JpZDovL3dkci5kZS9CZWl0cmFnLTI2NThmN2FiLTAxYjAtNDUxYy1hNWI2LTIzMDU2OTZmMDNlNg.mp4
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-indev=jack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[hls,applehttp @ 0x559ca8de5b00] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment1_5_av.ts?null=0' for reading
[hls,applehttp @ 0x559ca8de5b00] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment2_5_av.ts?null=0' for reading
Input #0, hls,applehttp, from 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/index_5_av.m3u8?null=0':
  Duration: 00:26:46.89, start: 0.100667, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'file:Die Sendung vom 26.05.2019-Y3JpZDovL3dkci5kZS9CZWl0cmFnLTI2NThmN2FiLTAxYjAtNDUxYy1hNWI2LTIzMDU2OTZmMDNlNg.mp4.part':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 50 fps, 50 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[http @ 0x559ca8e10380] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment3_5_av.ts?null=0' for reading
[http @ 0x559ca8e1af80] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment4_5_av.ts?null=0' for reading
[http @ 0x559ca8e10380] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment5_5_av.ts?null=0' for reading
[http @ 0x559ca8e1af80] Opening 'http://wdradaptiv-vh.akamaihd.net/i/medp/ondemand/de/fsk0/192/1926235/,1926235_22954590,1926235_22954585,1926235_22954587,1926235_22954588,1926235_22954586,1926235_22954589,.mp4.csmil/segment6_5_av.ts?null=0' for reading
[...]
```
> Would it also be possible to just do a "youtube-dl https://www.wdrmaus.de/aktuelle-sendung/" and download the current episode with that?

Didn't you mean to append `index.php5`? That works for me.

Resolving patch:
diff --git a/youtube_dl/extractor/wdr.py b/youtube_dl/extractor/wdr.py
--- a/youtube_dl/extractor/wdr.py
+++ b/youtube_dl/extractor/wdr.py
@@ -10,6 +10,7 @@
 )
 from ..utils import (
     determine_ext,
+    dict_get,
     ExtractorError,
     js_to_json,
     strip_jsonp,
@@ -22,9 +23,10 @@
 
 
 class WDRIE(InfoExtractor):
-    _VALID_URL = r'https?://deviceids-medp\.wdr\.de/ondemand/\d+/(?P<id>\d+)\.js'
+    __API_URL_TPL = '//deviceids-medp.wdr.de/ondemand/%s/%s'
+    _VALID_URL = (r'(?:https?:' + __API_URL_TPL) % (r'\d+', r'(?=\d+\.js)|wdr:)(?P<id>\d{6,})')
     _GEO_COUNTRIES = ['DE']
-    _TEST = {
+    _TESTS = [{
         'url': 'http://deviceids-medp.wdr.de/ondemand/155/1557833.js',
         'info_dict': {
             'id': 'mdb-1557833',
@@ -32,11 +34,20 @@ class WDRIE(InfoExtractor):
             'title': 'Biathlon-Staffel verpasst Podest bei Olympia-Generalprobe',
             'upload_date': '20180112',
         },
-    }
+    },
+    ]
+
+    def _asset_url(self, wdr_id):
+        id_len = max(len(wdr_id), 5)
+        return ''.join(('https:', self.__API_URL_TPL % (wdr_id[:id_len - 4], wdr_id, ), '.js'))
 
     def _real_extract(self, url):
         video_id = self._match_id(url)
 
+        if url.startswith('wdr:'):
+            video_id = url[4:]
+            url = self._asset_url(video_id)
+
         metadata = self._download_json(
             url, video_id, transform_source=strip_jsonp)
 
@@ -115,10 +126,10 @@ def _real_extract(self, url):
         }
 
 
-class WDRPageIE(InfoExtractor):
-    _CURRENT_MAUS_URL = r'https?://(?:www\.)wdrmaus.de/(?:[^/]+/){1,2}[^/?#]+\.php5'
+class WDRPageIE(WDRIE):
+    _MAUS_REGEX = r'https?://(?:www\.)wdrmaus.de/(?:[^/]+/)*?(?P<maus_id>[^/?#.]+)(?:/?|/index\.php5|\.php5)$'
     _PAGE_REGEX = r'/(?:mediathek/)?(?:[^/]+/)*(?P<display_id>[^/]+)\.html'
-    _VALID_URL = r'https?://(?:www\d?\.)?(?:(?:kinder\.)?wdr\d?|sportschau)\.de' + _PAGE_REGEX + '|' + _CURRENT_MAUS_URL
+    _VALID_URL = r'https?://(?:www\d?\.)?(?:(?:kinder\.)?wdr\d?|sportschau)\.de' + _PAGE_REGEX + '|' + _MAUS_REGEX
 
     _TESTS = [
         {
@@ -159,11 +170,11 @@ class WDRPageIE(InfoExtractor):
         {
             'url': 'http://www1.wdr.de/mediathek/video/live/index.html',
             'info_dict': {
-                'id': 'mdb-1406149',
+                'id': 'mdb-2296252',
                 'ext': 'mp4',
-                'title': r're:^WDR Fernsehen im Livestream \(nur in Deutschland erreichbar\) [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
+                'title': r're:^WDR Fernsehen im Livestream (?:\(nur in Deutschland erreichbar\) )?[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
                 'alt_title': 'WDR Fernsehen Live',
-                'upload_date': '20150101',
+                'upload_date': '20201112',
                 'is_live': True,
             },
             'params': {
@@ -172,7 +183,7 @@ class WDRPageIE(InfoExtractor):
         },
         {
             'url': 'http://www1.wdr.de/mediathek/video/sendungen/aktuelle-stunde/aktuelle-stunde-120.html',
-            'playlist_mincount': 7,
+            'playlist_mincount': 6,
             'info_dict': {
                 'id': 'aktuelle-stunde-120',
             },
@@ -180,10 +191,10 @@ class WDRPageIE(InfoExtractor):
         {
             'url': 'http://www.wdrmaus.de/aktuelle-sendung/index.php5',
             'info_dict': {
-                'id': 'mdb-1552552',
+                'id': 'mdb-2627637',
                 'ext': 'mp4',
                 'upload_date': 're:^[0-9]{8}$',
-                'title': 're:^Die Sendung mit der Maus vom [0-9.]{10}$',
+                'title': 're:^Die Sendung (?:mit der Maus )?vom [0-9.]{10}$',
             },
             'skip': 'The id changes from week to week because of the new episode'
         },
@@ -196,6 +207,7 @@ class WDRPageIE(InfoExtractor):
                 'upload_date': '20130919',
                 'title': 'Sachgeschichte - Achterbahn ',
             },
+            'skip': 'HTTP Error 404: Not Found',
         },
         {
             'url': 'http://www1.wdr.de/radio/player/radioplayer116~_layout-popupVersion.html',
@@ -221,6 +233,7 @@ class WDRPageIE(InfoExtractor):
             'params': {
                 'skip_download': True,
             },
+            'skip': 'HTTP Error 404: Not Found',
         },
         {
             'url': 'http://www.sportschau.de/handballem2018/audio-vorschau---die-handball-em-startet-mit-grossem-favoritenfeld-100.html',
@@ -234,7 +247,7 @@ class WDRPageIE(InfoExtractor):
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
-        display_id = mobj.group('display_id')
+        display_id = dict_get(mobj.groupdict(), ('display_id', 'maus_id'), 'wdrmaus')
         webpage = self._download_webpage(url, display_id)
 
         entries = []
@@ -260,6 +273,14 @@ def _real_extract(self, url):
             jsonp_url = try_get(
                 media_link_obj, lambda x: x['mediaObj']['url'], compat_str)
             if jsonp_url:
+                # metadata, or player JS with ['ref'] giving WDR id, or just media, perhaps
+                clip_id = media_link_obj['mediaObj'].get('ref')
+                if jsonp_url.endswith('.assetjsonp'):
+                    asset = self._download_json(
+                        jsonp_url, display_id, fatal=False, transform_source=strip_jsonp)
+                    clip_id = try_get(asset, lambda x: x['trackerData']['trackerClipId'], compat_str)
+                if clip_id:
+                    jsonp_url = self._asset_url(clip_id[4:])
                 entries.append(self.url_result(jsonp_url, ie=WDRIE.ie_key()))
 
         # Playlist (e.g. https://www1.wdr.de/mediathek/video/sendungen/aktuelle-stunde/aktuelle-stunde-120.html)
@@ -279,16 +300,14 @@ def _real_extract(self, url):
 class WDRElefantIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)wdrmaus\.de/elefantenseite/#(?P<id>.+)'
     _TEST = {
-        'url': 'http://www.wdrmaus.de/elefantenseite/#folge_ostern_2015',
+        'url': 'http://www.wdrmaus.de/elefantenseite/#elefantenkino_wippe',
+        # adaptive stream: unstable file MD5
         'info_dict': {
-            'title': 'Folge Oster-Spezial 2015',
-            'id': 'mdb-1088195',
+            'title': 'Wippe',
+            'id': 'mdb-1198320',
             'ext': 'mp4',
             'age_limit': None,
-            'upload_date': '20150406'
-        },
-        'params': {
-            'skip_download': True,
+            'upload_date': '20071003'
         },
     }
 
@@ -323,6 +342,7 @@ class WDRMobileIE(InfoExtractor):
         /[0-9]+/[0-9]+/
         (?P<id>[0-9]+)_(?P<title>[0-9]+)'''
     IE_NAME = 'wdr:mobile'
+    _WORKING = False  # no such domain
     _TEST = {
         'url': 'http://mobile-ondemand.wdr.de/CMS2010/mdb/ondemand/weltweit/fsk0/42/421735/421735_4283021.mp4',
         'info_dict': {


Test patch: