Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RadioFrancePodcast] Unable to download JSON metadata: HTTP Error 404 #9526

Open
11 tasks done
someziggyman opened this issue Mar 24, 2024 · 1 comment
Open
11 tasks done
Labels
site-bug Issue with a specific website

Comments

@someziggyman
Copy link

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

  • I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

Region

any

Provide a description that is worded well enough to be understood

Just trying to download podcasts from this link fails with 404:
https://www.radiofrance.fr/franceculture/podcasts/serie-sur-les-lieux-de-georges-perec

looks like mp3 files can be accessed via this links:
https://media.radiofrance-podcast.net/podcast09/10177-11.03.2024-ITEMA_23674005-2024C26362E0037-21.mp3
https://media.radiofrance-podcast.net/podcast09/23117-11.03.2024-ITEMA_23674032-2024C26362E0038-21.mp3
https://media.radiofrance-podcast.net/podcast09/10177-11.03.2024-ITEMA_23674005-2024C26362E0039-21.mp3
https://media.radiofrance-podcast.net/podcast09/10177-11.03.2024-ITEMA_23674005-2024C26362E0040-21.mp3

Not sure if those stay the same though, if you test it on your end.

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • If using API, add 'verbose': True to YoutubeDL params instead
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

./yt-dlp -vU -F "https://www.radiofrance.fr/franceculture/podcasts/serie-sur-les-lieux-de-georges-perec"
[debug] Command-line config: ['-vU', '-F', 'https://www.radiofrance.fr/franceculture/podcasts/serie-sur-les-lieux-de-georges-perec']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2024.03.10 from yt-dlp/yt-dlp [615a84447] (zip)
[debug] Python 3.12.2 (CPython arm64 64bit) - macOS-14.3.1-arm64-arm-64bit (OpenSSL 3.2.1 30 Jan 2024)
[debug] exe versions: phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: sqlite3-3.45.2
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Extractor Plugins: SamplePluginIE
[debug] Post-Processor Plugins: SamplePluginPP
[debug] Loaded 1891 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.03.10 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.03.10 from yt-dlp/yt-dlp)
[RadioFrancePodcast] Extracting URL: https://www.radiofrance.fr/franceculture/podcasts/serie-sur-les-lieux-de-georges-perec
[RadioFrancePodcast] serie-sur-les-lieux-de-georges-perec: Downloading JSON metadata
ERROR: [RadioFrancePodcast] serie-sur-les-lieux-de-georges-perec: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>)
  File "./yt-dlp/yt_dlp/extractor/common.py", line 732, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/extractor/radiofrance.py", line 293, in _real_extract
    metadata = self._download_json(
               ^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/extractor/common.py", line 1086, in download_content
    res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/extractor/common.py", line 1050, in download_handle
    res = self._download_webpage_handle(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/extractor/common.py", line 920, 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 "./yt-dlp/yt_dlp/extractor/common.py", line 877, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "./yt-dlp/yt_dlp/networking/_urllib.py", line 396, in _send
    res = opener.open(urllib_req, timeout=self._calculate_timeout(request))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 521, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 630, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 559, in error
    return self._call_chain(*args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 492, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/urllib/request.py", line 639, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./yt-dlp/yt_dlp/extractor/common.py", line 864, in _request_webpage
    return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/YoutubeDL.py", line 4131, in urlopen
    return self._request_director.send(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/networking/common.py", line 115, in send
    response = handler.send(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/networking/_helper.py", line 204, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/networking/common.py", line 335, in send
    return self._send(request)
           ^^^^^^^^^^^^^^^^^^^
  File "./yt-dlp/yt_dlp/networking/_urllib.py", line 401, in _send
    raise HTTPError(UrllibResponseAdapter(e.fp), redirect_loop='redirect error' in str(e)) from e
yt_dlp.networking.exceptions.HTTPError: HTTP Error 404: Not Found
@someziggyman someziggyman added site-bug Issue with a specific website triage Untriaged issue labels Mar 24, 2024
@HobbyistDev
Copy link
Contributor

HobbyistDev commented Apr 6, 2024

I think the API url is dead. We can extract the data from the last script in data constant. The relevant information is in last element in data key and then a.items (at least for the OP url). Here's the sample:

Sample of `a.items`
a.items = [{
	id: "76c1a33b-9f03-4422-a71f-27b10de011f0",
	title: "La rue Vilin, le lieu de l’enfance",
	standFirst: "Comment Georges Perec, orphelin de la Shoah, a-t-il levé le rideau de fer tombé sur son lieu d’enfance, la rue Vilin à Belleville, où il a vécu de 1936 à 1942 ? Cet épisode part à la recherche des traces laissées par son histoire.",
	isExpired: false,
	model: "Expression",
	type: "episode",
	kind: "antenne",
	guest: [],
	publishedDate: 1710172800,
	startDate: 1710172800,
	endDate: 1710176272,
	path: "franceculture/podcasts/lsd-la-serie-documentaire/la-rue-vilin-le-lieu-de-l-enfance-5547981",
	migrated: true,
	visual: {
		model: "EmbedImage",
		src: "https://www.radiofrance.fr/s3/cruiser-production-eu3/2024/03/8b6d64bd-097c-47e1-ba11-b6593a2ed96f/464x261_sc_079-img1300343827.jpg",
		webpSrc: "https://www.radiofrance.fr/s3/cruiser-production-eu3/2024/03/8b6d64bd-097c-47e1-ba11-b6593a2ed96f/464x261_sc_079-img1300343827.webp",
		legend: "La rue Vilin en 1965",
		copyright: "AFP",
		author: "Norbert Perrau / Ina / Ina via AFP",
		width: 464,
		height: 261,
		preview: "/9j/2wBDACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////m8H////6/+b9//j/2wBDASstLTw1PHZBQXb4pYyl+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj/wAARCAAXACoDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAECAwT/xAAYEAEBAQEBAAAAAAAAAAAAAAAAAQIREv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA9nNueaVNA6PRXTKaPoL9D0z6XQYSqlABcp9AAEAD/2Q==",
		id: "8b6d64bd-097c-47e1-ba11-b6593a2ed96f",
		type: "image",
		preset: "464x261"
	},
	squaredVisual: {
		model: "EmbedImage",
		src: "https://www.radiofrance.fr/s3/cruiser-production-eu3/2024/03/8b6d64bd-097c-47e1-ba11-b6593a2ed96f/400x400_sc_079-img1300343827.jpg",
		webpSrc: "https://www.radiofrance.fr/s3/cruiser-production-eu3/2024/03/8b6d64bd-097c-47e1-ba11-b6593a2ed96f/400x400_sc_079-img1300343827.webp",
		legend: "La rue Vilin en 1965",
		copyright: "AFP",
		author: "Norbert Perrau / Ina / Ina via AFP",
		width: 400,
		height: 400,
		preview: "/9j/2wBDACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////m8H////6/+b9//j/2wBDASstLTw1PHZBQXb4pYyl+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj/wAARCAAqACoDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAECAwQF/8QAGRABAQEBAQEAAAAAAAAAAAAAAAECERIT/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/APRukarL6C7A9Vlo7pNoEC6XQT9FTblm1TQOj0V0ymj9AvpdR0dBzSqlQcBrKfUQwV0dIA//2Q==",
		id: "8b6d64bd-097c-47e1-ba11-b6593a2ed96f",
		type: "image",
		preset: "400x400"
	},
	serie: {
		path: "franceculture/podcasts/serie-sur-les-lieux-de-georges-perec",
		relationMeta: {
			episode_order: 0,
			episode_title: "Sur les lieux de Georges Perec 1/4 : La rue Vilin, le lieu de l’enfance",
			episode_number: 1
		}
	},
	concept: {
		id: "fb8db8c6-20b0-4189-977e-07f112c3de79",
		title: "LSD, la série documentaire",
		path: "franceculture/podcasts/lsd-la-serie-documentaire",
		visual: {
			model: "EmbedImage",
			src: "https://www.radiofrance.fr/s3/cruiser-production/2021/12/86ed17bb-e92b-4805-8957-41b4f7948c93/464x261_lsd-la-serie-documentaire.jpg",
			webpSrc: "https://www.radiofrance.fr/s3/cruiser-production/2021/12/86ed17bb-e92b-4805-8957-41b4f7948c93/464x261_lsd-la-serie-documentaire.webp",
			legend: "LSD, la série documentaire",
			copyright: "Radio France",
			author: null,
			width: 464,
			height: 261,
			preview: "/9j/2wBDACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////m8H////6/+b9//j/2wBDASstLTw1PHZBQXb4pYyl+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj/wAARCAAXACoDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAECAwT/xAAhEAACAgIBBAMAAAAAAAAAAAABAgAREiEDBBMxQTJRUv/EABcBAQEBAQAAAAAAAAAAAAAAAAMAAQL/xAAcEQACAgIDAAAAAAAAAAAAAAAAAQIRA0EiMTL/2gAMAwEAAhEDEQA/AIQAHUfIpPox9OQMsh6m7cg0MTZjWBXM5X+IkoLNTV+NmBYDUhePkB0JCJVFope2GrCzHgv5EQABsncM1+5UcPJPRSHFjrzLa3A2NbhCTMh6AszIADS3Jzdb8GoQmCbaOdmLEkauTRhCaInXR//Z",
			id: "86ed17bb-e92b-4805-8957-41b4f7948c93",
			type: "image",
			preset: "464x261"
		},
		squaredVisual: {
			model: "EmbedImage",
			src: "https://www.radiofrance.fr/s3/cruiser-production/2021/10/9f5786b0-763e-4381-8da0-cb0e7c559562/400x400_lsd-la-serie-documentaire.jpg",
			webpSrc: "https://www.radiofrance.fr/s3/cruiser-production/2021/10/9f5786b0-763e-4381-8da0-cb0e7c559562/400x400_lsd-la-serie-documentaire.webp",
			legend: "LSD",
			copyright: "Radio France",
			author: null,
			width: 400,
			height: 400,
			preview: "/9j/2wBDACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+AjIqgtObDoKrarYqMyP/L2u71////m8H////6/+b9//j/2wBDASstLTw1PHZBQXb4pYyl+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj/wAARCAAqACoDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAgMBAP/EACIQAAICAQQCAwEAAAAAAAAAAAECABEDEhMhMUFRBCIyYf/EABgBAAMBAQAAAAAAAAAAAAAAAAABAwIE/8QAHREAAwACAgMAAAAAAAAAAAAAAAERAiESMgMTQf/aAAwDAQACEQMRAD8ACGzMyChHjGskjoRvhb2JY51eZAikmYzUT8Cj2IcfcCi6umbbMxpTM229SwdtZF8RwNvzLEzACpapR2ddP27kUa24lDWkaomSTfLZzYl0amaiTCPjqT+olph4JgKiyATfioG7KglghI9Q70zQSTd3O24xLHD6VDDHfEYyq/iSyzMcDK6UqMgLcCpwyqHJ0yS/owt2YQa24VORX/kG6JLxMgU9ayez/9k=",
			id: "9f5786b0-763e-4381-8da0-cb0e7c559562",
			type: "image",
			preset: "400x400"
		}
	},
	mainResourceAudioAndVideo: null,
	manifestations: [{
		model: "ManifestationAudio",
		id: "f1c715a0-7b42-438c-b3b1-87c7d96cc821",
		title: "La rue Vilin, le lieu de l’enfance",
		url: "https://media.radiofrance-podcast.net/podcast09/10177-11.03.2024-ITEMA_23674005-2024C26362E0037-21.mp3",
		created: 1710169252,
		duration: 3479,
		shareable: false,
		principal: true,
		preset: {
			id: "21",
			name: "stereo",
			encoding: "MP3",
			bitrate: 128,
			frequency: 44.1,
			level: "-15LUFS (stéréo)"
		}
	}],
	serieEpisodeTitle: "1/4 : La rue Vilin, le lieu de l’enfance",
	episodeSerieTitle: "Sur les lieux de Georges Perec 1/4 : La rue Vilin, le lieu de l’enfance",
	seriePath: "franceculture/podcasts/serie-sur-les-lieux-de-georges-perec",
	brand: "franceculture",
	isTimeshiftable: false
}, ...];

The audio url seems defined in manifestations item and in the url key inside the element

@bashonly bashonly removed the triage Untriaged issue label Apr 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
site-bug Issue with a specific website
Projects
None yet
Development

No branches or pull requests

3 participants