|
|
@ -1,5 +1,6 @@
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import itertools
|
|
|
|
import json
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
import re
|
|
|
|
import re
|
|
|
@ -43,10 +44,11 @@ class JustinTVIE(InfoExtractor):
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Return count of items, list of *valid* items
|
|
|
|
# Return count of items, list of *valid* items
|
|
|
|
def _parse_page(self, url, video_id):
|
|
|
|
def _parse_page(self, url, video_id, counter):
|
|
|
|
info_json = self._download_webpage(url, video_id,
|
|
|
|
info_json = self._download_webpage(
|
|
|
|
'Downloading video info JSON',
|
|
|
|
url, video_id,
|
|
|
|
'unable to download video info JSON')
|
|
|
|
'Downloading video info JSON on page %d' % counter,
|
|
|
|
|
|
|
|
'Unable to download video info JSON %d' % counter)
|
|
|
|
|
|
|
|
|
|
|
|
response = json.loads(info_json)
|
|
|
|
response = json.loads(info_json)
|
|
|
|
if type(response) != list:
|
|
|
|
if type(response) != list:
|
|
|
@ -138,11 +140,10 @@ class JustinTVIE(InfoExtractor):
|
|
|
|
entries = []
|
|
|
|
entries = []
|
|
|
|
offset = 0
|
|
|
|
offset = 0
|
|
|
|
limit = self._JUSTIN_PAGE_LIMIT
|
|
|
|
limit = self._JUSTIN_PAGE_LIMIT
|
|
|
|
while True:
|
|
|
|
for counter in itertools.count(1):
|
|
|
|
if paged:
|
|
|
|
|
|
|
|
self.report_download_page(video_id, offset)
|
|
|
|
|
|
|
|
page_url = api + ('?offset=%d&limit=%d' % (offset, limit))
|
|
|
|
page_url = api + ('?offset=%d&limit=%d' % (offset, limit))
|
|
|
|
page_count, page_info = self._parse_page(page_url, video_id)
|
|
|
|
page_count, page_info = self._parse_page(
|
|
|
|
|
|
|
|
page_url, video_id, counter)
|
|
|
|
entries.extend(page_info)
|
|
|
|
entries.extend(page_info)
|
|
|
|
if not paged or page_count != limit:
|
|
|
|
if not paged or page_count != limit:
|
|
|
|
break
|
|
|
|
break
|
|
|
|