about summary refs log tree commit diff
path: root/youtube_dl/extractor/teamcoco.py
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2019-04-05 08:26:04 +0100
committerRemita Amine <remitamine@gmail.com>2019-04-05 08:26:04 +0100
commit69e6efac1669da68c0746419657160311cde2671 (patch)
treefc8ed40b4ce3d1f28ce7d07a0ba57ff5b7c6ac11 /youtube_dl/extractor/teamcoco.py
parent2bbde1d09afb2225fb7bd245bcf77a0715a58f29 (diff)
downloadyoutube-dl-69e6efac1669da68c0746419657160311cde2671.tar.gz
youtube-dl-69e6efac1669da68c0746419657160311cde2671.tar.xz
youtube-dl-69e6efac1669da68c0746419657160311cde2671.zip
[teamcoco] fix extraction and add suport for subdomains(closes #17099)(closes #20339)
Diffstat (limited to 'youtube_dl/extractor/teamcoco.py')
-rw-r--r--youtube_dl/extractor/teamcoco.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/youtube_dl/extractor/teamcoco.py b/youtube_dl/extractor/teamcoco.py
index 73469cc5d..7640cf00a 100644
--- a/youtube_dl/extractor/teamcoco.py
+++ b/youtube_dl/extractor/teamcoco.py
@@ -16,7 +16,7 @@ from ..utils import (
 
 
 class TeamcocoIE(TurnerBaseIE):
-    _VALID_URL = r'https?://teamcoco\.com/(?P<id>([^/]+/)*[^/?#]+)'
+    _VALID_URL = r'https?://(?:\w+\.)?teamcoco\.com/(?P<id>([^/]+/)*[^/?#]+)'
     _TESTS = [
         {
             'url': 'http://teamcoco.com/video/mary-kay-remote',
@@ -79,15 +79,20 @@ class TeamcocoIE(TurnerBaseIE):
         }, {
             'url': 'http://teamcoco.com/israel/conan-hits-the-streets-beaches-of-tel-aviv',
             'only_matching': True,
+        }, {
+            'url': 'https://conan25.teamcoco.com/video/ice-cube-kevin-hart-conan-share-lyft',
+            'only_matching': True,
         }
     ]
 
     def _graphql_call(self, query_template, object_type, object_id):
         find_object = 'find' + object_type
         return self._download_json(
-            'http://teamcoco.com/graphql/', object_id, data=json.dumps({
+            'https://teamcoco.com/graphql', object_id, data=json.dumps({
                 'query': query_template % (find_object, object_id)
-            }))['data'][find_object]
+            }).encode(), headers={
+                'Content-Type': 'application/json',
+            })['data'][find_object]
 
     def _real_extract(self, url):
         display_id = self._match_id(url)
@@ -145,7 +150,12 @@ class TeamcocoIE(TurnerBaseIE):
                 'accessTokenType': 'jws',
             }))
         else:
-            video_sources = self._graphql_call('''{
+            d = self._download_json(
+                'https://teamcoco.com/_truman/d/' + video_id,
+                video_id, fatal=False) or {}
+            video_sources = d.get('meta') or {}
+            if not video_sources:
+                video_sources = self._graphql_call('''{
   %s(id: "%s") {
     src
   }