-- Example: http://domatv.net/100-dom-kino-premium.html -- Add parameter to url -- Probe function. function probe() if vlc.access ~= "http" and vlc.access ~= "https" then return false end return vlc.path:match("domatv%.net/") end function string.base64_decode(data) local b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" data = string.gsub(data, '[^'..b..'=]', '') return (data:gsub('.', function(x) if x == '=' then return '' end local r,f='',(b:find(x)-1) for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end return r; end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x) if #x ~= 8 then return '' end local c=0 for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end return string.char(c) end)) end -- Parse function. function parse() local html = vlc.read(200000) local temp = string.rep("S", 48):gsub("S","%%S").."//" if vlc.path:match("domatv.net") then local urlv1 = "50.7.172.20" local urlv2 = "50.7.144.155" local portv3 = "8081" title = html:match('\"og:title\"%s*content=\"(.-)\"') img = html:match('\"og:image\"%s*content=\"(.-)\"') urlv1 = vlc.strings.decode_uri(html:match("var%s*firstIpProtect%s*=%s*'(.-)'")) urlv2 = vlc.strings.decode_uri(html:match("var%s*secondIpProtect%s*=%s*'(.-)'")) portv3 = vlc.strings.decode_uri(html:match("var%s*portProtect%s*=%s*'(.-)'")) url = html:match('file:\"#2(.-)\"') if not url then vlc.msg.err("Couldn't find url to stream in the "..vlc.access.."://"..vlc.path) end url = string.reverse(url) while url:match(temp) do url = url:gsub(temp, '',1) end url = string.reverse(url) url = string.base64_decode(url) if not url then vlc.msg.err("Couldn't find url to stream in the "..vlc.access.."://"..vlc.path) end url = url:gsub("{v1}", urlv1,1) url = url:gsub("{v2}", urlv2,1) url = url:gsub("{v3}", portv3,1) end item = {} item.path = url item.title = title item.arturl = img item.options = { ":http-user-agent=Mozilla/5.0"; ":no-ts-trust-pcr"; ":adaptive-logic=highest"; ":http-referrer="..vlc.access.."://"..vlc.path } return { item } end