This commit is contained in:
Tony L 2020-09-25 04:02:19 +02:00 committed by GitHub
commit 9905f2da74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 0 deletions

View File

@ -1,5 +1,6 @@
from __future__ import unicode_literals
import json
import re
import itertools
@ -61,6 +62,7 @@ class LivestreamIE(InfoExtractor):
'only_matching': True,
}]
_API_URL_TEMPLATE = 'http://livestream.com/api/accounts/%s/events/%s'
_API_NEW_URL_TEMPLATE = 'https://api.new.livestream.com/accounts/%s/events/%s'
def _parse_smil_formats(self, smil, smil_url, video_id, namespace=None, f4m_params=None, transform_rtmp_url=None):
base_ele = find_xpath_attr(
@ -217,6 +219,24 @@ class LivestreamIE(InfoExtractor):
event = mobj.group('event_id') or mobj.group('event_name')
account = mobj.group('account_id') or mobj.group('account_name')
api_url = self._API_URL_TEMPLATE % (account, event)
api_new_url = self._API_NEW_URL_TEMPLATE % (account, event)
downloader_params = self._downloader.params
video_password = downloader_params.get("videopassword")
if video_password:
# use the given video password to unlock livestream.com event
password_request_url = api_new_url + "/password_tokens"
r = self._download_json(
password_request_url, video_id,
note="Getting video token",
errnote="Unable to get token. Is your password correct?",
data=json.dumps({"password": video_password}).encode(),
headers={"Content-Type": "application/json"}
)
password_token = r["password_token"]
event_key = event + ":pt:" + password_token
api_url = self._API_URL_TEMPLATE % (account, event_key)
if video_id:
video_data = self._download_json(
api_url + '/videos/%s' % video_id, video_id)