Compare commits

...

24 Commits

Author SHA1 Message Date
Ben Welsh
9e5075d644
Merge 481ad85994 into e1b3fa242c 2024-07-28 01:35:46 +09:00
dirkf
481ad85994
Newline at end 2022-10-30 21:10:32 +00:00
dirkf
54a1f498f1
Ensure primary is a dict
Test commit to provoke CI tests
2022-10-30 21:07:50 +00:00
palewire
d75cf3ade0
Worked youtube downloader back in 2022-08-23 10:45:31 -07:00
palewire
e6eef9e0ef
Merge branch 'master' of https://github.com/palewire/youtube-dl into parler 2022-08-23 10:44:38 -07:00
palewire
18b7043b0c
Backport from yt-dlp 2022-08-15 11:58:04 -07:00
palewire
c8686e7ccb
No @ 2022-08-09 03:44:59 -07:00
palewire
0ef718103f
Shorter title 2022-08-09 03:42:26 -07:00
palewire
871b60b117
_generic_title 2022-08-08 11:40:31 -07:00
Ben Welsh
2e1c744be8
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 11:05:07 -07:00
Ben Welsh
fec554563a
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 11:04:54 -07:00
palewire
99d43f800f
Merge branch 'parler' of github.com:palewire/youtube-dl into parler 2022-08-08 11:04:16 -07:00
palewire
92e053f4d2
Single quotes 2022-08-08 11:04:11 -07:00
Ben Welsh
e46a2a58e2
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 11:03:18 -07:00
Ben Welsh
40f370c358
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 11:03:09 -07:00
Ben Welsh
4b3bc81777
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 11:03:00 -07:00
palewire
027ba18bf4
Merge branch 'parler' of github.com:palewire/youtube-dl into parler 2022-08-08 11:02:09 -07:00
palewire
b14b4b8af5
Single quotes 2022-08-08 11:01:58 -07:00
Ben Welsh
ff952d586b
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 09:47:08 -07:00
Ben Welsh
1a82825b9c
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 09:46:46 -07:00
Ben Welsh
b1bbb03e0b
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 09:46:26 -07:00
Ben Welsh
a6f8feef49
Update youtube_dl/extractor/parler.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
2022-08-08 09:45:59 -07:00
palewire
6d6f38bed8
Cut geography 2022-08-07 11:14:38 -07:00
palewire
e9839174a1
[parler] Add new extractor 2022-08-07 11:14:24 -07:00
2 changed files with 115 additions and 0 deletions

View File

@ -917,6 +917,7 @@ from .palcomp3 import (
PalcoMP3VideoIE, PalcoMP3VideoIE,
) )
from .pandoratv import PandoraTVIE from .pandoratv import PandoraTVIE
from .parler import ParlerIE
from .parliamentliveuk import ParliamentLiveUKIE from .parliamentliveuk import ParliamentLiveUKIE
from .patreon import PatreonIE from .patreon import PatreonIE
from .pbs import PBSIE from .pbs import PBSIE

View File

@ -0,0 +1,114 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from .youtube import YoutubeIE
from ..utils import (
clean_html,
int_or_none,
strip_or_none,
try_get,
unified_timestamp,
urlencode_postdata,
)
class ParlerIE(InfoExtractor):
IE_DESC = 'Posts on parler.com'
_VALID_URL = r'https://parler\.com/feed/(?P<id>[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})'
_TESTS = [
{
'url': 'https://parler.com/feed/df79fdba-07cc-48fe-b085-3293897520d7',
'md5': '16e0f447bf186bb3cf64de5bbbf4d22d',
'info_dict': {
'id': 'df79fdba-07cc-48fe-b085-3293897520d7',
'ext': 'mp4',
'thumbnail': 'https://bl-images.parler.com/videos/6ce7cdf3-a27a-4d72-bf9c-d3e17ce39a66/thumbnail.jpeg',
'title': 'Parler video #df79fdba-07cc-48fe-b085-3293897520d7',
'description': 'md5:6f220bde2df4a97cbb89ac11f1fd8197',
'timestamp': 1659744000,
'upload_date': '20220806',
'uploader': 'Tulsi Gabbard',
'uploader_id': 'TulsiGabbard',
'uploader_url': 'https://parler.com/TulsiGabbard',
'view_count': int,
'comment_count': int,
'repost_count': int,
},
},
{
'url': 'https://parler.com/feed/a7406eb4-91e5-4793-b5e3-ade57a24e287',
'md5': '11687e2f5bb353682cee338d181422ed',
'info_dict': {
'id': 'a7406eb4-91e5-4793-b5e3-ade57a24e287',
'ext': 'mp4',
'thumbnail': 'https://bl-images.parler.com/videos/317827a8-1e48-4cbc-981f-7dd17d4c1183/thumbnail.jpeg',
'title': 'Parler video #a7406eb4-91e5-4793-b5e3-ade57a24e287',
'description': 'This man should run for office',
'timestamp': 1659657600,
'upload_date': '20220805',
'uploader': 'Benny Johnson',
'uploader_id': 'BennyJohnson',
'uploader_url': 'https://parler.com/BennyJohnson',
'view_count': int,
'comment_count': int,
'repost_count': int,
},
},
{
'url': 'https://parler.com/feed/f23b85c1-6558-470f-b9ff-02c145f28da5',
'md5': 'eaba1ff4a10fe281f5ce74e930ab2cb4',
'info_dict': {
'id': 'r5vkSaz8PxQ',
'ext': 'mp4',
'thumbnail': 'https://i.ytimg.com/vi_webp/r5vkSaz8PxQ/maxresdefault.webp',
'title': 'Tom MacDonald Names Reaction',
'description': 'md5:33c21f0d35ae6dc2edf3007d6696baea',
'upload_date': '20220716',
'duration': 1267,
'uploader': 'Mahesh Chookolingo',
'uploader_id': 'maheshchookolingo',
'uploader_url': 'http://www.youtube.com/user/maheshchookolingo',
'channel': 'Mahesh Chookolingo',
'channel_id': 'UCox6YeMSY1PQInbCtTaZj_w',
'channel_url': 'https://www.youtube.com/channel/UCox6YeMSY1PQInbCtTaZj_w',
'categories': ['Entertainment'],
'tags': list,
'availability': 'public',
'live_status': 'not_live',
'view_count': int,
'comment_count': int,
'like_count': int,
'channel_follower_count': int,
'age_limit': 0,
'playable_in_embed': True,
},
'add_ie': ['Youtube'],
},
]
def _real_extract(self, url):
video_id = self._match_id(url)
data = self._download_json(
'https://parler.com/open-api/ParleyDetailEndpoint.php', video_id,
data=urlencode_postdata({'uuid': video_id}))['data'][0]
primary = try_get(data, lambda x: x['primary'], dict) or {}
embed = self._parse_json(primary.get('V2LINKLONG') or '', video_id, fatal=False)
if embed:
return self.url_result(embed[0], YoutubeIE.ie_key())
return {
'id': video_id,
'url': primary['video_data']['videoSrc'],
'thumbnail': primary['video_data']['thumbnailUrl'],
'title': "Parler video #%s" % video_id,
'description': strip_or_none(clean_html(primary.get('full_body'))) or None,
'timestamp': unified_timestamp(primary.get('date_created')),
'uploader': strip_or_none(primary.get('name')),
'uploader_id': strip_or_none(primary.get('username')),
'uploader_url': 'https://parler.com/%s' % strip_or_none(primary.get('username')),
'view_count': int_or_none(primary.get('view_count')),
'comment_count': int_or_none(data['engagement']['commentCount']),
'repost_count': int_or_none(data['engagement']['echoCount']),
}