[Playvids] Add new extractor

archive/recovered-github-prs
Alexandre-Xavier Labonté-Lamoureux 4 years ago
parent d65d89183f
commit 3a1ead0f6a
No known key found for this signature in database
GPG Key ID: C0963C600CECC1FA

@ -666,6 +666,7 @@
- **PlaysTV** - **PlaysTV**
- **Playtvak**: Playtvak.cz, iDNES.cz and Lidovky.cz - **Playtvak**: Playtvak.cz, iDNES.cz and Lidovky.cz
- **Playvid** - **Playvid**
- **Playvids**
- **Playwire** - **Playwire**
- **pluralsight** - **pluralsight**
- **pluralsight:course** - **pluralsight:course**

@ -852,6 +852,7 @@ from .playplustv import PlayPlusTVIE
from .plays import PlaysTVIE from .plays import PlaysTVIE
from .playtvak import PlaytvakIE from .playtvak import PlaytvakIE
from .playvid import PlayvidIE from .playvid import PlayvidIE
from .playvids import PlayvidsIE
from .playwire import PlaywireIE from .playwire import PlaywireIE
from .pluralsight import ( from .pluralsight import (
PluralsightIE, PluralsightIE,

@ -0,0 +1,50 @@
# coding: utf-8
from __future__ import unicode_literals
import re
from .common import InfoExtractor
from ..utils import ExtractorError
class PlayvidsIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?playvids\.com/(?P<id>.+?)/(?P<seo>.+?)(?:$|[#\?])'
_TEST = {
'url': 'https://www.playvids.com/bKmGLe3IwjZ/sv/brazzers-800-phone-sex-madison-ivy-always-on-the-line',
'md5': '3b57615c81d5580919d3a0b216056a15',
'info_dict': {
'id': 'bKmGLe3IwjZ',
'ext': 'mp4',
'title': 'Brazzers - 1 800 Phone Sex: Madison Ivy Always On The Line 6',
'age_limit': 18,
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
title = self._html_search_regex(r'<h1>(.+?)</h1>', webpage, 'title').strip()
# search for the video urls
video_tags = re.findall(r'data-hls-src[0-9]*?="https:\/\/.*?userscontent.net.*?\.mp4\/index.m3u8\?seclink=.*?sectime=[0-9]*"', webpage)
# get the url from each match
video_urls = []
for n in video_tags:
video_urls.append(self._html_search_regex(r'"(.*?)"', n, 'url').replace("&amp;", "&"))
# reverse list so the best format is first
video_urls.reverse()
# check if nothing was found before attempting anything
if len(video_urls) == 0:
raise ExtractorError('No video URLs found')
else:
return {
'id': video_id,
'title': title,
'url': video_urls[0],
'ext': 'mp4',
'age_limit': 18,
}
Loading…
Cancel
Save