local media = {}
local hex={}
for i=0,255 do
hex[string.format("%0x",i)]=string.char(i)
hex[string.format("%0X",i)]=string.char(i)
end
local function decodeURI(s)
return (s:gsub('%%(%x%x)',hex))
end
function media.getAddonMedia(url,extraUrl)
local video_url = nil
local json = require "json"
local videoTab = nil
if extraUrl then
local data = getdata(extraUrl)
if data then
local jnTab = json:decode(data)
if jnTab == nil then return end
videoTab = jnTab.video
jnTab = nil
end
end
if url and videoTab == nil then
local data = getdata(url)
if data then
local jsonurl = nil
local playerdata= data:match('
')
if playerdata == nil then
jsonurl = data:match("arte_vp_url='(.-)'") or data:match('json_url=(.-)"')
else
jsonurl = playerdata:match('json_url=(.-)"')
end
if jsonurl == nil then return end
jsonurl=jsonurl:gsub('&','&')
jsonurl = decodeURI(jsonurl)
data = getdata(jsonurl)
if data == nil then return end
local jnTab = json:decode(data)
if jnTab == nil then return end
videoTab = jnTab.videoJsonPlayer
-- if videoTab.V7T then
-- media.newText = videoTab.V7T
-- end
if videoTab.VDE then
media.newText = videoTab.VDE
end
jnTab = nil
end
end
if videoTab then
local tmp_bitrate = 0
if videoTab.VTU and videoTab.VTU.IUR then
media.PicUrl = videoTab.VTU.IUR
end
for i,v in pairs(videoTab.VSR) do
if v.bitrate then
local vUrl = nil
if v.url and v.versionShortLibelle == "DE" then --"DE" "FR" "DE-ANG" "DE-ESP"
vUrl = v.url
elseif v.url and v.versionShortLibelle == "OmU" then --"DE" "FR" "DE-ANG" "DE-ESP"
vUrl = v.url
elseif v.VUR then
vUrl = v.VUR
end
if vUrl then
if vUrl:find("m3u8") then
v.bitrate=v.bitrate-1 --prio for mp4
end
if v.bitrate > tmp_bitrate then
video_url = vUrl
tmp_bitrate = v.bitrate
end
end
end
end
end
if video_url and #video_url > 8 then
media.VideoUrl=video_url
end
end
return media