summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Plexservice.cpp14
-rw-r--r--hlsPlayer.cpp12
-rw-r--r--hlsPlayer.h3
3 files changed, 22 insertions, 7 deletions
diff --git a/Plexservice.cpp b/Plexservice.cpp
index f6d2db9..fe73391 100644
--- a/Plexservice.cpp
+++ b/Plexservice.cpp
@@ -164,7 +164,7 @@ Poco::Net::HTTPRequest* Plexservice::CreateRequest(std::string path)
pRequest->add("User-Agent", USERAGENT);
- pRequest->add("X-Plex-Client-Capabilities", "protocols=shoutcast,http-video;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac");
+ //pRequest->add("X-Plex-Client-Capabilities", "protocols=shoutcast,http-video;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac");
pRequest->add("X-Plex-Client-Identifier", Config::GetInstance().GetUUID());
pRequest->add("X-Plex-Device", "PC");
pRequest->add("X-Plex-Device-Name", Config::GetInstance().GetHostname());
@@ -188,7 +188,7 @@ MediaContainer* Plexservice::GetMediaContainer(std::string fullUrl)
pRequest->add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17");
- pRequest->add("X-Plex-Client-Capabilities", "protocols=shoutcast,http-video;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac");
+ //pRequest->add("X-Plex-Client-Capabilities", "protocols=shoutcast,http-video;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac");
pRequest->add("X-Plex-Client-Identifier", Config::GetInstance().GetUUID());
pRequest->add("X-Plex-Device", "PC");
pRequest->add("X-Plex-Device-Name", Config::GetInstance().GetHostname());
@@ -318,11 +318,11 @@ std::string Plexservice::GetUniversalTranscodeUrl(Video* video)
params << "&videoQuality=100";
params << "&session=" << encode(Config::GetInstance().GetUUID()); // TODO: generate Random SessionID
- params << "&X-Plex-Client-Identifier=" << encode(Config::GetInstance().GetUUID());
- params << "&X-Plex-Product=Plex%20Home%20Theater";
- params << "&X-Plex-Device=PC";
- params << "&X-Plex-Platform=Plex%20Home%20Theater";
- params << "&X-Plex-Model=Linux";
+ //params << "&X-Plex-Client-Identifier=" << encode(Config::GetInstance().GetUUID());
+ //params << "&X-Plex-Product=Plex%20Home%20Theater";
+ //params << "&X-Plex-Device=PC";
+ //params << "&X-Plex-Platform=Plex%20Home%20Theater";
+ //params << "&X-Plex-Model=Linux";
//params << "&X-Plex-Platform-Version=7";
//params << "&X-Plex-Version=1.2.12";
//params << "&X-Plex-Device-Name=" << "Plex%2FWeb%20(Chrome)";
diff --git a/hlsPlayer.cpp b/hlsPlayer.cpp
index 5fa7b0e..6c8d70c 100644
--- a/hlsPlayer.cpp
+++ b/hlsPlayer.cpp
@@ -66,6 +66,7 @@ void cHlsSegmentLoader::LoadIndexList(void)
Poco::URI indexUri(startUri+m_startParser.vPlaylistItems[0].file);
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, indexUri.getPath());
+ AddHeader(request);
// same server
m_pClientSession->sendRequest(request);
@@ -90,6 +91,7 @@ void cHlsSegmentLoader::LoadStartList(void)
ConnectToServer();
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, m_startUri.getPathAndQuery());
+ AddHeader(request);
m_pClientSession->sendRequest(request);
Poco::Net::HTTPResponse responseStart;
@@ -122,6 +124,7 @@ bool cHlsSegmentLoader::LoadSegment(std::string segmentUri)
{
std::cout << "Loading Segment: " << segmentUri << "... ";
Poco::Net::HTTPRequest segmentRequest(Poco::Net::HTTPRequest::HTTP_GET, segmentUri);
+ AddHeader(segmentRequest);
m_pClientSession->sendRequest(segmentRequest);
Poco::Net::HTTPResponse segmentResponse;
@@ -158,6 +161,7 @@ int cHlsSegmentLoader::GetSegmentSize(int segmentIndex)
return m_indexParser.vPlaylistItems[segmentIndex].size;
}
Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_HEAD, GetSegmentUri(segmentIndex));
+ AddHeader(req);
m_pClientSession->sendRequest(req);
Poco::Net::HTTPResponse reqResponse;
m_pClientSession->receiveResponse(reqResponse);
@@ -223,6 +227,14 @@ bool cHlsSegmentLoader::StopLoader(void)
return reqResponse.getStatus() == 200;
}
+void cHlsSegmentLoader::AddHeader(Poco::Net::HTTPRequest& req)
+{
+ req.add("X-Plex-Client-Identifier", Config::GetInstance().GetUUID());
+ req.add("X-Plex-Product", "Plex Home Theater");
+ req.add("X-Plex-Device", "PC");
+ req.add("X-Plex-Platform", "Plex Home Theater");
+ req.add("X-Plex-Model", "Linux");
+}
//--- cHlsPlayer
diff --git a/hlsPlayer.h b/hlsPlayer.h
index 3df9c46..8d8bdb8 100644
--- a/hlsPlayer.h
+++ b/hlsPlayer.h
@@ -11,9 +11,11 @@
#include <vdr/tools.h>
#include <Poco/Net/HTTPClientSession.h>
+#include <Poco/Net/HTTPRequest.h>
#include <Poco/URI.h>
#include "m3u8Parser.h"
+#include "Config.h"
class cHlsSegmentLoader : public cThread
{
@@ -46,6 +48,7 @@ private:
protected:
void Action(void);
bool DoLoad(void);
+ void AddHeader(Poco::Net::HTTPRequest& req);
bool StopLoader(void);
public: