Jump to content

aziell

Member
  • Posts

    1
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

aziell's Achievements

Newbie

Newbie (1/13)

3

Reputation

  1. Es gibt AFAIK kein besseres Programm für Streams als Kodi. Selbst bei lokalen Bibliotheken ist Kodi bzw. der Ableger Plex relativ alternativlos.
  2. if 'openload' in data['hoster'].lower(): videoLink = urlresolver.resolve('https://openload.co/embed/' + data['url']) else: videoLink = urlresolver.resolve(data['fullurl'])
  3. Zwecks Hoster beschäftige dich mal mit Selenium. Macht die Sache um einiges leichter.
  4. Liegt am im integrierten Python Interpreter. Entweder Kodi 17 nehmen oder Kodi selbst compilieren.
  5. Vivo funktioniert nur ab Python Version >=2.7.9. Bis auf Openload wird auf den ersten Blick, alles richtig an den urlresolver übergeben.
  6. Welches Plugin ist installiert? Chmee? puhboob?
  7. "ERROR. Video deleted or urlResolver cant handle Host" kommt nur beim Orginal Urlresolver. Bei meinem passiert bei Fehlern nichts. Also irgendwas falsch gemacht...
  8. from array import * from htmlentitydefs import name2codepoint as n2cp import htmlentitydefs # new since v0.95 import AZresolverPub as urlresolver #import urlresolver # new since 1.3.0 from player import bsPlayer Ersetzen.
  9. Bei chmee's Addon main.py, Zeile 12. Kodi hat einen eigenen Python Interpreter, der immernoch bei 2.7.x ist.
  10. Bei puhboob ist es in der player.py Bei kodi 17 (latest nightly) gehen alle 3. Bei kodi 16 gehen alle wenn die Python Version >= 2.7.9. Sonst geht vivo wegen TLS Problemen nicht. Nach den Änderungen nicht vergessen, alle Kodi/userdata/Database/Addons*.db 's zu löchen.
  11. Kleine Hilfe https://aziell.de/wp-content/uploads/2016/09/1.0.0_script.module.AZresolverPub.zip installieren (Powerwatch, Vivo,Youwatch). Im BS Addon: main.py: import urlresolver durch import AZresolverPub as urlresolver ersetzen. addon.xml: <import addon="script.module.urlresolver"/> durch <import addon="script.module.AZresolverPub"/> ersetzen. ggf. Addons*.db löchen und Kodi neu starten.
  12. Qualitätsmäßig kein Verlust. Solange es Openload und VIVO Links gibt auch kein Problem.
  13. Früher musste man den NetworkStream noch vorher schließen
  14. Wenn du vielleicht doch mal auf die kommen solltes, abseits was von .Net zu probieren gebe ich dir mal ein Beispiel wie das mit der API in QT aussehen könnte. #ifndef BS_API_H #define BS_API_H #include <QObject> #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNetworkReply> #include <QEventLoop> #include <QMessageAuthenticationCode> #include <QUrlQuery> #include <QJsonDocument> #include <QJsonObject> #include <QJsonArray> #include <QThread> #include <QDebug> #include <QDateTime> class bs_api : public QObject { Q_OBJECT public: explicit bs_api(QObject *parent = 0); virtual ~bs_api(); QString getData(QString url, QUrlQuery send); QString base64_encode(QString string); QJsonDocument get_series(); QJsonDocument get_series_genre(); QJsonDocument get_episode(QString id,QString season,QString user_session); QJsonDocument get_episode_info(QString id,QString season,QString episode,QString user_session); QJsonDocument get_link(QString linkid,QString user_session); QJsonDocument set_unwatch(QString episodeid,QString user_session); QJsonDocument get_favorites(QString user_session); QJsonDocument set_favorites(QString ids,QString user_session); QJsonDocument get_user_session(QString user,QString pass); public slots: void load_finished(QNetworkReply* reply); private: QNetworkAccessManager *manager; QNetworkReply *reply; QString json_data; }; #endif // BS_API_H --------------------------------------------------- #include "bs_api.h" bs_api::bs_api(QObject *parent) : QObject(parent) { manager = new QNetworkAccessManager; } bs_api::~bs_api() { manager->deleteLater(); } QString bs_api::base64_encode(QString string){ QByteArray ba; ba.append(string); return ba.toBase64(); } QString bs_api::getData(QString url, QUrlQuery send) { QString host = "https://bs.to/api"; qint64 utime(QDateTime::currentMSecsSinceEpoch()); utime = utime / 1000; QString public_key = "***"; QByteArray secret_key = "***"; QString msg = QString::number(utime) + "/" + url; QByteArray message = msg.toUtf8(); QMessageAuthenticationCode code(QCryptographicHash::Sha256); code.setKey(secret_key); code.addData(message); QString hmac = code.result().toHex(); QString full = "{\"public_key\": \"" + public_key + "\", \"hmac\": \"" + hmac + "\", \"timestamp\": \"" + QString::number(utime) + "\"}"; QString token1 = base64_encode(full); QByteArray array = token1.toLocal8Bit(); char* token = array.data(); QUrl qurl(host + "/" + url); QEventLoop loop; QNetworkRequest request; request.setUrl(qurl); request.setRawHeader( "User-Agent" , "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3" ); request.setRawHeader( "BS-Token" , token ); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); reply = manager->post(request,send.toString(QUrl::FullyEncoded).toUtf8()); connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(load_finished(QNetworkReply*))); loop.exec(); QThread::msleep(500); return json_data; } void bs_api::load_finished(QNetworkReply *reply) { if (reply->error() == QNetworkReply::NoError) { json_data = reply->readAll(); qDebug() << "### Data read"; } else { json_data = "Error"; qDebug() << "### Error"; } } QJsonDocument bs_api::get_series(){ QUrlQuery postData; QString data = getData("series",postData); data = "{\"root\":" + data + "}"; QJsonDocument jdoc = QJsonDocument::fromJson(data.toUtf8()); return jdoc; } QJsonDocument bs_api::get_series_genre(){ QUrlQuery postData; QString data = getData("series:genre",postData); QJsonDocument jdoc = QJsonDocument::fromJson(data.toUtf8()); return jdoc; } QJsonDocument bs_api::get_episode(QString id,QString season,QString user_session){...} QJsonDocument bs_api::get_episode_info(QString id,QString season,QString episode,QString user_session){...} QJsonDocument bs_api::get_link(QString linkid,QString user_session){...} QJsonDocument bs_api::set_unwatch(QString episodeid,QString user_session){...} QJsonDocument bs_api::get_favorites(QString user_session){...} QJsonDocument bs_api::set_favorites(QString ids,QString user_session){...} QJsonDocument bs_api::get_user_session(QString user,QString pass){ QUrlQuery postData; postData.addQueryItem("login[user]",user); postData.addQueryItem("login[pass]",pass); QString url = "login"; QString data = getData(url,postData); QJsonDocument jdoc = QJsonDocument::fromJson(data.toUtf8()); return jdoc; } Komplizierter als in .Net ist es auf jeden Fall nicht. Mit Java Swing wäre es wahrscheinlich genau so einfach. Vorteil ist natürlich Cross-Plattform inkl. Android.
×
×
  • Create New...