Jump to content


Photo

Support for Schedule Direct EPG Data?


  • Please log in to reply
2 replies to this topic

#1 blacklistedcard

  • Member
  • 8 posts

0
Neutral

Posted 28 January 2014 - 20:55

I was wondering if it was possible to get the Schedules Direct EPG data supported.   It has most sat/cable/atsc providers EPG information for us people in North America.

 

http://www.schedulesdirect.org/

 

Here is a script that could be used to get the support going.

 

 

# This module retrieves SchedulesDirect XML data using a hand-coded SOAP request.
#
# The code is released into the Public Domain.  If you break it, you own both halves.
#
# Original Code by Keith Medcalf, kmedcalf@dessus.com
# posted on 2008-09-13 http://forums.schedulesdirect.org/viewtopic.php?f=8&t=595
#
import codecs
import encodings
import gzip
import string
import sys
import time
import urllib2
import urlparse
def FetchXML(userName,
             passWord,
             URL='http://webservices.schedulesdirect.tmsdatadirect.com/schedulesdirect/tvlistings/xtvdService'
             Realm='TMSWebServiceRealm',
             predays=0,
             postdays=14,
             fileName='ddata.xml',
             fileCoding='latin-1',
             gzipped = False):
    cur = time.time()
    startTime = time.strftime( '%Y-%m-%dT00:00:00Z', time.gmtime( cur +  ( predays * 86400.0 ) ) )
    endTime   = time.strftime( '%Y-%m-%dT00:00:00Z', time.gmtime( cur + ( postdays * 86400.0 ) ) )
    strSoap = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\n' \
              ' <SOAP-ENV:Body>\n' \
              '  <m:download xmlns:m="urn:TMSWebServices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">\n' \
              '   <startTime xsi:type="xsd:dateTime">' + startTime + '</startTime>\n' \
              '   <endTime xsi:type="xsd:dateTime">' + endTime + '</endTime>\n' \
              '  </m:download>\n' \
              ' </SOAP-ENV:Body>\n' \
              '</SOAP-ENV:Envelope>'
    print '#', time.strftime('%Y/%m/%d %H:%M:%S'), "Retrieving DataDirect TV Schedules"
    print '#', time.strftime('%Y/%m/%d %H:%M:%S'), "Requesting", startTime, "to", endTime
    authinfo = urllib2.HTTPDigestAuthHandler()
    authinfo.add_password(Realm, urlparse.urlparse(URL)[1], userName, passWord)
    request = urllib2.Request(URL, strSoap)
    if gzipped:
        request.add_header('Accept-encoding', 'gzip')
        if fileName[-3:].lower() == '.gz':
            fileName = fileName[:-3]
        fileName += '.gz'
    opener = urllib2.build_opener(authinfo)
    urllib2.install_opener(opener)
    print '#', time.strftime('%Y/%m/%d %H:%M:%S'), 'Saving XML to File: ' + fileName + ', Encoding: ' + fileCoding
    fileObj = None
    if fileCoding == 'native':
        urldata = opener.open(request)
        outfile = open(fileName,'wb',262144)
        repenc = False
    elif not gzipped:
        urldata = codecs.getreader('utf-8')(opener.open(request), errors='replace')
        outfile = codecs.open(fileName,'wb', fileCoding, 'replace', 262144)
        repenc = True
    else:
        raise ValueError('Codepage Translation of GZIP data not supported')
    print '#', time.strftime('%Y/%m/%d %H:%M:%S'), 'Receiving XML Data', ' '*30,
    fmt = ('\b'*30) + '%6d KB, %3d KB/s, %3d KB/s'
    data = 'X'
    bytes = 0
    currb = 0
    first = time.time()
    last = time.time() - 1
    while data:
        data = urldata.read(8192)
        b = len(data)
        bytes += b
        currb += b
        if repenc:
            data = string.replace(data, "encoding='utf-8'", "encoding='"+fileCoding+"'")
            repenc = False
        if data:
            outfile.write(data)
        curr = time.time()
        diff = curr - last
        if diff >= 0.999:
            print fmt % ((bytes//1024), currb//1024//(curr-last), bytes//1024//(curr-first)),
            last = curr
            currb = 0
    urldata.close()
    outfile.close()
    if fileObj:
        fileObj.close()
    print fmt % ((bytes//1024), 0, bytes//1024//(curr-first))
    print '#', time.strftime('%Y/%m/%d %H:%M:%S'), "Data Retrieval Complete"
if __name__ == '__main__':
    userName = "<username>"
    password = "<password>"
    FetchXML(userName, password)


Re: Support for Schedule Direct EPG Data? #2 blacklistedcard

  • Member
  • 8 posts

0
Neutral

Posted 28 January 2014 - 21:29

Attached is the example download file that contains the Channel names and EPG information.

Attached Files



Re: Support for Schedule Direct EPG Data? #3 spacedvb

  • Member
  • 1 posts

0
Neutral

Posted 13 May 2015 - 08:21

Please help, getting this error??

 

fetch.jpg




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users