test
This commit is contained in:
91
lib/server/dailymotionresolver.py
Normal file
91
lib/server/dailymotionresolver.py
Normal file
@@ -0,0 +1,91 @@
|
||||
# -*- coding: UTF-8 -*-
|
||||
# *
|
||||
# *
|
||||
# * This Program is free software; you can redistribute it and/or modify
|
||||
# * it under the terms of the GNU General Public License as published by
|
||||
# * the Free Software Foundation; either version 2, or (at your option)
|
||||
# * any later version.
|
||||
# *
|
||||
# * This Program is distributed in the hope that it will be useful,
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# * GNU General Public License for more details.
|
||||
# *
|
||||
# * You should have received a copy of the GNU General Public License
|
||||
# * along with this program; see the file COPYING. If not, write to
|
||||
# * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
# * http://www.gnu.org/copyleft/gpl.html
|
||||
# *
|
||||
|
||||
import re
|
||||
from xml.etree import ElementTree
|
||||
import util
|
||||
from copy import deepcopy
|
||||
import json
|
||||
|
||||
__name__ = 'dailymotion'
|
||||
|
||||
|
||||
def supports(url):
|
||||
return re.search(r'dailymotion.com/embed', url) is not None
|
||||
|
||||
|
||||
def resolve(url):
|
||||
print('The url is ::', url)
|
||||
id = re.search(r'dailymotion.com/embed/video/(.+)', url).group(1)
|
||||
print('The id is ::', id)
|
||||
headers = {'User-Agent': 'Android'}
|
||||
cookie = {'Cookie': "lang=en; ff=off"}
|
||||
r = util.request("http://www.dailymotion.com/player/metadata/video/" + id,
|
||||
headers)
|
||||
content = json.loads(r)
|
||||
cc = content['qualities']
|
||||
cc = list(cc.items())
|
||||
|
||||
cc = sorted(cc, reverse=True)
|
||||
m_url = ''
|
||||
other_playable_url = []
|
||||
|
||||
items = []
|
||||
result = []
|
||||
|
||||
for source, json_source in cc:
|
||||
source = source.split("@")[0]
|
||||
for item in json_source:
|
||||
|
||||
m_url = item.get('url', None)
|
||||
# xbmc.log("DAILYMOTION - m_url = %s" % m_url, xbmc.LOGNOTICE)
|
||||
if m_url:
|
||||
if source == "auto":
|
||||
continue
|
||||
|
||||
elif '.mnft' in m_url:
|
||||
continue
|
||||
|
||||
if 'video' in item.get('type', None):
|
||||
item = {}
|
||||
item['url'] = m_url
|
||||
item['quality'] = source
|
||||
item['title'] = 'video'
|
||||
items.append(item)
|
||||
|
||||
other_playable_url.append(m_url)
|
||||
|
||||
if items:
|
||||
for item in items:
|
||||
newitem = deepcopy(item)
|
||||
item['lang'] = '???'
|
||||
item['headers'] = headers
|
||||
result.append(newitem)
|
||||
if not result and cc[0][0]=='auto':
|
||||
json_source=cc[0][1]
|
||||
m_url=json_source[0].get('url', None)
|
||||
r = util.request(m_url)
|
||||
streams = re.compile(r'RESOLUTION=\d+x(\d+).*\n([^\s]+)').findall(r)
|
||||
for quality, url in streams:
|
||||
item = {}
|
||||
item['url'] = url
|
||||
item['quality'] = quality + 'p'
|
||||
item['title'] = 'video'
|
||||
result.append(item)
|
||||
return result
|
||||
Reference in New Issue
Block a user