Schedules Direct service offerings

A place for App developers to hang out / post
Post Reply
rkulagow

Posts: 246
Joined: Sun Jul 19, 2015 1:04 am
Location: Schedules Direct

HTPC Specs: Show details

Schedules Direct service offerings

#1

Post by rkulagow » Tue Sep 15, 2015 12:13 am

I'm a developer for Schedules Direct (http://www.schedulesdirect.org); we are licensed by Gracenote (former guide data provider for WMC in North America before the Rovi cutover) to provide guide data to individuals, but not to companies.

Our one-year subscription fee is $25.

We have two service offerings: XML and JSON.

The XML guide data is what is available in the United States and Canada and if you've used XMLTV / tv_grab_na_dd / WMC before Rovi, then that's the data you've been using.

Our JSON offering expands the footprint, and adds a number of features. First, the countries:

Region:North America
United States
Canada

Region:Europe
Austria
Denmark
Finland
France
Germany
Great Britain
Italy
Norway
Spain
Sweden
Switzerland

Region:Latin America
Argentina
Belize
Brazil
Chile
Columbia
Costa Rica
Ecuador
Guatemala
Guyana
Honduras
Mexico
Panama
Peru
Uruguay
Venezuela

Region:Caribbean
Anguila
Antigua/Barbuda
Aruba
Bahamas
Barbados
Bermuda
Bonaire, Saba, St. Eustatius
British Virgin Islands
Cayman Islands
Curaçao
Dominica
Dominican Republic
Grenada
Jamaica
Puerto Rico
Saint Martin
Saint Vincent / Grenadines
St. Kitts and Nevis
St. Lucia
Trinidad and Tobago
Turks and Caicos

Region:ZZZ
DVB Satellite - Astra 19.2E

The API for the JSON service is described at

https://github.com/SchedulesDirect/JSON ... I-20141201

Features:

The JSON service has between 14 and 30 days of data for most stations.
The program data has embedded season/episode information, and offers other rich metadata including images, headshots, DVD coverart, etc.
The service uses a delta algorithm; the client/grabber can easily determine if something has changed, so if you've downloaded 30 days of data, and only the schedule for station "7.1" has changed on your next run, and it's only changed 13 days from today, then your client knows that it only needs to download that one day for that one station. The same goes for programs; if the same program is repeated 10 times in the next 30 days, your grabber only has to download it once. If a program later gets updated, then the MD5 will be different for the program, so your grabber only needs to download it once.
Lineup information is the same; your client will know if a lineup channel mapping has changed and can prompt the user to automatically use the new lineup, or offer a diff.

Here's what a typical program looks like:

Code: Select all

{
    "programID": "EP000000060002",
    "titles": [
        {
            "title120": "'Allo 'Allo!"
        }
    ],
    "descriptions": {
        "description100": [
            {
                "descriptionLanguage": "en",
                "description": "The airmen hide in the cafe after a failed escape attempt."
            }
        ],
        "description1000": [
            {
                "descriptionLanguage": "en",
                "description": "Much to Flick's dismay, Hitler wants the painting of the Fallen Madonna for his personal collection; Edith searches for a new husband."
            }
        ]
    },
    "originalAirDate": "1985-10-28",
    "genres": [
        "Sitcom"
    ],
    "episodeTitle150": "The Wooing of Widow Artois",
    "metadata": [
        {
            "Gracenote": {
                "season": 2,
                "episode": 2
            }
        }
    ],
    "contentRating": [
        {
            "body": "USA Parental Rating",
            "code": "TVPG"
        }
    ],
    "cast": [
        {
            "billingOrder": "01",
            "role": "Actor",
            "nameId": "392649",
            "personId": "383774",
            "name": "Gorden Kaye"
        },
        {
            "billingOrder": "02",
            "role": "Actor",
            "nameId": "250387",
            "personId": "246840",
            "name": "Carmen Silvera"
        },
        {
            "billingOrder": "03",
            "role": "Actor",
            "nameId": "385830",
            "personId": "376955",
            "name": "Rose Hill"
        },
        {
            "billingOrder": "04",
            "role": "Actor",
            "nameId": "263340",
            "personId": "259773",
            "name": "Vicki Michelle"
        },
        {
            "billingOrder": "05",
            "role": "Actor",
            "nameId": "361987",
            "personId": "353113",
            "name": "Kirsten Cooke"
        },
        {
            "billingOrder": "06",
            "role": "Actor",
            "nameId": "77787",
            "personId": "77787",
            "name": "Richard Marner"
        },
        {
            "billingOrder": "07",
            "role": "Actor",
            "nameId": "234193",
            "personId": "230921",
            "name": "Guy Siner"
        },
        {
            "billingOrder": "08",
            "role": "Actor",
            "nameId": "383809",
            "personId": "374934",
            "name": "Kim Hartman"
        },
        {
            "billingOrder": "09",
            "role": "Actor",
            "nameId": "378026",
            "personId": "369151",
            "name": "Richard Gibson"
        },
        {
            "billingOrder": "10",
            "role": "Actor",
            "nameId": "361431",
            "personId": "352557",
            "name": "John D. Collins"
        },
        {
            "billingOrder": "11",
            "role": "Actor",
            "nameId": "627734",
            "personId": "605275",
            "name": "Nicholas Frankau"
        },
        {
            "billingOrder": "12",
            "role": "Actor",
            "nameId": "382269",
            "personId": "373394",
            "name": "Jack Haig"
        }
    ],
    "crew": [
        {
            "billingOrder": "01",
            "role": "Director",
            "nameId": "363281",
            "personId": "354407",
            "name": "David Croft"
        },
        {
            "billingOrder": "02",
            "role": "Writer",
            "nameId": "363281",
            "personId": "354407",
            "name": "David Croft"
        },
        {
            "billingOrder": "03",
            "role": "Writer",
            "nameId": "105145",
            "personId": "105145",
            "name": "Jeremy Lloyd"
        }
    ],
    "showType": "Series",
    "hasImageArtwork": true,
    "md5": "O3VBFKQrlOhuPoa6dOKcKw"
}

rkulagow

Posts: 246
Joined: Sun Jul 19, 2015 1:04 am
Location: Schedules Direct

HTPC Specs: Show details

#2

Post by rkulagow » Tue Sep 15, 2015 12:13 am

[Broken into two messages because of "too many URLs" error]

Various image artwork is available; the next two URLs are taken from the documentation for the API and don't relate to the program example above. Image artwork is accessible directly through the API and is tied to the program; it doesn't require an external 3rd-party image source or any sort of manual correlation to determine the correct artwork for a program. The API documentation offers some examples of the image artwork that's available.

If you're a developer interested in creating a grabber for the JSON service, then please send me a PM with your country / postal code. I will let you know what the lineups look like for your area, and can provide sample data. If you'd like to see what the data looks like for a lineup, or a station, or a particular program to decide if it's "worth it", then please let me know via PM what you'd like to see at my email address below.

There is a reference grabber written in command-line PHP that will provide a starting point for your own effort, and the API documentation uses the Chrome Postman app to let you experiment with the API. There are at least 3 Windows PVRs that have implemented the API: NextPVR, Emby and Homeseer, so there are other developers that are using the JSON service in their software, and could potentially be used as a resource if you get stuck.

I can be reached at rkulagow@gmail.com or in the Schedules Direct JSON Developer forums (http://forums.schedulesdirect.org/viewforum.php?f=15), and can assist you with providing server-side logs of your interaction with the service once you get setup.

rkulagow

Posts: 246
Joined: Sun Jul 19, 2015 1:04 am
Location: Schedules Direct

HTPC Specs: Show details

#3

Post by rkulagow » Tue Sep 15, 2015 12:17 am


Post Reply