Add field original_url with the user-inputted URL

So that they can be processed by `--parse-metadata` for example

`webpage_url` is the same, but may be modified by the extractor
This commit is contained in:
pukkandan 2021-06-08 00:20:06 +05:30
parent ecb5419149
commit bd99f6e648
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698
2 changed files with 4 additions and 1 deletions

View file

@ -968,6 +968,8 @@ # OUTPUT TEMPLATE
- `playlist_title` (string): Playlist title - `playlist_title` (string): Playlist title
- `playlist_uploader` (string): Full name of the playlist uploader - `playlist_uploader` (string): Full name of the playlist uploader
- `playlist_uploader_id` (string): Nickname or id of the playlist uploader - `playlist_uploader_id` (string): Nickname or id of the playlist uploader
- `webpage_url` (string): A URL to the video webpage which if given to yt-dlp should allow to get the same result again
- `original_url` (string): The URL given by the user (or same as `webpage_url` for playlist entries)
Available for the video that belongs to some logical chapter or section: Available for the video that belongs to some logical chapter or section:

View file

@ -1144,6 +1144,7 @@ def add_default_extra_info(self, ie_result, ie, url):
self.add_extra_info(ie_result, { self.add_extra_info(ie_result, {
'extractor': ie.IE_NAME, 'extractor': ie.IE_NAME,
'webpage_url': url, 'webpage_url': url,
'original_url': url,
'webpage_url_basename': url_basename(url), 'webpage_url_basename': url_basename(url),
'extractor_key': ie.ie_key(), 'extractor_key': ie.ie_key(),
}) })
@ -2763,7 +2764,7 @@ def filter_requested_info(info_dict, actually_filter=True):
remove_keys = ['__original_infodict'] # Always remove this since this may contain a copy of the entire dict remove_keys = ['__original_infodict'] # Always remove this since this may contain a copy of the entire dict
keep_keys = ['_type'], # Always keep this to facilitate load-info-json keep_keys = ['_type'], # Always keep this to facilitate load-info-json
if actually_filter: if actually_filter:
remove_keys += ('requested_formats', 'requested_subtitles', 'requested_entries', 'filepath', 'entries') remove_keys += ('requested_formats', 'requested_subtitles', 'requested_entries', 'filepath', 'entries', 'original_url')
empty_values = (None, {}, [], set(), tuple()) empty_values = (None, {}, [], set(), tuple())
reject = lambda k, v: k not in keep_keys and ( reject = lambda k, v: k not in keep_keys and (
k.startswith('_') or k in remove_keys or v in empty_values) k.startswith('_') or k in remove_keys or v in empty_values)