Api

Filer.net Download API Dokumentation

Vorwort:

Generell wurde als Antwortformat JSON gewählt um ein einfaches parsing zu ermöglichen. Die Antworten der API haben immer folgendes Format:

{
   "code":     200,
   "status":   "ok",
   "data":     {}
}

Zur Authentifizierung wird HTTP Basic authentifizierung verwendet.

Zusätzlich wurde der Free- und Anonymous Download um JSON als Antwortformat erweitert. Dazu muss einfach ".json" an die aufzurufende Url angehängt werden.

Beispiel:

http://filer.net/get/.json

Ansonsten bleibt das Handling vollkommen gleich (inkl. Session-Auth per Cookie). Benötigte Daten wir Token (token) und mögliche Wartezeiten (wait) werden unter "data" zurückgegeben. Damit kann auf die Seite automatisiert ohne HTML-Parsing zugegriffen werden.

Statuscodes:

* 200 - ok
Wird immer zurückgegeben, wenn alles passt

* 201 - folder password needed
Wird beim Aufruf von "/folder/<folderhash>.json" zurückgegeben, wenn
der Folder mit PW geschützt und das PW nicht per ?password=<pass>
übergeben wurde.

* 202 - file captcha input needed
Wird beim Aufruf von "/get/<filehash>.json" zurückgegeben, wenn eine
ReCaptcha-Eingabe gebraucht wird. Recaptcha-Challange wird mit
zurückgegeben.

* 203 - file wait needed
Wird beim Aufruf von "/get/<filehash>.json" zurückgegeben, wenn eine
Wartezeit abgewartet werden muss.

* 400 - api disabled
Wird immer zurückgegeben, wenn die API aus irgendwelchen Gründen
ausgeschaltet ist.

* 401 - login required
Wird bei "/profile" und "/dl/<filehash>.json" zurückgegeben, wenn
keine Authentifizierung angegeben ist.

* 413 - Payload Too Large
Wird bei "/multi_status" zurückgegeben, wenn mehr als 400 hashes
übergeben werden.

* 500 - download temporary disabled
Wird zurückgegeben, wenn versucht wird, ein File herunterzuladen und
der Download temporär ausgeschaltet ist.

* 501 - global download slots filled
Wird beim Free-Download zurückgegeben, wenn alle Downloadslots belegt
sind.

* 502 - user download slots filled
Wird beim Free-Download zurückgegeben, wenn der User bereits eine
Datei herunterlädt.

* 503 - hour download limit reached
Wird beim Free-Download zurückgegeben, wenn der User bereits zuviel
heruntergeladen hat. Die Wartezeit zum nächsten DL wird mit zurückgegeben.

* 504 - bandwidth limit reached
Wird beim Premium-Download zurückgegeben, wenn der User keinen Traffic
mehr hat.

* 505 - file not found
Wird zurückgegeben, wenn "/file/<filehash>.json" aufgerufen wird und
der hash nicht gefunden wird.

* 506 - folder not found
Wird zurückgegeben, wenn "/folder/<folderhash>.json" aufgerufen wird
und der hash nicht gefunden wird.

* 599 - unkown file error
Wird zurückgegeben, wenn ein unbekannter Fehler beim Download auftritt
(Free+Premium).

Methoden:

Url:  http://api.filer.net/profile.json (http-auth required) 

Antwort:

 {
   "code":     200,
   "status":   "ok",
   "data":     {
       "email": "user@email.de",
       "state": "premium",           | möglichkeiten: premium, free
       "until": 1383581217,          | unix-timestamp, 0 bei free
       "traffic": 104857600          | verfügbarer traffic in byte, 0 bei free
       "traffic_str": "100.00 MB"    | verfügbarer traffic als string, Einheiten: 'B', 'KB', 'MB', 'GB', 'TB', 'PB'
       "maxtraffic": 134217728000,   | maximaler traffic in byte auf den angespart werden kann
       "maxtraffic_str": "125.00 GB" | maximaler traffic als string, Einheiten: 'B', 'KB', 'MB', 'GB', 'TB', 'PB'
    }
 }
 

Mögliche Fehler:

* 401 - login required

 {
   "code":     401,
   "status":   "login required",
   "data":     {}
 }
 

Url:  http://api.filer.net/status/{filehash}.json

Beispiel:  http://api.filer.net/status/a2yc5vlluhulz82b.json

Antwort:

 {
   "code":     200,
   "status":   "ok",
   "data":     {
       "name":  "filename.rar",     | Filename als string
       "size":  99614720,           | Filesize in byte
       "hash":  "a2yc5vlluhulz82b",  | Filehash als string
    }
 }

Mögliche Fehler:

* 505 - file not found
* 599 - unkown file error

 {
   "code":     505,
   "status":   "file not found",
   "data":     {}
 }

Url:  http://api.filer.net/multi_status/{filehash_1}|{filehash_2}|{filehash_3}.json 

Beispiel:  http://api.filer.net/multi_status/a2yc5vlluhulz82b|l3cry9w8idehinkk|X2yc5vlluhulz82b.json 

Antwort:

 {
   "code":     200,
   "status":   "ok",
   "data":     [{
       "name":  "filename1.rar",     | Filename als string
       "size":  99614720,           | Filesize in byte
       "hash":  "a2yc5vlluhulz82b",  | Filehash als string
    },
    {
       "name":  "filename2.rar",
       "size":  34561456,
       "hash":  "l3cry9w8idehinkk",
    },
    {
       "name":  "filename3.rar",
       "size":  634567,
       "hash":  "X2yc5vlluhulz82b",
    }]
 }

Mögliche Fehler:

* 413 - Payload Too Large
* 599 - unkown file error

Url:  http://api.filer.net/folder/{folderhash}.json[?password=abcdef]

Beispiel:  http://api.filer.net/folder/l3cry9w8idehinkk.json

Anmerkung: Falls der folder mit einem Passwort geschützt ist, wird dies durch "password": 1 und status "201" signalisiert und die files werden nicht angegeben. Wird anschließend die URL mit ?password= aufgerufen, werden die Files mit ausgegeben.

Antwort:

{
   "code":     200,
   "status":   "ok",
   "data":     {
       "name":  "Folder name bla",  | Foldername als string
       "size":  10000000,           | Foldersize in byte
       "count": 2,                  | Anzahl der files im folder als int
       "password": 0,               | Passwortgeschützt? 0 = nein, 1 = ja
       "files": [
         {
           "name": "filename.part01.rar",
           "size": "5000000"
           "link": "http:\/\/filer.net\/get\/aaaaaaaaaaaaaaaa"
         },
         {
           "name": "filename.part02.rar",
           "size": "5000000"
           "link": "http:\/\/filer.net\/get\/aaaaaaaaaaaaaaab"
         },
       ]
    }
 }
 

Mögliche Fehler:

* 401 - login required
* 506 - folder not found
* 599 - unkown file error

 {
   "code":     506,
   "status":   "folder not found",
   "data":     {}
 }
 

Url:  http://api.filer.net/dl/{filehash}.json (http-auth required) 

Beispiel:  http://api.filer.net/dl/a2yc5vlluhulz82b.json 

Anmerkung: Diese Methode ist nur für premium-User verfügbar. geantwortet wird entweder mit einem Fehler in JSON oder einem HTTP-Redirect zum Fileserver. Der Vorteil in der Anwendung liegt vorallem darin, das man sich das parsen und senden von Cookies sparen kann.

Antwort: HTTP-Redirect zum Fileserver

Mögliche Fehler:

* 505 - file not found
* 599 - unkown file error

 {
   "code":     505,
   "status":   "file not found",
   "data":     {}
 }