aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Christopher Rosell <chrippa@tanuki.se>2011-10-13 19:28:34 +0200
committerGravatar Christopher Rosell <chrippa@tanuki.se>2011-10-13 19:28:34 +0200
commit0f66539e65b088d7404bb9967f1aad23677ea451 (patch)
treead904cbf32677e2fda93539f1aebbd10944f010e
parent91483ff36aac0b0e202c84828f8a4a6b74204755 (diff)
livestreamer.plugins.ownedtv: Add proper CDN handling.
-rw-r--r--src/livestreamer/plugins/ownedtv.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/livestreamer/plugins/ownedtv.py b/src/livestreamer/plugins/ownedtv.py
index 1bf05db..e8f004d 100644
--- a/src/livestreamer/plugins/ownedtv.py
+++ b/src/livestreamer/plugins/ownedtv.py
@@ -23,7 +23,11 @@ urlopener = urllib.request.build_opener(RelativeRedirectHandler)
class OwnedTV(Plugin):
ConfigURL = "http://www.own3d.tv/livecfg/{0}"
- RTMPURL = "rtmp://owned.fc.llnwd.net:1935/owned/"
+ CDN = {
+ "cdn1": "rtmp://fml.2010.edgecastcdn.net/202010",
+ "cdn2": "rtmp://owned.fc.llnwd.net:1935/owned",
+ "cdn3": "http://hwcdn.net/u4k2r7c4/fls",
+ }
def can_handle_url(self, url):
return "own3d.tv" in url
@@ -55,22 +59,29 @@ class OwnedTV(Plugin):
streams = {}
for item in clip.getElementsByTagName("item"):
base = item.getAttribute("base")
- if base == "${cdn2}":
- for streamel in item.getElementsByTagName("stream"):
- name = streamel.getAttribute("label").lower()
- playpath = streamel.getAttribute("name")
+ if not base:
+ continue
- streams[name] = {
- "name": name,
- "playpath": playpath
- }
+ if base[0] == "$":
+ ref = re.match("\${(.+)}", base).group(1)
+ base = self.CDN[ref]
+
+ for streamel in item.getElementsByTagName("stream"):
+ name = streamel.getAttribute("label").lower().replace(" ", "_")
+ playpath = streamel.getAttribute("name")
+
+ streams[name] = {
+ "base": base,
+ "name": name,
+ "playpath": playpath
+ }
return streams
def stream_cmdline(self, stream, filename):
cmd = CommandLine("rtmpdump")
- cmd.arg("rtmp", ("{0}/{1}").format(self.RTMPURL, stream["playpath"]))
+ cmd.arg("rtmp", ("{0}/{1}").format(stream["base"], stream["playpath"]))
cmd.arg("live", True)
cmd.arg("flv", filename)