From bd99f6e64834ac8e1304619d469183ef65c20d39 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 8 Jun 2021 00:20:06 +0530 Subject: [PATCH] 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 --- README.md | 2 ++ yt_dlp/YoutubeDL.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 588440c07..4d79c1c62 100644 --- a/README.md +++ b/README.md @@ -968,6 +968,8 @@ The available fields are: - `playlist_title` (string): Playlist title - `playlist_uploader` (string): Full name 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: diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 1298134b6..2997b19ca 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -1144,6 +1144,7 @@ class YoutubeDL(object): self.add_extra_info(ie_result, { 'extractor': ie.IE_NAME, 'webpage_url': url, + 'original_url': url, 'webpage_url_basename': url_basename(url), 'extractor_key': ie.ie_key(), }) @@ -2763,7 +2764,7 @@ class YoutubeDL(object): 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 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()) reject = lambda k, v: k not in keep_keys and ( k.startswith('_') or k in remove_keys or v in empty_values)