[go: up one dir, main page]

Massengeschmack API

Die API stellt ein kleines Gimmick dar um Projekte wie das (Massengeschmack XMBC Plugin) zu vereinfachen.
Es wird gebeten die API Anfragen auf ein Minimum zu halten. Nach Entwicklung kann sich gerne im Forum Feedback eingeholt werden.

Anfragen

Alle Anfragen werden per HTTP GET an https://massengeschmack.tv/api/v1 gestellt. Bei einer erfolgreichen Anfrage wird mit einem JSON Objekt geantwortet. Der HTTP Status Code ist bei Erfolg 200. Als Benutzername dient die verwendete E-Mail. @ kann mit --at-- substituiert werden. Die API wird eine _mgtvSession als Cookie zurückgeben. Dieser Cookie kann anstelle der Zugangsdaten für darauffolgende Anfragen benutzt werden. Allerdings muss die erste Anfrage mit _mgtvSession innerhalb von 3s geschehen. Danach ist der Cookie für 1800s gültig.

Bei einem Fehler befindet sich das Feld api_error in der Antwort. Beispiel: {"api_error":"Missing from parameter."}

Die API hat gegenwärtig ein Anfragelimit von 10 Anfragen in 30 Sekunden. {"api_error":"API Rate Limited.", "retryAfter":30}

listSubscriptions

Liefert eine Übersicht aller aktiven abonnierten Projekte. Diese Anfrage besteht nur noch aus Umstellungsgründen.

curl https://user--at--example.com:password@massengeschmack.tv/api/v1/?action=listSubscriptions
Beispielantwort
{
    "active_subscriptions": [{
        "title": "Fernsehkritik-TV",
        "pid": 1
    }, {
        "title": "Pantoffel-TV",
        "pid": 2
    }, {
        "title": "Pressesch(l)au",
        "pid": 3
    },
    ...
    , {
        "title": "Hoaxilla-TV",
        "pid": 8
    }, {
        "title": "Sakura",
        "pid": 9
    }]
}

listSubscriptionsID

Liefert ein Int Array von den abonnierten Projekten mit ihrer Projekt ID. Diese Anfrage besteht nur noch aus Umstellungsgründen.

curl https://user--at--example.com:password@massengeschmack.tv/api/v1/?action=listSubscriptionsID
Beispielantwort
[1,2,3,4,5,6,7,8,9]

getMainFeed

Neu Liefert die letzten Folgen der favorisierten Projekte. Der Filter kann in den Accounteinstellungen unter Magazine ausblenden eingestellt werden.

curl https://user--at--example.com:password@massengeschmack.tv/api/v1/?action=getMainFeed
Beispielantwort
[
    {
        "identifier": "pasch46",
        "pid": 4,
        "contentType": 1,
        "title": "Folge 46: \"Stories!\"",
        "pdesc": "Pasch-TV",
        "img": "\/\/cache.massengeschmack.tv\/img\/mag\/pasch46.jpg",
        "desc": "Ein Mitspieler erz\u00e4hlt eine kurze Geschichte - aber welche W\u00f6rter wird er verwenden? In \"Stories!\" geht es darum, Begriffe vorauszuahnen - was gar nicht so einfach ist, denn manchmal geht eine Story in eine komplett andere Richtung.",
        "duration": "01:10:06",
        "enum": 46,
        "thumbnail": "\/\/cache.massengeschmack.tv\/img\/mag\/pasch46.jpg",
        "teaserFile": "http:\/\/dl5.massengeschmack.tv\/deliver\/teaser\/limited\/teaser_paschtv46",
        "date": 1444912828,
        "subscribed": false
    },
    ...
]

getFeed

Neu Liefert die (maximal 10) letzten Folgen der angegebenen Projekte.

&from=[] Feed entählt nur angegebene Projekt IDs. (INT Array).
Optional &contentType=[] entählt nur angegebene unter IDs. (INT Array). Standardwert: [1]
Optional &page=i gibt die gewünschte Seite an. Wert i von 1-pages
Optional &limit=n limitiert den Feed auf n Einträge. Standardwert: 10; Maximalwert: 100

curl https://user--at--example.com:password@massengeschmack.tv/api/v1/?action=getFeed&from=[1,2,3]&limit=2&page=4
Antwort

eps Array Beinhaltet die gefundenen Folgen.
     eps[0]["identifier"] Clip ID
     eps[0]["pid"] Projekt ID
     eps[0]["contentType"] Content Typ ID (Folge, Interview...)
     eps[0]["title"] Titel
     eps[0]["pdesc"] Projektname
     eps[0]["img"] URL zum Vorschaubild
     eps[0]["desc"] Beschreibung
     eps[0]["duration"] Länge
     eps[0]["date"] Erscheinungsdatum UNIX Timestamp in Sekunden
     eps[0]["canAccess"] User kann Clip anschauen. (Hat aktives Abo oder ehemals Einzelkauf)

pages Nummer der letzten Seite
next Nummer der nächsten Seite | false
prev Nummer der vorherigen Seite | false

Beispielantwort
{
    "eps": [
        {
            "identifier": "ps38",
            "pid": 3,
            "title": "Folge 38",
            "pdesc": "Pressesch(l)au",
            "img": "https:\/\/cache.massengeschmack.tv\/img\/screens\/ps38.jpg",
            "desc": "Die christliche Zeitschrift \"lebenslust\" bietet Lars Golenia ebenso ...",
            "duration": "00:45:29",
            "date": "20. April 2015",
            "canAccess": true
        },
        {
            "identifier": "fktv155",
            "pid": 1,
            "title": "Folge 155",
            "pdesc": "Fernsehkritik-TV",
            "img": "https:\/\/cache.massengeschmack.tv\/img\/screens\/fktv155.jpg",
            "desc": "Eine betrunkene Produzentin bringt das angebliche Reality-Format ...",
            "duration": "00:58:23",
            "date": "19. April 2015",
            "canAccess": true
        }
    ],
    "pages": 119,
    "next": 5,
    "prev": 3
}

getClip

Neu Liefert alle Informationen zu einem bestimmten Clip. Inklusive temporärer download URL, falls Zugang vorhanden.

&identifier=id

curl https://user--at--example.com:password@massengeschmack.tv/api/v1/?action=getClip&identifier=sakura-4
Antwort

identifier Clip ID (String) pid Projekt ID (Int) pdesc Projekt Titel (String) title Clip Titel (String) img Vorschaubild URL (String) duration Länge des Clips in HH:MM:SS (String) date Erscheinungsdatum als UNIX-Timestamp (Int) canAccess User kann Clip downloaden (Boolean) files Array von Downloaddateien (URL ist aufgelöst) size Dateigröße in Bytes. size_readable Dateigröße menschliche Representation. Feld nicht garantiert vorhanden. t Dateityp (film, music) dimensions Bildgröße (1280x720) url Download URL (temporär mit Zugang)

Beispielantwort
{
    "identifier": "sakura-4",
    "pid": 9,
    "title": "Folge 4",
    "pdesc": "Sakura",
    "img": "\/\/cache.massengeschmack.tv\/img\/mag\/sakura-4.jpg",
    "desc": "In unserem Anime- und Manga-Magazin wird diesmal dem Ph\u00e4nomen \"Boys Love\" auf den Grund gegangen. Warum haben insbesondere weibliche Fans ihre Freude daran? Au\u00dferdem geht es um \"Elfen Lied\" und \"Neon Genesis Evangelion\". Und im Talk geht es um die Faszination von Cosplays.",
    "duration": "01:11:46",
    "date": 1437478870,
    "subscribed": true,
    "teaser": "http:\/\/dl5.massengeschmack.tv\/deliver\/teaser\/limited\/teaser_sakura4.mp4",
    "files": [
        {
            "size": 2666360644,
            "t": "film",
            "size_readable": "2,48 GiB",
            "dimensions": "1920x1080",
            "desc": "HD 1080p",
            "url": "http:\/\/massengeschmack.tv\/dl\/sakura-4\/XXXX-sakura\/sakura4full_HD.mp4"
        },
        {
            "size": 1066456085,
            "t": "film",
            "size_readable": "1017 MiB",
            "dimensions": "1280x720",
            "desc": "HD 720p",
            "url": "http:\/\/massengeschmack.tv\/dl\/sakura-4\/XXXX-sakura\/sakura4HD.mp4"
        },
        {
            "size": 618324565,
            "t": "film",
            "size_readable": "590 MiB",
            "dimensions": "720x406",
            "desc": "SD 406p",
            "url": "http:\/\/massengeschmack.tv\/dl\/sakura-4\/XXXX-sakura\/sakura4.mp4"
        }
    ]
}