From 49c24c6682f5fe543e8702f4f8cb51fb68fc0ae4 Mon Sep 17 00:00:00 2001 From: juandisay Date: Thu, 27 Feb 2020 17:31:02 +0700 Subject: [PATCH 1/2] restore --- youtube_dl/extractor/toggle.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/youtube_dl/extractor/toggle.py b/youtube_dl/extractor/toggle.py index 7e0138acf..ca2e36efe 100644 --- a/youtube_dl/extractor/toggle.py +++ b/youtube_dl/extractor/toggle.py @@ -125,10 +125,8 @@ class ToggleIE(InfoExtractor): 'mediaType': 0, } - # sanitized request: - # 'http://tvpapi.as.tvinci.com/v2_9/gateways/jsonpostgw.aspx?m=GetMediaInfo' req = sanitized_Request( - 'https://tvpapi-as.ott.kaltura.com/v3_9/gateways/jsonpostgw.aspx?m=GetMediaInfo', + 'http://tvpapi.as.tvinci.com/v2_9/gateways/jsonpostgw.aspx?m=GetMediaInfo', json.dumps(params).encode('utf-8')) info = self._download_json(req, video_id, 'Downloading video info json') From 418c64b0ebc83df6099dfeebee13aa0031dd4eaa Mon Sep 17 00:00:00 2001 From: juandisay Date: Sun, 1 Mar 2020 10:34:18 +0700 Subject: [PATCH 2/2] extracting data audio config youtube --- youtube_dl/extractor/youtube.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index eacaa5ecd..420c23898 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1425,7 +1425,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): self._downloader.report_warning('video doesn\'t have subtitles') return {} return sub_lang_list - + def _get_ytplayer_config(self, video_id, webpage): patterns = ( # User data may contain arbitrary character sequences that may affect @@ -1651,7 +1651,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': chapter_title, }) return chapters - + def _real_extract(self, url): url, smuggled_data = unsmuggle_url(url, {}) @@ -1704,13 +1704,21 @@ class YoutubeIE(YoutubeBaseInfoExtractor): is_live = None view_count = None - def extract_view_count(v_info): return int_or_none(try_get(v_info, lambda x: x['view_count'][0])) def extract_token(v_info): return dict_get(v_info, ('account_playback_token', 'accountPlaybackToken', 'token')) + def extract_audioconfig(q,player_response): + playConfig = dict_get(player_response, ('playConfig','playerConfig','audioConfig')) + audioConfig = dict_get(playConfig, ('audioConfig','audioConfig','perceptualLoudnessDb')) + for pattern, value in audioConfig.items(): + if re.search(pattern, q): + return value + break + return None + def extract_player_response(player_response, video_id): pl_response = str_or_none(player_response) if not pl_response: @@ -1719,7 +1727,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): if isinstance(pl_response, dict): add_dash_mpd_pr(pl_response) return pl_response - + player_response = {} # Get video info @@ -1821,6 +1829,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor): if not token: video_info = get_video_info break + + # Audio config + #TODO: Extract all data audioconfig example: + # loudnessDb = extract_audioconfig("loudnessDb", player_response) + # enablePerFormatLoudness = extract_audioconfig("enablePerFormatLoudness", player_response) + perceptualLoudnessDb = extract_audioconfig("perceptualLoudnessDb", player_response) def extract_unavailable_message(): messages = [] @@ -2460,6 +2474,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'album': album, 'release_date': release_date, 'release_year': release_year, + 'perceptualLoudnessDb': perceptualLoudnessDb, }