aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/extractor/extractors.py1
-rw-r--r--yt_dlp/extractor/rutube.py21
2 files changed, 19 insertions, 3 deletions
diff --git a/yt_dlp/extractor/extractors.py b/yt_dlp/extractor/extractors.py
index 05a4f3ba6..73eb374ee 100644
--- a/yt_dlp/extractor/extractors.py
+++ b/yt_dlp/extractor/extractors.py
@@ -1265,6 +1265,7 @@ from .rutube import (
RutubeMovieIE,
RutubePersonIE,
RutubePlaylistIE,
+ RutubeTagsIE,
)
from .rutv import RUTVIE
from .ruutu import RuutuIE
diff --git a/yt_dlp/extractor/rutube.py b/yt_dlp/extractor/rutube.py
index d027412c4..2f753b41f 100644
--- a/yt_dlp/extractor/rutube.py
+++ b/yt_dlp/extractor/rutube.py
@@ -230,9 +230,9 @@ class RutubePlaylistBaseIE(RutubeBaseIE):
return self._extract_playlist(self._match_id(url))
-class RutubeChannelIE(RutubePlaylistBaseIE):
- IE_NAME = 'rutube:channel'
- IE_DESC = 'Rutube channels'
+class RutubeTagsIE(RutubePlaylistBaseIE):
+ IE_NAME = 'rutube:tags'
+ IE_DESC = 'Rutube tags'
_VALID_URL = r'https?://rutube\.ru/tags/video/(?P<id>\d+)'
_TESTS = [{
'url': 'http://rutube.ru/tags/video/1800/',
@@ -312,3 +312,18 @@ class RutubePlaylistIE(RutubePlaylistBaseIE):
playlist_kind = qs['pl_type'][0]
playlist_id = qs['pl_id'][0]
return self._extract_playlist(playlist_id, item_kind=playlist_kind)
+
+
+class RutubeChannelIE(RutubePlaylistBaseIE):
+ IE_NAME = 'rutube:channel'
+ IE_DESC = 'Rutube channel'
+ _VALID_URL = r'https?://rutube\.ru/channel/(?P<id>\d+)/videos'
+ _TESTS = [{
+ 'url': 'https://rutube.ru/channel/639184/videos/',
+ 'info_dict': {
+ 'id': '639184',
+ },
+ 'playlist_mincount': 133,
+ }]
+
+ _PAGE_TEMPLATE = 'http://rutube.ru/api/video/person/%s/?page=%s&format=json'