parent
109db8ea64
commit
6f59aa934b
|
@ -561,7 +561,10 @@ from .parliamentliveuk import ParliamentLiveUKIE
|
||||||
from .patreon import PatreonIE
|
from .patreon import PatreonIE
|
||||||
from .pbs import PBSIE
|
from .pbs import PBSIE
|
||||||
from .people import PeopleIE
|
from .people import PeopleIE
|
||||||
from .periscope import PeriscopeIE
|
from .periscope import (
|
||||||
|
PeriscopeIE,
|
||||||
|
PeriscopeUserIE,
|
||||||
|
)
|
||||||
from .philharmoniedeparis import PhilharmonieDeParisIE
|
from .philharmoniedeparis import PhilharmonieDeParisIE
|
||||||
from .phoenix import PhoenixIE
|
from .phoenix import PhoenixIE
|
||||||
from .photobucket import PhotobucketIE
|
from .photobucket import PhotobucketIE
|
||||||
|
|
|
@ -7,6 +7,7 @@ from ..utils import parse_iso8601
|
||||||
|
|
||||||
class PeriscopeIE(InfoExtractor):
|
class PeriscopeIE(InfoExtractor):
|
||||||
IE_DESC = 'Periscope'
|
IE_DESC = 'Periscope'
|
||||||
|
IE_NAME = 'periscope'
|
||||||
_VALID_URL = r'https?://(?:www\.)?periscope\.tv/[^/]+/(?P<id>[^/?#]+)'
|
_VALID_URL = r'https?://(?:www\.)?periscope\.tv/[^/]+/(?P<id>[^/?#]+)'
|
||||||
# Alive example URLs can be found here http://onperiscope.com/
|
# Alive example URLs can be found here http://onperiscope.com/
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
@ -79,3 +80,39 @@ class PeriscopeIE(InfoExtractor):
|
||||||
'thumbnails': thumbnails,
|
'thumbnails': thumbnails,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class PeriscopeUserIE(InfoExtractor):
|
||||||
|
_VALID_URL = r'https?://www\.periscope\.tv/(?P<id>[^/]+)/?$'
|
||||||
|
IE_DESC = 'Periscope user videos'
|
||||||
|
IE_NAME = 'periscope:user'
|
||||||
|
|
||||||
|
_TEST = {
|
||||||
|
'url': 'https://www.periscope.tv/LularoeHusbandMike/',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'LularoeHusbandMike',
|
||||||
|
'title': 'LULAROE HUSBAND MIKE',
|
||||||
|
},
|
||||||
|
# Periscope only shows videos in the last 24 hours, so it's possible to
|
||||||
|
# get 0 videos
|
||||||
|
'playlist_mincount': 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
user_id = self._match_id(url)
|
||||||
|
|
||||||
|
webpage = self._download_webpage(url, user_id)
|
||||||
|
|
||||||
|
broadcast_data = self._parse_json(self._html_search_meta(
|
||||||
|
'broadcast-data', webpage, default='{}'), user_id)
|
||||||
|
username = broadcast_data.get('user', {}).get('display_name')
|
||||||
|
user_broadcasts = self._parse_json(
|
||||||
|
self._html_search_meta('user-broadcasts', webpage, default='{}'),
|
||||||
|
user_id)
|
||||||
|
|
||||||
|
entries = [
|
||||||
|
self.url_result(
|
||||||
|
'https://www.periscope.tv/%s/%s' % (user_id, broadcast['id']))
|
||||||
|
for broadcast in user_broadcasts.get('broadcasts', [])]
|
||||||
|
|
||||||
|
return self.playlist_result(entries, user_id, username)
|
||||||
|
|
Loading…
Reference in New Issue