Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backups
youtube-dl
Commits
c3023e9f
Unverified
Commit
c3023e9f
authored
Jun 03, 2018
by
Sergey M․
Browse files
[camtube] Add extractor
parent
77053237
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
0 deletions
+70
-0
youtube_dl/extractor/camtube.py
youtube_dl/extractor/camtube.py
+69
-0
youtube_dl/extractor/extractors.py
youtube_dl/extractor/extractors.py
+1
-0
No files found.
youtube_dl/extractor/camtube.py
0 → 100644
View file @
c3023e9f
# coding: utf-8
from
__future__
import
unicode_literals
from
.common
import
InfoExtractor
from
..utils
import
(
int_or_none
,
unified_timestamp
,
)
class
CamTubeIE
(
InfoExtractor
):
_VALID_URL
=
r
'https?://(?:(?:www|api)\.)?camtube\.co/recordings?/(?P<id>[^/?#&]+)'
_TESTS
=
[{
'url'
:
'https://camtube.co/recording/minafay-030618-1136-chaturbate-female'
,
'info_dict'
:
{
'id'
:
'42ad3956-dd5b-445a-8313-803ea6079fac'
,
'display_id'
:
'minafay-030618-1136-chaturbate-female'
,
'ext'
:
'mp4'
,
'title'
:
'minafay-030618-1136-chaturbate-female'
,
'duration'
:
1274
,
'timestamp'
:
1528018608
,
'upload_date'
:
'20180603'
,
},
'params'
:
{
'skip_download'
:
True
,
},
}]
_API_BASE
=
'https://api.camtube.co'
def
_real_extract
(
self
,
url
):
display_id
=
self
.
_match_id
(
url
)
token
=
self
.
_download_json
(
'%s/rpc/session/new'
%
self
.
_API_BASE
,
display_id
,
'Downloading session token'
)[
'token'
]
self
.
_set_cookie
(
'api.camtube.co'
,
'session'
,
token
)
video
=
self
.
_download_json
(
'%s/recordings/%s'
%
(
self
.
_API_BASE
,
display_id
),
display_id
,
headers
=
{
'Referer'
:
url
})
video_id
=
video
[
'uuid'
]
timestamp
=
unified_timestamp
(
video
.
get
(
'createdAt'
))
duration
=
int_or_none
(
video
.
get
(
'duration'
))
view_count
=
int_or_none
(
video
.
get
(
'viewCount'
))
like_count
=
int_or_none
(
video
.
get
(
'likeCount'
))
creator
=
video
.
get
(
'stageName'
)
formats
=
[{
'url'
:
'%s/recordings/%s/manifest.m3u8'
%
(
self
.
_API_BASE
,
video_id
),
'format_id'
:
'hls'
,
'ext'
:
'mp4'
,
'protocol'
:
'm3u8_native'
,
}]
return
{
'id'
:
video_id
,
'display_id'
:
display_id
,
'title'
:
display_id
,
'timestamp'
:
timestamp
,
'duration'
:
duration
,
'view_count'
:
view_count
,
'like_count'
:
like_count
,
'creator'
:
creator
,
'formats'
:
formats
,
}
youtube_dl/extractor/extractors.py
View file @
c3023e9f
...
...
@@ -147,6 +147,7 @@ from .camdemy import (
CamdemyFolderIE
)
from
.cammodels
import
CamModelsIE
from
.camtube
import
CamTubeIE
from
.camwithher
import
CamWithHerIE
from
.canalplus
import
CanalplusIE
from
.canalc2
import
Canalc2IE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment