Repository: yt-dlp
Issue: NRK error 400 when downloading manifest JSON
Labels: geo-blocked,site-bug

### Checklist

- [X] I'm reporting a broken site
- [X] I've verified that I'm running yt-dlp version **2022.03.08.1**. ([update instructions](https://github.com/yt-dlp/yt-dlp#update))
- [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](https://github.com/ytdl-org/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues including closed ones. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

_No response_

### Description

Cannot download videos from www.nrk.no articles.

### Verbose log

```shell
[debug] Command-line config: ['-vU', 'https://www.nrk.no/sport/vm-sjefen-etter-klaveness_-tordentale_-_-en-skuffelse-1.15915135']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.03.08.2 [e491d06d3]
[debug] Python version 3.9.9 (CPython 64bit) - Linux-5.15.16-100.fc34.x86_64-x86_64-with-glibc2.33
[debug] exe versions: ffmpeg 4.4.1 (setts), ffprobe 4.4.1
[debug] Optional libraries: brotli, Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
Latest version: 2022.03.08.1, Current version: 2022.03.08.2
yt-dlp is up to date (2022.03.08.2)
[debug] [NRKPlaylist] Extracting URL: https://www.nrk.no/sport/vm-sjefen-etter-klaveness_-tordentale_-_-en-skuffelse-1.15915135
[NRKPlaylist] vm-sjefen-etter-klaveness_-tordentale_-_-en-skuffelse-1.15915135: Downloading webpage
[download] Downloading playlist: VM-sjefen etter Klaveness' tordentale: – En skuffelse
[NRKPlaylist] playlist VM-sjefen etter Klaveness' tordentale: – En skuffelse: Collected 3 videos; downloading 3 of them
[download] Downloading video 1 of 3
[debug] Using fake IP 84.213.30.11 (NO) as X-Forwarded-For
[debug] [NRK] Extracting URL: nrk:7160acc4-2004-4fc3-9be2-8090aa881fcb
[NRK] 7160acc4-2004-4fc3-9be2-8090aa881fcb: Downloading manifest JSON
ERROR: [NRK] 7160acc4-2004-4fc3-9be2-8090aa881fcb: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: 'Bad Request'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the "Broken site" issue template properly. Confirm you are on the latest version using  yt-dlp -U
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 617, in extract
    ie_result = self._real_extract(url)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 161, in _real_extract
    manifest = call_playback_api('manifest', {'preferredCdn': 'akamai'})
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 153, in call_playback_api
    return self._call_api(f'playback/{item}/program/{video_id}', video_id, item, query=query)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 61, in _call_api
    return self._download_json(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 997, in _download_json
    res = self._download_json_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 976, in _download_json_handle
    res = self._download_webpage_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 768, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 753, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 735, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 3591, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib64/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/lib64/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib64/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

[download] Downloading video 2 of 3
[debug] [NRK] Extracting URL: nrk:b9c4457e-7064-4a2b-bbcc-9764903fbbc3
[NRK] b9c4457e-7064-4a2b-bbcc-9764903fbbc3: Downloading manifest JSON
ERROR: [NRK] b9c4457e-7064-4a2b-bbcc-9764903fbbc3: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: 'Bad Request'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the "Broken site" issue template properly. Confirm you are on the latest version using  yt-dlp -U
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 617, in extract
    ie_result = self._real_extract(url)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 161, in _real_extract
    manifest = call_playback_api('manifest', {'preferredCdn': 'akamai'})
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 153, in call_playback_api
    return self._call_api(f'playback/{item}/program/{video_id}', video_id, item, query=query)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 61, in _call_api
    return self._download_json(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 997, in _download_json
    res = self._download_json_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 976, in _download_json_handle
    res = self._download_webpage_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 768, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 753, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 735, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 3591, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib64/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/lib64/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib64/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

[download] Downloading video 3 of 3
[debug] [NRK] Extracting URL: nrk:b29f440a-5517-4e47-b5ce-c26c6075526c
[NRK] b29f440a-5517-4e47-b5ce-c26c6075526c: Downloading manifest JSON
ERROR: [NRK] b29f440a-5517-4e47-b5ce-c26c6075526c: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: 'Bad Request'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the "Broken site" issue template properly. Confirm you are on the latest version using  yt-dlp -U
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 617, in extract
    ie_result = self._real_extract(url)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 161, in _real_extract
    manifest = call_playback_api('manifest', {'preferredCdn': 'akamai'})
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 153, in call_playback_api
    return self._call_api(f'playback/{item}/program/{video_id}', video_id, item, query=query)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/nrk.py", line 61, in _call_api
    return self._download_json(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 997, in _download_json
    res = self._download_json_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 976, in _download_json_handle
    res = self._download_webpage_handle(
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 768, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 753, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/extractor/common.py", line 735, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/home/frafra/.local/pipx/venvs/yt-dlp/lib64/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 3591, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib64/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/lib64/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib64/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib64/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

[download] Finished downloading playlist: VM-sjefen etter Klaveness' tordentale: – En skuffelse
```