• 1
  • 53
  • 54
  • 55(current)
  • 56
  • 57
[SUPPORT] Free Cable - US station aggregator
(2014-03-25, 23:07)Hannes The Hun Wrote: comedy central completely restructured their show homepages around cc.com so I guess that also the whole web server structure including streaming links got relaunched. no wonder free cable currently isn't able to find the shows. no need for VPN, basically you can still stream all of their shows worldwide within your browser of choice. the plugin script just needs to be updated in order to be able to properly scrape the shows from the new webserver structure.

Yeah I noticed the restructure. I know we can watch through our browser but Free Cable is so much better because it keeps track of which episodes I've already watched, and the quality seems better too (for some reason through the website I tend to get a lower bitrate and even occasional buffering issues). So, looking forward to when we can use it again Smile
Reply
(2014-03-23, 23:51)slices Wrote: history isn't working at the moment.

In an attempt to get my History Channel fix, I installed the History channel on my Plex server, and used PleXBMC to stream History Channel via XBMC. It works great.
Anyway, here's the code from the Plex History Channel plugin, in hopes it'll help you get it working in Free Cable.
Reply
I updated to the beta recently, as on the official release, I could hardly watch anything. Most shows that I watch work fine on the beta (with the exception of Colbert and the Daily Show), but I can't get the Favorite Shows section to work at all. When I select it, it looks like it parses through all my active channels, gets about half-way through, and then fails. Is anyone else experiencing something similar? Is there anything I can do?

Thanks!
Reply
Fixes for the favorites issue comming soon, I think the problems around the code for the abc sitex.
Reply
Great to hear, thanks!
Reply
Hi. New to this plugin. Installed it and navigation works fine, but opening video does not work:

Quote:Playback failed

One or more items failed to play.
Check the log file for details.

Stream in question: 2 Broke Girls from CBS (... not for me but for my GF ;-)). It works perfectly fine through the browser. Using a VPN from outside the US (HMA or OpenVPN).

Code:
start of FREE CABLE plugin
22:27:44 T:2732  NOTICE: _connection :: getURL :: url = http://link.theplatform.com/s/dJ5BDC/ztjX90hrI225?format=SMIL&Tracking=true&mbr=true
22:27:46 T:2704  NOTICE: DVDPlayer: Opening: rtmp://cp48590.edgefcs.net/ondemand/?auth=daEcubybJcodhbjaFd6aIanbPbXbScndqdz-btm0zc-h0-EaANhWng&aifp=v001&slist=video/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2014/03/22/203484227870/ playpath=mp4:video/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2014/03/22/203484227870/CBS_2GIRLS_320_CONTENT_CIAN_1928.mp4 swfurl=http://canstatic.cbs.com/chrome/canplayer.swf swfvfy=true
22:27:46 T:2704 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
22:27:46 T:904  NOTICE: Thread CDVDPlayer start, auto delete: false
22:27:46 T:904  NOTICE: Creating InputStream
22:28:07 T:904   ERROR: RTMP_Connect0, failed to connect socket. 10060 (Unknown error)
22:28:07 T:904   ERROR: CDVDPlayer::OpenInputStream - error opening [rtmp://cp48590.edgefcs.net/ondemand/?auth=daEcubybJcodhbjaFd6aIanbPbXbScndqdz-btm0zc-h0-EaANhWng&aifp=v001&slist=video/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2014/03/22/203484227870/ playpath=mp4:video/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2014/03/22/203484227870/CBS_2GIRLS_320_CONTENT_CIAN_1928.mp4 swfurl=http://canstatic.cbs.com/chrome/canplayer.swf swfvfy=true]
22:28:07 T:904  NOTICE: CDVDPlayer::OnExit()
22:28:07 T:904  NOTICE: CDVDPlayer::OnExit() deleting input stream
22:28:07 T:2704   ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.free.cable-beta/?url="ztjX90hrI225"&mode="cbs"&sitemode="play_video"]
22:28:07 T:2704  NOTICE: CDVDPlayer::CloseFile()
22:28:07 T:2704 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
22:28:07 T:2704  NOTICE: DVDPlayer: waiting for threads to exit
22:28:07 T:2704  NOTICE: DVDPlayer: finished waiting

Any suggestions what's happening?

PS. Using the BETA version
Reply
Didn't want to read the whole thread to see if there is already a fix for this, but if there's not, here's a fix for the broken Daily Show and Colbert Report. Patch the file /addons/plugin.video.free.cable/resources/lib/comedy.py

Code:
--- comedy.py.bak    2014-03-26 23:23:16.000000000 +0100
+++ comedy.py    2014-03-26 23:23:16.000000000 +0100
@@ -7,6 +7,7 @@
import sys
import os
import re
+import json

from BeautifulSoup import BeautifulSoup
from BeautifulSoup import BeautifulStoneSoup
@@ -115,43 +116,43 @@
def episodes(url=common.args.url):
     data = common.getURL(url)
     tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES)
-    menu = tree.find('ul', attrs={'class': 'more_episode_list'})
-    airDatePattern = re.compile(r'([^-]*-[^-]*-[^-]*-[^-]*).*$')
-    for item in menu.findAll('li'):
-        link = item.find('a')
-        url = link['href']
+    scripts = tree.find('script')
+    for script in scripts:
+        if ('triforceManifestFeed') in script:
+            triforceManifestFeed = script.split(' = ')[1]
+            triforceManifestFeed = triforceManifestFeed.strip()[:-1] # remove last ; from string
+            triforceManifestFeed = json.loads(triforceManifestFeed)
+            break
+    url = triforceManifestFeed['manifest']['zones']['t6_lc_promo1']['feed']
+    data = urllib2.urlopen(urllib2.Request(url, None, {'accept': 'application/json'})).read()
+    menu = json.loads(data)
+    for item in menu['result']['episodes']:
+        url = item['url']
         path = url.rsplit('/', 1)[-1]
-        airDate = airDatePattern.match(path).group(1)
-        airDate = common.formatDate(airDate, '%a-%B-%d-%Y')
-        thumb = item.find('img')['src'].split('?',  1)[0]
-        dateSpan = item.find('span', attrs={'class': re.compile('air_date')})
-        guestSpan = item.find('span', attrs={'class': 'guest'})
-        dateStr = (''.join(dateSpan.findAll(text=True))).encode('utf8')
-        guest = guestSpan.string.rstrip('-').strip().encode('utf8')
-        if guest:
-            name = '%s - %s' % (dateStr.title(), guest)
-        else:
-            name = dateStr
+        airDate = item['airDate']
+        airDate = common.formatDate(airDate, '%a-%B-%d-%Y', epoch=float(airDate))
+        thumb = item['images'][0]['url']
+        guest = item['title'].split('-')[0].strip().encode('utf8')
+        name = item['title']
+        season = item['season']['seasonNumber']
+        episode = item['season']['episodeNumber']
         if (common.settings['enablestrictnames'] == 'true'):
             print "strict names"
             if guest:
-                if not dateSpan.find('span'):
-                    displayname='Special Edition - '+guest
-                else:
-                    displayname=guest
+                displayname=guest
             else:
                 displayname='No Guest'
         else:
             displayname=name
-        description = item.find('span', attrs={'class': 'details'}).text.encode('utf8')
+        description = item['shortDescription']

         u = sys.argv[0]
         u += '?url="'+urllib.quote_plus(url)+'"'
         u += '&mode="comedy"'
         u += '&sitemode="playurl"'
         infoLabels={ "Title":name,
-                     "Season":0,
-                     "Episode":0,
+                     "Season":season,
+                     "Episode":episode,
                      "Plot":description,
                      "premiered":airDate,
                      "TVShowTitle":common.args.name

Download patch
Download already patched comedy.py
Reply
(2014-03-27, 00:33)dv505 Wrote: Didn't want to read the whole thread to see if there is already a fix for this, but if there's not, here's a fix for the broken Daily Show and Colbert Report. Patch the file /addons/plugin.video.free.cable/resources/lib/comedy.py

Thanks, dv505! I was about to write my own fix when I popped in here to see if someone had already done it. Glad to see someone beat me to it!
Reply
Getting script error with patched comedy.py.

Code:
start of FREE CABLE plugin
09:45:36 T:4208   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.AttributeError'>
                                            Error Contents: 'module' object has no attribute 'getURL'
                                            Traceback (most recent call last):
                                              File "L:\Users\Uta\AppData\Roaming\XBMC\addons\plugin.video.free.cable-beta\default.py", line 63, in <module>
                                                modes()
                                              File "L:\Users\Uta\AppData\Roaming\XBMC\addons\plugin.video.free.cable-beta\default.py", line 60, in modes
                                                exec 'sitemodule.%s()' % _common.args.sitemode
                                              File "<string>", line 1, in <module>
                                              File "L:\Users\Uta\AppData\Roaming\XBMC\addons\plugin.video.free.cable-beta\resources\lib\comedy.py", line 21, in rootlist
                                                data = common.getURL(BASE_URL)
                                            AttributeError: 'module' object has no attribute 'getURL'
                                            -->End of Python script error report<--
09:45:37 T:604   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.free.cable-beta/?fanart=%22L%3a%5cUsers%5cUta%5cAppData%5cRoaming%5cXBMC%5caddons%5cplugin.video.free.cable-beta%5cfanart.jpg%22&mode=%22comedy%22&name=%22Comedy%20Central%22&sitemode=%22rootlist%22&thumb=%22L%3a%5cUsers%5cUta%5cAppData%5cRoaming%5cXBMC%5caddons%5cplugin.video.free.cable-beta%5cresources%5cimages%5ccomedy.png%22&url=%22%22
09:45:37 T:604   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.free.cable-beta/?fanart=%22L%3a%5cUsers%5cUta%5cAppData%5cRoaming%5cXBMC%5caddons%5cplugin.video.free.cable-beta%5cfanart.jpg%22&mode=%22comedy%22&name=%22Comedy%20Central%22&sitemode=%22rootlist%22&thumb=%22L%3a%5cUsers%5cUta%5cAppData%5cRoaming%5cXBMC%5caddons%5cplugin.video.free.cable-beta%5cresources%5cimages%5ccomedy.png%22&url=%22%22) failed
09:45:37 T:2200  NOTICE: Thread Background Loader start, auto delete: false
09:45:48 T:4992  NOTICE: Previous line repeats 1 times.
09:45:48 T:4992  NOTICE: Thread XBPyThread start, auto delete: false
09:45:49 T:4992  NOTICE: -->Python Interpreter Initialized<--
Reply
You're running the beta and the patch is for the old version.
Reply
No testing done at all, but here are the same changes applied to the beta version. Cannot test is right now.

Code:
--- /private/var/folders/w_/lg3262ys4vbgxg5w8v9qb7v00000gn/T/TheArchiveBrowser/0/plugin.video.free.cable-beta/resources/lib/comedy.py
+++ /Users/daniel/Desktop/comedy.py
@@ -7,6 +7,7 @@
import re
import sys
import urllib
+import json
import xbmc
import xbmcgui
import xbmcplugin
@@ -139,24 +140,25 @@

def add_fullepisodes_colbertnation(episode_tree):
    try:
-        episode_menu = episode_tree.find('div', class_ = 'more_episode_listening').find_all('div', class_ = 'full_episode')
-        tooltip_menu = episode_tree.find_all('div', class_ = 'carousel_view_tooltip')
-        for episode_item, tooltip_item in izip(episode_menu, tooltip_menu):
-            try:
-                episode_name = episode_item.find('span', class_ = 'air_date').text + ' - ' + episode_item.find('span', class_ = 'guest').text
-            except:
-                episode_name = episode_item.find('span', class_ = 'title').text
-            meta = tooltip_item.find('p', class_ = 'meta').string
-            episode_airdate = re.compile('([0-9]+/[0-9]+/[0-9]+)').findall(meta)[0]
-            episode_airdate = _common.format_date(episode_airdate , '%m/%d/%Y', '%d.%m.%Y')
-            episode_plot = tooltip_item.find('p', class_ = 'description').string
-            episode_thumb = episode_item.img['src'].split('?')[0]
-            url = episode_item.a['href']
-            try:
-                season_number, episode_number = re.compile('([0-9]{2})([0-9]{3})').findall(meta)[0]
-            except:
-                episode_number = -1
-                season_number = -1
+        scripts = episode_tree.find('script')
+        for script in scripts:
+            if ('triforceManifestFeed') in script:
+                riforceManifestFeed = script.split(' = ')[1]
+                triforceManifestFeed = triforceManifestFeed.strip()[:-1] # remove last ; from string
+                triforceManifestFeed = json.loads(triforceManifestFeed)
+                break
+        url = triforceManifestFeed['manifest']['zones']['t6_lc_promo1']['feed']
+        data = urllib.urlopen(url).read()
+        menu = json.loads(data)
+        for item in menu['result']['episodes']:
+            episode_name = item['title']
+            episode_airdate = item['airDate']
+            episode_airdate = _common.format_date(episode_airdate , '%m/%d/%Y', '%d.%m.%Y', float(episode_airdate))
+            episode_plot = item['shortDescription']
+            episode_thumb = item['images'][0]['url']
+            url = item['url']
+            season_number = item['season']['seasonNumber']
+            episode_number = item['season']['episodeNumber']
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
Reply
(2014-03-27, 14:23)slices Wrote: You're running the beta and the patch is for the old version.

Dang it. I missed that.
Reply
(2014-03-27, 00:33)dv505 Wrote: Didn't want to read the whole thread to see if there is already a fix for this, but if there's not, here's a fix for the broken Daily Show and Colbert Report. Patch the file /addons/plugin.video.free.cable/resources/lib/comedy.py

Code:
--- comedy.py.bak    2014-03-26 23:23:16.000000000 +0100
+++ comedy.py    2014-03-26 23:23:16.000000000 +0100
@@ -7,6 +7,7 @@
import sys
import os
import re
+import json

from BeautifulSoup import BeautifulSoup
from BeautifulSoup import BeautifulStoneSoup
@@ -115,43 +116,43 @@
def episodes(url=common.args.url):
     data = common.getURL(url)
     tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES)
-    menu = tree.find('ul', attrs={'class': 'more_episode_list'})
-    airDatePattern = re.compile(r'([^-]*-[^-]*-[^-]*-[^-]*).*$')
-    for item in menu.findAll('li'):
-        link = item.find('a')
-        url = link['href']
+    scripts = tree.find('script')
+    for script in scripts:
+        if ('triforceManifestFeed') in script:
+            triforceManifestFeed = script.split(' = ')[1]
+            triforceManifestFeed = triforceManifestFeed.strip()[:-1] # remove last ; from string
+            triforceManifestFeed = json.loads(triforceManifestFeed)
+            break
+    url = triforceManifestFeed['manifest']['zones']['t6_lc_promo1']['feed']
+    data = urllib2.urlopen(urllib2.Request(url, None, {'accept': 'application/json'})).read()
+    menu = json.loads(data)
+    for item in menu['result']['episodes']:
+        url = item['url']
         path = url.rsplit('/', 1)[-1]
-        airDate = airDatePattern.match(path).group(1)
-        airDate = common.formatDate(airDate, '%a-%B-%d-%Y')
-        thumb = item.find('img')['src'].split('?',  1)[0]
-        dateSpan = item.find('span', attrs={'class': re.compile('air_date')})
-        guestSpan = item.find('span', attrs={'class': 'guest'})
-        dateStr = (''.join(dateSpan.findAll(text=True))).encode('utf8')
-        guest = guestSpan.string.rstrip('-').strip().encode('utf8')
-        if guest:
-            name = '%s - %s' % (dateStr.title(), guest)
-        else:
-            name = dateStr
+        airDate = item['airDate']
+        airDate = common.formatDate(airDate, '%a-%B-%d-%Y', epoch=float(airDate))
+        thumb = item['images'][0]['url']
+        guest = item['title'].split('-')[0].strip().encode('utf8')
+        name = item['title']
+        season = item['season']['seasonNumber']
+        episode = item['season']['episodeNumber']
         if (common.settings['enablestrictnames'] == 'true'):
             print "strict names"
             if guest:
-                if not dateSpan.find('span'):
-                    displayname='Special Edition - '+guest
-                else:
-                    displayname=guest
+                displayname=guest
             else:
                 displayname='No Guest'
         else:
             displayname=name
-        description = item.find('span', attrs={'class': 'details'}).text.encode('utf8')
+        description = item['shortDescription']

         u = sys.argv[0]
         u += '?url="'+urllib.quote_plus(url)+'"'
         u += '&mode="comedy"'
         u += '&sitemode="playurl"'
         infoLabels={ "Title":name,
-                     "Season":0,
-                     "Episode":0,
+                     "Season":season,
+                     "Episode":episode,
                      "Plot":description,
                      "premiered":airDate,
                      "TVShowTitle":common.args.name

Download patch
Download already patched comedy.py

Works! Thanks!
Reply
(2014-03-27, 00:33)dv505 Wrote: Didn't want to read the whole thread to see if there is already a fix for this, but if there's not, here's a fix for the broken Daily Show and Colbert Report. Patch the file /addons/plugin.video.free.cable/resources/lib/comedy.py
Small update to these files. Two issues fixed:
* Strange episode numbers (i.e. 19080, should be season 19, episode 80)
* Special editions were missing for the Daily Show

Download patch for 0.7.6
Download already patched comedy.py for 0.7.6

Here are the files for the beta, same changes applied to the file there. These are not tested, only for syntax, so no idea if they work.
Download patch for beta
Download already patched comedy.py for beta

@devs: is there a better way to submit patches? E.g. github pull requests? Or it this the most convenient way for you?

// Edit: small bug, the aired date is in the local time zone, so east of the US, it will show as one day ahead. Will probably fix that later.
Reply
@dv505

Probably GitHub, but not anymore for "Free Cable". Take a look at my/our GitHub source. I will provide more information on this weekend.
// GitHub // Repository

// USTV VoD (Video-on-Demand) / World News Live / MRT Play
Reply
  • 1
  • 53
  • 54
  • 55(current)
  • 56
  • 57

Logout Mark Read Team Forum Stats Members Help
[SUPPORT] Free Cable - US station aggregator7