syco / ace.bundle Goto Github PK
View Code? Open in Web Editor NEWPlex plug-in that plays live streams using acestream engine
License: GNU General Public License v3.0
Plex plug-in that plays live streams using acestream engine
License: GNU General Public License v3.0
hi,
i managed and stream videos using your channel on the plex web application, but it does not work using the webos (2.0) app:
'There was a problem playing this item.
The video did not start playing in time.
Go back'
is there a way to make it work?
thanks!
http://acestreamchannel.blogspot.com/
https://acelisting.in/
Can we add a few more sites or the ability to add our own sites? in the settings.
Instead of hard coding 127.0.0.1 please could we get an editable variable so we can run the engine elsewhere (my Plex runs on FreeBSD which has no Ace Engine at the moment so it cannot run on the localhost)
Would be good to have this under the cog for the plugin in the plex UI
Hello,
can't get it to work on my Samsung UE40MU6405 TV. Video flux will not load.
Working perfectly using Plex application on my PC, but this is not what I was looking for.
There is a pop up when starting the stream on my Plex PC application and then it start working.
But there is no pop up when I start it from my TV and the flux will not load.
I hope it'll help you.
Any idea to get it working on the TV? Thanks
Edit : Not working using the "select reader" in the top right Plex PC application to send the video flux from the PC to the TV (see the screenshot) https://i.gyazo.com/ae0548d1937be8f264743a104d178bec.png
Hello, thank you for your work!!
Can you add:
https://www.reddit.com/r/nflstreams
https://www.reddit.com/r/MMAStreams/
Reddit
Any chance you can add /r/livetvlinks ?
Also, adding the ability to add our own playlist of stream links would help futureproof this a bit.
I dont know if the problem is "at" or @
Because sometime its at or @
Example:
Game Thread: Indianapolis Colts at Kansas City Chiefs (4:35PM ET)
It seems that the ace engine path is hard coded at the moment, with only the host and port configurable. It would be nice to be able to configure the entire path.
Currently the path is:
url = 'http://{}:{}/ace/manifest.m3u8?id={}'.format(Prefs['ace_host'], Prefs['ace_port'], phpscraper['link']),
I am using https://github.com/ikatson/docker-acestream-proxy, which requires paths to be in the form
http://[SERVER_IP]:8000/pid/{channel_id}/stream.mp4
(alternatively, I'd love to be pointed in the direction of a different acestream proxy that runs in docker)
Please could you add the usernames to the scraped list?
This would help with choosing a more reliable stream from more reliable posters.
Would be good to have this under the cog for the plugin in the plex UI, option for on/off.
Server doesn't open steams via ace stream engine. Is anyone else having this issue?
Let me know if this works. I am not a python developer but I think it works. I like boxing so...
`from datetime import datetime, timedelta
import json
import re
def Start():
ObjectContainer.title1 = 'ACE'
HTTP.Headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'
HTTP.CacheTime = 0
Log('Ace host: {}, Ace port: {}'.format(Prefs['ace_host'], Prefs['ace_port']))
@handler('/video/ace', 'ACE', thumb = 'logo.png', art = 'logo.png')
def MainMenu():
oc = ObjectContainer(title2 = 'ACE')
if (Prefs['show_arenavision']):
oc.add(
DirectoryObject(
key = Callback(ArenavisionList, title = 'Arenavision'),
title = 'Arenavision'
)
)
if (Prefs['show_reddit_nba']):
oc.add(
DirectoryObject(
key = Callback(RedditNBAList, title = 'Reddit/NBA'),
title = 'Reddit/NBA'
)
)
if (Prefs['show_reddit_nfl']):
oc.add(
DirectoryObject(
key = Callback(RedditNFLList, title = 'Reddit/NFL'),
title = 'Reddit/NFL'
)
)
if (Prefs['show_reddit_mma']):
oc.add(
DirectoryObject(
key = Callback(RedditMMAList, title = 'Reddit/MMA'),
title = 'Reddit/MMA'
)
)
if (Prefs['show_reddit_motorsports']):
oc.add(
DirectoryObject(
key = Callback(RedditMotorSportsList, title = 'Reddit/MotorSports'),
title = 'Reddit/MotorSports'
)
)
if (Prefs['show_reddit_soccer']):
oc.add(
DirectoryObject(
key = Callback(RedditSoccerList, title = 'Reddit/Soccer'),
title = 'Reddit/Soccer'
)
)
if (Prefs['show_reddit_boxing']):
oc.add(
DirectoryObject(
key = Callback(RedditNFLList, title = 'Reddit/Boxing'),
title = 'Reddit/Boxing'
)
)
return oc
@route('/video/ace/arenavisionlist')
def ArenavisionList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(ArenavisionList, title = title),
title = 'Refresh'
)
)
today = '{:%d/%m/%Y}'.format(datetime.utcnow())
tomorrow = '{:%d/%m/%Y}'.format(datetime.utcnow() + timedelta(days=1))
html = HTML.ElementFromURL('http://arenavision.in/guide', '', {'Cookie': 'beget=begetok; expires=' + ('{:%a, %d %b %Y %H:%M:%S GMT}'.format(datetime.utcnow() + timedelta(seconds=19360000))) + '; path=/'})
for item in html.xpath('//tr[count(./td)>=6]'):
av_date = item.xpath('./td[1]/text()')[0].decode('UTF-8')
if today != av_date and tomorrow !=av_date:
continue
av_time = item.xpath('./td[2]/text()')[0].decode('UTF-8')
av_sport = item.xpath('./td[3]/text()')[0].decode('UTF-8')
av_tournament = item.xpath('./td[4]/text()')[0].decode('UTF-8')
av_match = item.xpath('./td[5]/text()')[0].decode('UTF-8')
av_langs = ''
urls = []
for t1 in item.xpath('./td[6]/text()'):
tokens = t1.split(' ')
av_langs = av_langs + ' ' + tokens[1]
for c in tokens[0].split('-'):
c = c.strip()
if c[0] == 'W':
urls.append(tokens[1] + ' ' + c + '!' + (html.xpath('//a[text()="World Cup ' + c[1:] + '"]')[0]).get('href'))
else:
urls.append(tokens[1] + ' ' + c + '!' + (html.xpath('//a[text()="ArenaVision ' + c + '"]')[0]).get('href'))
title = av_date + ' ' + av_time + ' | ' + av_sport + ' | ' + av_tournament + ' | ' + av_match + ' |' + av_langs
oc.add(
DirectoryObject(
key = Callback(ArenavisionSubList, title = title, url = '|'.join(urls)),
title = title
)
)
return oc
@route('/video/ace/arenavisionsublist')
def ArenavisionSubList(title, url):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(ArenavisionSubList, title = title, url = url),
title = 'Refresh'
)
)
pattern = re.compile(r'acestream://([0-z]{40})', re.IGNORECASE)
for r in url.split('|'):
t = r.split('!')
html = HTTP.Request(t[1], '', {'Cookie': 'beget=begetok; expires=' + ('{:%a, %d %b %Y %H:%M:%S GMT}'.format(datetime.utcnow() + timedelta(seconds=19360000))) + '; path=/'}).content
for m in re.finditer(pattern, html):
aurl = 'http://{}:{}/ace/manifest.m3u8?id={}'.format(Prefs['ace_host'], Prefs['ace_port'], m.group(1))
Log(aurl)
oc.add(
Show(
url = aurl,
title = t[0]
)
)
return oc
def getRedditLinks(oc, url, selector):
plus = ""
while True:
html = HTTP.Request(url + plus).content
js = json.loads(html)
for t3 in js["data"]["children"]:
title = t3["data"]["title"]
if title.lower().find(selector) != -1:
title2 = "{}, by {}".format(title, t3["data"]["author"]).decode('UTF-8')
url2 = t3["data"]["url"].decode('UTF-8')
oc.add(
DirectoryObject(
key = Callback(RedditSubList, title = title2, url = url2),
title = title2
)
)
after = js["data"]["after"]
if after is None:
break
else:
plus = "?after=" + after
def findAllData(js, ks):
arr = []
if isinstance(js, dict):
for k in js:
if k == ks and "body" in js[k]:
arr.append(js[k])
arr.extend(findAllData(js[k], ks))
elif isinstance(js, list):
for sjs in js:
arr.extend(findAllData(sjs, ks))
return arr
@route('/video/ace/redditsublist')
def RedditSubList(title, url):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditSubList, title = title, url = url),
title = 'Refresh'
)
)
pattern = re.compile(r'((?:[[^\[\]]+]\s+))acestream://([0-z]{40})((?:\s+[[^\[\]]+]))', re.IGNORECASE)
lang_0 = []
lang_1 = []
plus = ""
while True:
html = HTTP.Request(url[:-1] + ".json" + plus).content
js = json.loads(html)
arr = findAllData(js, "data")
for t3 in arr:
for m in re.finditer(pattern, t3["body"]):
aceid = m.group(2)
acedesc = "{}{} [{}] by {}".format(m.group(1), m.group(3), aceid, t3["author"])
aurl = 'http://{}:{}/ace/manifest.m3u8?id={}'.format(Prefs['ace_host'], Prefs['ace_port'], aceid)
Log(aurl)
if re.search('[(ar|croatian|es|esp|ger|german|kazakh|pl|portugal|pt|ru|spanish|ukrainian)]', acedesc, re.IGNORECASE) == None:
lang_1.append(
Show(
url = aurl,
title = acedesc.decode('UTF-8')
)
)
else:
lang_0.append(
Show(
url = aurl,
title = acedesc.decode('UTF-8')
)
)
after = js[0]["data"]["after"]
if after is None:
break
else:
plus = "?after=" + after
for e in lang_0:
oc.add(e)
for e in lang_1:
oc.add(e)
return oc
@route('/video/ace/redditnbalist')
def RedditNBAList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditNBAList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/nbastreams.json', ' @')
return oc
@route('/video/ace/redditnfllist')
def RedditNFLList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditNFLList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/nflstreams.json', ' @')
return oc
@route('/video/ace/redditmmalist')
def RedditMMAList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditMMAList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/MMAStreams.json', ' vs')
return oc
@route('/video/ace/redditmotorsportslist')
def RedditMotorSportsList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditMotorSportsList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/motorsportsstreams.json', ' utc')
return oc
@route('/video/ace/redditsoccerlist')
def RedditSoccerList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditSoccerList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/soccerstreams.json', ' vs')
return oc
@route('/video/ace/redditboxinglist')
def RedditBoxingList(title):
oc = ObjectContainer(title2 = title)
oc.add(
DirectoryObject(
key = Callback(RedditBoxingList, title = title),
title = 'Refresh'
)
)
getRedditLinks(oc, 'https://www.reddit.com/r/boxingstreams.json', ' vs')
return oc
@route('/video/ace/show', include_container = bool)
def Show(url, title, include_container = False, **kwargs):
vco = VideoClipObject(
key = Callback(Show, url = url, title = title, include_container = True),
rating_key = url,
title = title,
items = [
MediaObject(
protocol = Protocol.HLS,
container = Container.MP4,
video_codec = VideoCodec.H264,
audio_codec = AudioCodec.AAC,
audio_channels = 2,
optimized_for_streaming = True,
parts = [
PartObject(
key = HTTPLiveStreamURL(Callback(Play, url = url))
)
],
)
]
)
if include_container:
return ObjectContainer(objects = [vco])
else:
return vco
@indirect
@route('/video/ace/play.m3u8')
def Play(url, **kwargs):
Log(' --> Final stream url: %s' % (url))
return IndirectResponse(VideoClipObject, key = url)
`
Acelisting is not working. the directory is empty.
Reddit
Please attach screenshots showing the title of the posts that need to be scraped.
Not Reddit
..just name the website, I'll have a look myself.. ;)
Reddit
Please attach screenshots showing the title of the posts that need to be scraped.
Not Reddit
This is the new place for the football games
https://discordapp.com/channels/535895547530182692
Its possible to add it?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.