[spankbang:playlist] Add extractor (closes #19145)
This commit is contained in:
parent
f06a1cabe8
commit
49bd993fd9
|
@ -1058,7 +1058,10 @@ from .southpark import (
|
||||||
SouthParkEsIE,
|
SouthParkEsIE,
|
||||||
SouthParkNlIE
|
SouthParkNlIE
|
||||||
)
|
)
|
||||||
from .spankbang import SpankBangIE
|
from .spankbang import (
|
||||||
|
SpankBangIE,
|
||||||
|
SpankBangPlaylistIE,
|
||||||
|
)
|
||||||
from .spankwire import SpankwireIE
|
from .spankwire import SpankwireIE
|
||||||
from .spiegel import SpiegelIE, SpiegelArticleIE
|
from .spiegel import SpiegelIE, SpiegelArticleIE
|
||||||
from .spiegeltv import SpiegeltvIE
|
from .spiegeltv import SpiegeltvIE
|
||||||
|
|
|
@ -5,6 +5,7 @@ import re
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
|
orderedSet,
|
||||||
parse_duration,
|
parse_duration,
|
||||||
parse_resolution,
|
parse_resolution,
|
||||||
str_to_int,
|
str_to_int,
|
||||||
|
@ -12,7 +13,7 @@ from ..utils import (
|
||||||
|
|
||||||
|
|
||||||
class SpankBangIE(InfoExtractor):
|
class SpankBangIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:[^/]+\.)?spankbang\.com/(?P<id>[\da-z]+)/(?:video|play|embed)'
|
_VALID_URL = r'https?://(?:[^/]+\.)?spankbang\.com/(?P<id>[\da-z]+)/(?:video|play|embed)\b'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://spankbang.com/3vvn/video/fantasy+solo',
|
'url': 'http://spankbang.com/3vvn/video/fantasy+solo',
|
||||||
'md5': '1cc433e1d6aa14bc376535b8679302f7',
|
'md5': '1cc433e1d6aa14bc376535b8679302f7',
|
||||||
|
@ -103,3 +104,33 @@ class SpankBangIE(InfoExtractor):
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
'age_limit': age_limit,
|
'age_limit': age_limit,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class SpankBangPlaylistIE(InfoExtractor):
|
||||||
|
_VALID_URL = r'https?://(?:[^/]+\.)?spankbang\.com/(?P<id>[\da-z]+)/playlist/[^/]+'
|
||||||
|
_TEST = {
|
||||||
|
'url': 'https://spankbang.com/ug0k/playlist/big+ass+titties',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'ug0k',
|
||||||
|
'title': 'Big Ass Titties',
|
||||||
|
},
|
||||||
|
'playlist_mincount': 50,
|
||||||
|
}
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
playlist_id = self._match_id(url)
|
||||||
|
|
||||||
|
webpage = self._download_webpage(
|
||||||
|
url, playlist_id, headers={'Cookie': 'country=US; mobile=on'})
|
||||||
|
|
||||||
|
entries = [self.url_result(
|
||||||
|
'https://spankbang.com/%s/video' % video_id,
|
||||||
|
ie=SpankBangIE.ie_key(), video_id=video_id)
|
||||||
|
for video_id in orderedSet(re.findall(
|
||||||
|
r'<a[^>]+\bhref=["\']/?([\da-z]+)/play/', webpage))]
|
||||||
|
|
||||||
|
title = self._html_search_regex(
|
||||||
|
r'<h1>([^<]+)\s+playlist</h1>', webpage, 'playlist title',
|
||||||
|
fatal=False)
|
||||||
|
|
||||||
|
return self.playlist_result(entries, playlist_id, title)
|
||||||
|
|
Loading…
Reference in New Issue