1. HIGHWAY ist ein Forum und Multihoster.
    Unsere Plattform steht nur überprüften Nutzern zur Verfügung.
    Zur Zeit sind die Registrierungen geöffnet. Die Prüfung einer Registrierung beträgt wenige Stunden.
    Die Prüfung ist notwendig, da sich auf unserer Seite aktuell gut hundert Forenspammer pro Tag registrieren wollen.

HIGHWAY API

Dieses Thema im Forum "Neuigkeiten" wurde erstellt von Yaknar, 11 Juni 2015.

Tags:
  1. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Hallo,

    wie viele sicherlich wissen nutzen die meisten Downloadmanager unsere API zum herunterladen der Dateien. Damit High-Way auf möglichst vielen Geräten und Programmen funktioniert, möchte ich euch hier unsere aktuelle API Dokumentation vorstellen.

    Postman Doku: https://documenter.getpostman.com/view/5631083/UVCBBk82


    User-API:

    URL: https://high-way.me/apiV2.php

    Parameter:

    • hoster: Gibt eine Liste der Hoster aus. (GET)
    • user: Gibt die Informationen zum User aus. (GET)
    • logincheck: Gibt zurück, ob der User eingeloggt ist oder nicht (GET)
    • login: Führt einen Login durch. user und pass werden dann benötigt. (GET)
      • user: Benutzername (Nur als POST)
      • pass: Passwort (Nur als POST)

    Die Paramater können kombiniert werden:
    z.B.: https://high-way.me/apiV2.php?hoster&user Gibt Informationen zum User und eine Liste der Hoster aus.

    Der Login wird für die Session im Cookie PHPSESSID gespeichert.

    Antworten:
    Alle Antworten der API sind im JSON Format.

    z.B.:

    Hoster:
    Code:
    {
      "loggedin": true,
      "premium": true,
      "hoster": [
        {
          "name": "1fichier.com",
          "active": "1",
          "chunks": "1",
          "downloads": "1",
          "resume": "1",
          "berechnung": "33",
          "rabatt": "33",
          "linkwildcards": "",
          "maxTrafficDaily": -1,
          "usedTrafficDaily": -1,
          "remainingTrafficDaily": -1
        },
        {
          "name": "turbobit.net",
          "active": "1",
          "chunks": "4",
          "downloads": "4",
          "resume": "1",
          "berechnung": "200",
          "rabatt": "200",
          "linkwildcards": "",
          "maxTrafficDaily": 60000000000,
          "usedTrafficDaily": 45456164 ,
          "remainingTrafficDaily": 55454354355
        },
        {
          "name": "uploaded.net",
          "active": "1",
          "chunks": "4",
          "downloads": "4",
          "resume": "1",
          "berechnung": "100",
          "rabatt": "100",
          "linkwildcards": "*:\/\/uploaded.net\/file\/*|*:\/\/uploaded.to\/file\/*|*:\/\/ul.to\/*",
          "maxTrafficDaily": 225000000000,
          "usedTrafficDaily": 0,
          "remainingTrafficDaily": 225000000000
        }
      ]
    }
    • name: Name des Hosters
    • active: Die 1 bzw. 0 steht für funktionstüchtig oder nicht.
    • unlimited: Wenn dort eine 1 ist wird nur 50% des Traffics abgezogen.
    • chunks: Die maximale Anzahl an Chunks
    • downloads: Die maximale Anzahl aktiver Downloads
    • resume: Ob das Resume möglich ist.
    • berechnung: Prozentwert zu dem der Traffic berechnet wird.
    • maxTrafficDaily: Maximaler täglicher Traffic
    • usedTrafficDaily: Genutzer täglicher Traffic.
    • remainingTrafficDaily: Verbleibender täglicher Traffic.

    User:
    Code:
    {
      "loggedin": true,
      "user": {
        "id": "2",
        "premium_traffic": 1254266142820,
        "premium_max": 1310000000000,
        "premium_bis": 2147483647,
        "free_traffic": 5000000000,
        "remain_free_traffic": 5000000000,
        "max_connection": 10,
        "max_chunks": 4,
        "resume": 1,
        "usenet": {
          "username": "Yaknar",
          "pass": "s11fkdnxrns129pr"
        },
        "premium": 1
      },
      "premium": true,
    }
    • premium_traffic: Wenn der Nutzer Premium ist, dann stehen dort die verbleibenden Bytes.
    • premium_max: Das maximale Traffic, in Bytes.
    • premium_bis: Unixtime, bis wann der Account maximal gültig ist.
    • free_traffic: Das maximale free Traffic pro Tag
    • remain_free_traffic: Die Anzahl an Traffic die einem free User noch zur Verfügung steht. (Entweder Limitiert durch die Coins oder der 5GB Grenze)
    • max_connection: Maximale Anzahl gleichzeitiger Verbindungen.
    • max_chunks: Maximale Anzahl an Chunks.
    • usenet: Array mit Usenet Zugangsdaten.
    • resume: Fortsetzen möglich oder nicht.
    • premium: 1= Premium, 0= free User.
    premium_traffic,premium_max,premium_bis sind NULL, wenn der User nicht Premium ist.

    Fehler:
    • [] = Keine Parameter gesetzt.
    • {"error":"NotLoggedIn"} = User nicht Eingeloggt, dann mit dem Parameter login, user und pass einloggen.
    • {"error":"UserOrPassInvalid"} = Benutzername/E-Mail oder Passwort falsch.
    • {"error":"RecordingNotAccepted","msg":"Recorder nicht aktiviert"} = TV Recorder nicht aktiviert.
    • {"error":"ServerFailure","msg":"XXX"} = Fehler bei HW. Detail in msg z.B.: Datenbank nicht erreichbar


    Download-API:

    URL: https://high-way.me/load.php

    Parameter:

    • link=https%3A%2F%2F1fichier.com%2F%3Fjjktgmiksb (Der herunterzuladende Link + Urlencode, als GET oder POST)
    • json (Ohne diesen Parameter ist es XML)
    • Entweder die Cookies von Login aus der api.php oder mit "login" einloggen:
    • login: Führt einen Login durch. user und pass werden dann benötigt. (GET oder POST)
      • user: Benutzername (Nur als POST)
      • pass: Passwort (Nur als POST)
    • pass: Das Passwort für den Zugriff auf die Datei beim Hoster.
      Falls die Parameter nicht gesendet wurde, aber ein Passwort benötigt wird, gibt es den Fehlercode 13.

    z.B. https://high-way.me/load.php?json&link=https%3A%2F%2Frapidgator.net%2Ffile%2Fb9c2f42df27ff047054b1e5bb3904ed1

    Antwort (JSON):

    Code:
    {
       "code":"0",
       "id":"rp4t",
       "size":"73964572",
       "sizeCa":"73966551",
       "name":"ubuntu-20-04-essentials-desktop-server.rar",
       "link":"https:\/\/rapidgator.net\/file\/b9c2f42df27ff047054b1e5bb3904ed1",
       "download":"https:\/\/srv15.dwld.link\/dl2\/rp4t\/",
       "hash":"MD5:e59fa3fcac6abd954c42562dbd83d421",
       "cache":"https:\/\/srv15.dwld.link\/cache\/rp4t\/",
       "cacheStatus":"s",
       "loggerID":"0"
    }

    code: Fehlercode, 0 = kein Fehler.
    size: Dateigröße, muss nicht immer gesetzt sein.
    name: Dateiname
    link: der angeforderte Link
    download: der Link unter dem die Datei über High-Way erreichbar ist.
    retry_in_seconds: Sekunden nach denen es erneut probiert werden soll.

    Nur für Downloads über den Cache gibt es folgende zusätzliche Parameter:
    id: ID des Downloads, welche auch in der URL verwendet wird.
    sizeCa: Dateigröße über Screenreader eingelesen. Ist fast immer gesetzt, aber ungenau.
    hash: Hash der Datei, beginnt mit verwendetem Algorithmus.
    cache: Info Seite, über die der Cache Status und verbleibende Zeit abgefragt werden kann
    cacheStatus: Siehe Cache Status


    Fehlercodes:
    z.b.: {"code":"10","error":"Der Hoster wird nicht unterstuetzt"}

    Hier die genauen Codes (Aber im Error-Tag steht auch immer die Meldung):
    Fehlercode 1:
    Benutzername oder Passwort falsch.

    Fehlercode 2:

    Bitte logge dich erneut ein.

    Fehlercode 3:
    Es ist nicht genügend (Premium-)Traffic vorhanden.

    Fehlercode 4:
    Du führst zu viele gleichzeitige Downloads aus.

    Error Code 5:
    Dein Premium Paket ist abgelaufen.

    Fehlercode 6:
    Es wurde kein oder kein gültiger Link angegeben.

    Fehlercode 8:
    Temporärer Fehler... Versuche es in ein paar Minuten erneut!

    Fehlercode 9:
    Die angegebene Datei wurde nicht gefunden.

    Fehlercode 10:
    Der Hoster wird nicht unterstützt / Für Free User nicht unterstützt.

    Fehlercode 11:
    Der Hoster führt gerade Wartungsarbeiten durch oder ist nicht erreichbar.

    Fehlercode 12:
    Wir führen gerade Wartungarbeiten durch.

    Fehlercode 13:

    Passwort benötigt(siehe Parameter Pass), falsches Passwort, wenn ein Passwort gesendet wurde oder Download ist aufgrund von Zusatz Subscriptions nicht möglich-

    Fehlercode 14:
    Dein hosterspezifisches Traffic-Limit wurde erreicht.
    Das Limit von limitierten Hoster (wie k2s oder Nitroflare) wurde aufgebraucht.

    Fehlercode 15:

    Dein hosterspezifisches Request Traffic-Limit wurde erreicht.
    Das Limit von limitierten Hoster (wie k2s oder Nitroflare) wurde durch Anfragen überschritten, es können dann nur noch bereits angefragte Link heruntergeladen werden. Dies ist notwendig, um nicht unnötig Traffic unserer Hoster Accounts zu verbrauchen.

    Fehlercode 16:
    Fehler... Kontaktiere den Support!

    Allgemeiner Fehler, kontaktiere den Support für weitere Informationen bzw. Behebung des Fehlers.

    Download:
    Der Download findet dann über den vorher erstellten Link statt:
    z.B.: http://srv4.high-way.me/dl/n4vr/100MB.rar


    Cache Status:

    Code:
    {
       "status":"success",
       "cacheStatus":"d",
       "retry_in_seconds":5,
       "percentage_Complete":99,
       "progress_in_bytes":"73224926/73964572",
       "for_jd":"(73224926/73964572) 99% Please Wait 5 Sec (d)",
       "link":"https://srv15.dwld.link/dl2/rp4t/"
    }
    cacheStatus: Status des Downloads

    • d: Download
    • w: Warten (Auf neuen Verusuch)
    • q: In der Warteschlange
    • qn: Download wurde der Warteschlange hinzugefügt.
    • s: Download ist fertig.
    • i: Direkter Download ohne Cache
    retry_in_seconds: Wann soll es erneut probiert werden
    percentage_Complete: Prozentualer Fortschritt.
    progress_in_bytes: Fortschritt in Bytes.
    for_jd: Meldung die der jDownloader anzeigen soll.
    link: Download Link


    TV-Recorder API:

    Endpoint: https://high-way.me/apitv/

    Login:
    Siehe User-API

    TV Stations:
    Parameter:
    GET:
    tvstation

    GET https://high-way.me/apitv/tvstation
    [{
    "id":1,
    "LogoUrl":"https:\/\/high-way.me\/tvr\/images\/tvstations\/40x21\/1.png",
    "name":"Das Erste"},
    ....

    Suche:
    Parameter:
    GET:
    search (required, can be empty) Search String z.B. Tartort
    zeit Zeit in Blöcken: 1 = 06-12 Uhr, 2 = 12-18 Uhr, 3 = 18-24 Uhr, 4 = 00-06 Uhr
    senderid Sender ID from 'TV Stations', separate multiple by ,
    addfree Nur Werbefreie Aufnahmen
    page Ausgewählte Seite. Start bei 1

    z.B.: Alle werbefreien Aufnahmen von "Das Erste" von 06-12 Uhr, Seite 1
    GET https://high-way.me/apitv/search?search=&senderid=1&zeit=1&search=&page=1&addfree
    {"result":[{
    "telecastid":"13787884",
    "quelle_id":"1",
    "StartDate":"2017-06-13 19:00:00",
    "EndDate":"2017-06-13 19:45:00",
    "LogoUrl":"https:\/\/high-way.me\/tvr\/MediaServer\/cache\/x134y83\/2\/4\/242788_2BF2AF6A5B14307F0EC85978283B6913.jpg",
    "title":"In aller Freundschaft",
    "subtitle":"Mach's gut, Nick",
    "StationName":"Das Erste"},
    ....

    Download/Stream:
    Parameter:
    GET:
    id = telecastid der Suche
    quelle_id = quelle_id der Suche
    Optional:
    format = Format der Suche. 4 = HQ, 5 = HD. Ohne wird das beste Format verwendet.
    adfree = 1=Werbefrei. Ohne wird die Werbefreie Version verwendet, wenn verfügbar.

    z.B.
    https://high-way.me/apitv/dl?id=13787884&quelle_id=1

    {"code":"0",
    "size":"528977628",
    "name":"2017-06-13+19%3A00%3A00_Das+Erste_In+aller+Freundschaft+Mach%27s+gut%2C+Nick+H.264+High+Quality+%28Werbefrei%29.mp4",
    "stream":"https%3A%2F%2Fhigh-way.me%2Fstreamtv%2Ffau%2F",
    "download":"http%3A%2F%2Fsrv12.high-way.me%2Fdltv%2Ffau%2F2017-06-13+19%3A00%3A00_Das+Erste_In+aller+Freundschaft+Mach%27s+gut%2C+Nick+H.264+High+Quality+%28Werbefrei%29.mp4"}

    Download/Stream von (urldecode(download)): http://srv12.high-way.me/dltv/fau/2017-06-13 19:00:00_Das Erste_In aller Freundschaft Mach's gut, Nick H.264 High Quality (Werbefrei).mp4

    Falls ihr noch Ergänzungen zur API wünscht kann ich diese in den meisten fällen gerne einfügen.
     
    Zuletzt bearbeitet: 6 August 2024
    Valxiron, nerdcore, flusifox und 8 anderen gefällt das.
  2. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Changelog 24.06.2015:

    Die Option "pass" und der Fehlercode 13 wurden hinzugefügt um Dateien, die vom Hoster durch ein Passwort vor dem Download geschützt sind, herunterladen zu können.
     
    pspzockerscene gefällt das.
  3. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Changelog 12.03.2016:

    Der bis jetzt nicht Dokumentierte Fehlercode 14 wurde hinzugefügt.
     
    spritty1300 gefällt das.
  4. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Ich kümmere mich spätestens am Montag drum.
    Meine Meinungen dazu, Fehlermeldungen von MOCHs im JD anzuzeigen:
    Es macht keinen sinn, da es dem User nichts bringt.
    Wenn ein Hoster gerade nicht geht, egal aus welchem Grund, bringt eine genauere Fehlermeldung dem User nichts - er weiß dann halt, dass z.B. die Accounts leer sind, aber es hilft ihm nicht dabei, das Problem zu beheben.
    Es trägt der Usability nicht wirklich mehr bei als ein einfaches "Geht gerade nicht" als Meldung.
    Nichtsdestotrotz baue ich das ein, sobald ich die Zeit finde ;)

    Grüße, psp
    EDIT

    Upps das sollte in nen anderen Thread.
    Egal passt trotzdem zum Thema ^^
     
    3way und spritty1300 gefällt das.
  5. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Habs mal eingebaut ohne spezifische Fehlermeldung mit einer Wartezeit von 15 Minuten.

    Grüße, psp
     
    Deleted_3 gefällt das.
  6. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Automatisch wie auch im jd Support forum.
    (Außer ich schreibe per Handy wie jetzt)
     
  7. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Die Zugriffe wurden auf 100 pro Minute reduziert an die api.php reduziert (Der jDownloader nutzt ca. 1 pro Minute).
    Die load.php zur Link Generierung ist nicht betroffen.

    Diese Änderung ist nötig, da versucht wurde Account Passwörter durch Bruteforce zu erraten.
    Es wurden allerdings keine hier im Forum bekannten Benutzer getestet und es gab keine erfolgreichen Logins, aber die Limitierung soll dafür sorgen, damit solche Angriffe nicht mehr möglich sind.

    Nach zu vielen Anfragen wird: 503 Service Temporarily Unavailable zurückgegeben.

    Edit: Auf 100 pro Minute korrigiert.
     
    Zuletzt bearbeitet: 19 Oktober 2016
  8. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Ich halte zwar nicht viel von Login Captchas und die Limitierung macht sicher sinn, ABER solltet ihr weiter solche Attacken feststellen führt doch (auch per API) Login Captchas z.B. nach dem 5ten Versuch ein und ab diesem Zeitpunkt werden die Zugangsdaten erst bei gelöstem Captcha probiert --> Die Chance, dass da jemand Passwörter herausfindet ist nochmal viel geringer und die seriösen API Nutzer wird es nicht treffen.
    ... bzw natürlich können Login Captchas auch von JD unterstützt werden um Ausnahmefehler bei sowas zu vermeiden.

    Grüße, psp
     
    Mydgard und spritty1300 gefällt das.
  9. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Ja, das wäre auch eine Möglichkeit.
    Ich wollte in dem Moment nur schnell handeln und die masse der Logins verhindern.

    Jetzt kann ich natürlich soetwas einbauen und werde dich dann informieren, damit du es im jDownloader einbauen kannst.
     
    spritty1300 gefällt das.
  10. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Jo.
    Nimm einfach reCaptchaV2 da können die Bots einpacken.
    Ich frag mich eh was die alle von den MOCHs wollen.
    Solche Attacken über MOCH APIs wurden mir über die Zeit von sehr vielen Admins gemeldet ...

    Grüße, psp
     
    spritty1300 gefällt das.
  11. maanteel

    maanteel Premium Trusted User Beta-Tester

    Registriert seit:
    22 März 2015
    Beiträge:
    1.031
    Zustimmungen:
    1.678
    Free:
    554.048 MB

    Hallo Dumpfbacke
    meintest du die API hier ?
     
  12. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Danke nochmal für die:
    https://high-way.me/api.php?logincheck

    Das einzige was mir sonst noch aufgefallen ist ist, dass der Linkcheck vieler TV-URLs sehr lange dauern kann.
    Diese URLs redirecten ja auf die finalen URLs:
    https://high-way.me/onlinetv.php?id=13403619&quelle_id=1&format=5&adfree=0&stream=0
    -->
    http://srv10.high-way.me/dltv/3f/
    Wenn ich jetzt also vielen davon per HEAD Request prüfe, kann das sehr lange dauern.

    Ist jetzt kein riesiger Kritikpunkt - optimieren könnte man das auf zweierlei Arten:
    1. Ihr macht was, damit die Antwort schneller kommt.

    2. Ihr macht einen API Aufruf dafür, der Dateiname- und größe (und ggf. noch die MD5/SHA1 Prüfsumme) zurückgibrt - so belastet ein Linkcheck auch nicht mehr eure DL Server und würde massiv schneller gehen.

    Das wars meinerseits ;)
    EDIT

    Also 30 Links zu prüfen dauerte eben über 40 Sekunden - das ist alles andere als flott^^

    Grüße, psp
     
  13. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Das sollte drin sein. Ich meine es wird sogar schon unterstützt, allerdings muss man einen Parameter ändern habe ich gerade nicht im Kopf, gucke ich in 5 Stunden.

    Aber ich glaube es sollte auch drin sein die Head requests zu beschleunigen
     
    pspzockerscene gefällt das.
  14. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    pspzockerscene Gefunden, es funktioniert wenn du das stream weglässt und json hinzufügst.

    https://high-way.me/onlinetv.php?id=13403619&quelle_id=1&format=5&adfree=0&json=1
    bzw. https://high-way.me/onlinetv.php?id=13403619&quelle_id=1&format=5&adfree=0&json (json mit URL encode)
    bzw. https://high-way.me/onlinetv.php?id=13403619&quelle_id=1&format=5&adfree=0 (xml artiger Kram)
     
  15. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Danke funktioniert hervorragend und schnell - eingebaut!

    Grüße, psp
     
  16. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    TV Recorder API hinzugefügt.
     
  17. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Aiden und pspzockerscene gefällt das.
  18. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Sers,
    anbei noch ein paar kleine Anmerkungen zu API und Login Prozess:
    1. Aktiviert ein User die 2-Faktor-Authentifizierung, funktioniert die API ja nicht mehr.
    Ich weiß wahrscheinlich isses nicht soo wichtig, aber 2FA Login ist nunmal sicherer daher hier mal eine auflisung von Möglichkeiten, wie man das in JD einbinden könnte:
    - 2FA in API einbauen, dann baue ich das in JD ein (so erst letztens gemacht für ddownload.com)
    - API Login zu oAuth2 Login ändern dann kann der Login Prozess jederzei geändert werden ohne, dass die API sich ändert
    Ich weiß, dass viele (M)OCH Probleme mit Bruteforce Attacken und damit Account-Diebstählen haben daher wäre es natürlich in beidseitigem Interesse, 2FA Login per JD zu ermöglichen.
    2. Ich habe die Fehlermeldung bei ungültigem Login geändert und einen 2FA Hinweis mit eingebaut:
    [​IMG]
    3. Mir ist aufgefallen, dass man aktuell ggf. sogar anhand der API Antwort erkennen könnte, ob ein Account gültig ist oder nicht auch wenn der User 2FA aktiviert hat:
    Antwort falscher User/PW:
    {"error":"UserOrPassInvalid","loggedin":false}
    Antwort richtiger User/PW, aber Account ist 2FA geschützt (= Login per API nicht möglich):
    {"error":"NotLoggedIn","loggedin":false}
    Ich weiß meckern auf hohem Niveau, aber ich würde immer "UserOrPassInvalid" zurückgeben ansonsten könnte ein potentieller Angreifer auch 2FA Zugänge als gültig speichern ... und den Login so lange wieder versuchen bis der User JD benutzt und deswegen 2FA deaktiviert ;)

    Sind alles nur Kleinigkeiten also mach' dir keinen Stress falls du Anpassungen vornehmen möchtest Yaknar

    Grüße, psp
    EDIT

    Falls du zB die API irgendwann neuschreiben möchtest kannst du meine Punkte auch einfach auf irgendeine TODO Liste packen und irgendwann erledigen :D
     
    Zuletzt bearbeitet: 12 September 2020
    BILD, Mydgard und PSC gefällt das.
  19. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Steht sogar schon auf meiner Todo Liste. Das Problem ist, das ein XenForo Login durchgeführt wird und die SDK, die ich verwende keine 2FA unterstützt.
     
    Mydgard und pspzockerscene gefällt das.
  20. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    User API auf V2 aktualisiert.
    Änderungen:
    • Login nur mit Zugangsdaten aus dem Download Center möglich.
    • Login ist auch bei aktivierter 2FA möglich, da diese für die Usenet Zugangsdaten nicht benötigt werden.
    • Hosterliste enthält den maximal möglichen und noch verfügbaren täglichen Traffic.
    • Download API um 2 Fehlercode erweitert
    • Cache Status der API dokumentiert.
     
    MrHappyFace und BILD gefällt das.
  21. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Ja nice!
    Also das ist bereits die neue produktiv API?
    Dann werde ich ja einiges zu tun haben :D
     
    Yaknar gefällt das.
  22. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Für die User API ja.
    Außer du hast noch etwas, was unbedingt dort mit hinein muss.

    Die Änderungen der load.php sind schon etwas länger bereits so und sollte abwärtskompatibel bleiben.
    Werde da aber nicht mehr viel anpassen außer das die Felder SizeCa und Hash auch demnächst nach Möglichkeit für die Hoster ohne Cache hinzufügen soll.
     
    MrHappyFace gefällt das.
  23. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Ich schaue sie mir nächste Woche genauer an und melde mich falls ich Fehler finde oder Anregungen habe :)
     
    Yaknar gefällt das.
  24. pspzockerscene

    pspzockerscene Offizieller JD-Entwickler Premium Trusted User Beta-Tester

    Registriert seit:
    31 März 2015
    Beiträge:
    672
    Zustimmungen:
    1.438
    Free:
    142.122 MB
    Ich habe heute direkt etwas Zeit über gehabt und mit der Umsetzung begonnen.
    Ticket:
    https://svn.jdownloader.org/issues/89787

    Feedback werde ich gerne hier öffentlich geben sofern es nicht um sicherheitskritische Dinge geht.

    Hier schonmal paar Kleinigkeiten:
    1. Du schreibst, dass der neue Endpoint folgender ist: https://high-way.me/apiV2.php
    In der Postman Dokumentation wird aber dieser verwendet:
    https://high-way.me/api/login

    2. Gefällt mir, dass die API Fehlermeldungen basierend auf dem Accept-Language Header in verschiedenen Sprachen rausgeben kann.
    Ich hab mal das "user.language" Property als Header-Wert gesetzt (passt das?).
    Jedoch ist mir aufgefallen, dass die Fehlerausgabe nicht konsistent ist, da teilweise eben noch Strings statt Fehlercodes verwendet werden.
    Beispiel:
    Code:
    {"error":"UserOrPassInvalid","loggedin":false}
    Ich erkenne also anhand von "UserOrPassInvalid" was los ist, muss mir dann aber meine Fehlermeldung selbst basteln.
    Für den Login ist es für mich aber eh irrelevant, da ich dort eine eigene Fehlermeldung nehmen werde die eben Hinweise zum Download-Center und den Zugangsdaten enthält usw. nur allgemein wären Fehlercodes und Meldungen gut oder eben sowas:
    Code:
    {"error":"UserOrPassInvalid", "msg": "Invalid username or password.","loggedin":false}
    oder:
    Code:
    {"code":1, "msg": "Invalid username or password."}
    (Bin da offen für alles; hab selbst keine Ahnung, was am meisten Sinn ergibt.)

    Noch eine Idee:
    Da 2FA Login und API bisher nicht funktionierten werden viele User 2FA deaktiviert haben.
    Ich empfehle, diese User nach JD Umstellung der API daran zu erinnern, 2FA zu aktivieren, da es wichtig ist.
    ... ich selbst habe 2FA nämlich auch deaktiviert :D
    Der Hinweis, dass man es deaktivieren soll wird im neuen Plugin natürlich entfernt.

    Ich wünsche ein schönes Wochenende!
     
    MrHappyFace gefällt das.
  25. Yaknar

    Yaknar Administrativer Support Premium Trusted User

    Registriert seit:
    5 März 2015
    Beiträge:
    4.635
    Zustimmungen:
    9.242
    Free:
    936.039 MB
    Ja, dort ist noch die alte Version beschrieben.
    Passe ich noch an.

    Aktuell nur die Load API.

    Habe ich jetzt auch der User API hinzugefügt.

    error ist die Fehlermeldung und
    code der Fehler Code, wie an den anderen stellen auch.
    Also:
    Code:
    {"code":1, "error": "Username oder Passwort ungültig"}
    Ja, habe es auch nicht aktiv.
    Werde ich machen.

    Danke wünsche ich dir auch :)