LampPrinter
LampPrinter
> @Suffice Hmmm. Tried according to your instructions, but not working. Thanks for replying and let me know if you figure it out! Paste this inside your bookmarklet javascript:(function()%7B%2F***%20Download%20original%20files%20from%20the%20Plex%20web%20interface**%20This%20project%20is%20licensed%20under%20the%20terms%20of%20the%20MIT%20license%2C%20see%20https%3A%2F%2Fpiplongrun.github.io%2Fplxdwnld%2FLICENSE.txt**%20%40author%20%20%20%20%20%20Pip%20Longrun%20%3Cpip.longrun%40protonmail.com%3E*%20%40version%20%20%20%20%200.3*%20%40see%20%20%20%20%20%20%20%20%20https%3A%2F%2Fpiplongrun.github.io%2Fplxdwnld%2F**%2F%22use%20strict%22%3Bif%20(typeof%20plxDwnld%20%3D%3D%3D%20%22undefined%22)%20%7Bwindow.plxDwnld%20%3D%20(function()%20%7Bconst%20self%20%3D%20%7B%7D%3Bconst%20clientIdRegex%20%3D%20new%20RegExp(%22server%5C%2F(%5Ba-f0-9%5D%7B40%7D)%5C%2F%22)%3Bconst%20metadataIdRegex%20%3D%20new%20RegExp(%22key%3D%252Flibrary%252Fmetadata%252F(%5C%5Cd%2B)%22)%3Bconst%20apiResourceUrl%20%3D%20%22https%3A%2F%2Fplex.tv%2Fapi%2Fresources%3FincludeHttps%3D1%26X-Plex-Token%3D%7Btoken%7D%22%3Bconst%20apiLibraryUrl%20%3D%20%22%7Bbaseuri%7D%2Flibrary%2Fmetadata%2F%7Bid%7D%3FX-Plex-Token%3D%7Btoken%7D%22%3Bconst%20downloadUrl%20%3D%20%22%7Bbaseuri%7D%7Bpartkey%7D%3Fdownload%3D0%26X-Plex-Token%3D%7Btoken%7D%22%3Bconst%20accessTokenXpath%20%3D%20%22%2F%2FDevice%5B%40clientIdentifier%3D'%7Bclientid%7D'%5D%2F%40accessToken%22%3Bconst%20baseUriXpath%20%3D%20%22%2F%2FDevice%5B%40clientIdentifier%3D'%7Bclientid%7D'%5D%2FConnection%5B%40local%3D'0'%5D%2F%40uri%22%3Bconst%20partKeyXpath%20%3D%20%22%2F%2FMedia%2FPart%5B1%5D%2F%40key%22%3Blet%20accessToken%20%3D%20null%3Blet%20baseUri%20%3D%20null%3Bconst%20getXml%20%3D%20function(url%2C%20callback)%20%7Bconst%20request%20%3D%20new%20XMLHttpRequest()%3Brequest.onreadystatechange%20%3D%20function()%20%7Bif%20(request.readyState%20%3D%3D%204%20%26%26%20request.status%20%3D%3D%20200)%20%7Bcallback(request.responseXML)%3B%7D%7D%3Brequest.open(%22GET%22%2C%20url)%3Brequest.send()%3B%7D%3Bconst%20getMetadata%20%3D%20function(xml)%20%7Bconst%20clientId%20%3D%20clientIdRegex.exec(window.location.href)%3Bif%20(clientId%20%26%26%20clientId.length%20%3D%3D%202)%20%7Bconst%20accessTokenNode%20%3D%20xml.evaluate(accessTokenXpath.replace('%7Bclientid%7D'%2C%20clientId%5B1%5D)%2C%20xml%2C%20null%2C%20XPathResult.FIRST_ORDERED_NODE_TYPE%2C%20null)%3Bconst%20baseUriNode%20%3D%20xml.evaluate(baseUriXpath.replace('%7Bclientid%7D'%2C%20clientId%5B1%5D)%2C%20xml%2C%20null%2C%20XPathResult.FIRST_ORDERED_NODE_TYPE%2C%20null)%3Bif%20(accessTokenNode.singleNodeValue%20%26%26%20baseUriNode.singleNodeValue)%20%7BaccessToken%20%3D%20accessTokenNode.singleNodeValue.textContent%3BbaseUri%20%3D%20baseUriNode.singleNodeValue.textContent%3Bconst%20metadataId%20%3D%20metadataIdRegex.exec(window.location.href)%3Bif%20(metadataId%20%26%26%20metadataId.length%20%3D%3D%202)%20%7BgetXml(apiLibraryUrl.replace('%7Bbaseuri%7D'%2C%20baseUri).replace('%7Bid%7D'%2C%20metadataId%5B1%5D).replace('%7Btoken%7D'%2C%20accessToken)%2C%20getDownloadUrl)%3B%7D%20else%20%7Balert(%22You%20are%20currently%20not%20viewing%20a%20media%20item.%22)%3B%7D%7D%20else%20%7Balert(%22Cannot%20find%20a%20valid%20accessToken.%22)%3B%7D%7D%20else%20%7Balert(%22You%20are%20currently%20not%20viewing%20a%20media%20item.%22)%3B%7D%7D%3Bconst%20getDownloadUrl%20%3D%20function(xml)%20%7Bconst%20partKeyNode%20%3D%20xml.evaluate(partKeyXpath%2C%20xml%2C%20null%2C%20XPathResult.FIRST_ORDERED_NODE_TYPE%2C%20null)%3Bif%20(partKeyNode.singleNodeValue)%20%7Bwindow.location.href%20%3D%20downloadUrl.replace('%7Bbaseuri%7D'%2C%20baseUri).replace('%7Bpartkey%7D'%2C%20partKeyNode.singleNodeValue.textContent).replace('%7Btoken%7D'%2C%20accessToken)%3B%7D%20else%20%7Balert(%22You%20are%20currently%20not%20viewing%20a%20media%20item.%22)%3B%7D%7D%3Bself.init%20%3D%20function()%20%7Bif%20(typeof%20localStorage.myPlexAccessToken%20!%3D%20%22undefined%22)%20%7BgetXml(apiResourceUrl.replace('%7Btoken%7D'%2C%20localStorage.myPlexAccessToken)%2C%20getMetadata)%3B%7D%20else%20%7Balert(%22You%20are%20currently%20not%20browsing%20or%20logged%20into%20a%20Plex%20web%20environment.%22)%3B%7D%7D%3Breturn%20self%3B%7D)()%3B%7DplxDwnld.init()%7D)()
Same error. I was finally able to get past "service token error" by following this thread. https://forum.xda-developers.com/t/tool-win-lin-mac-miunlocktool-unlock-bootloader-of-xiaomi-devices-on-mac-linux.3782444/page-13#post-85932539 Now I am getting "Failed to unlock your device, Xiaomi server returned error...
> iOS - no macOS - yes (but still somewhat buggy) Is there a MacOS version?
Same issue. On some servers it is working. On others I am getting "includeMarkers=1&X-Plex-Token=REDACTED" like the above poster. Also 403 Forbidden error.
I am seeing "Logged in as: xxxxx" on top but getting this now - url = self.server["address"]+self.rating_key ~~~~~~~~~~~^^^^^^^^^^^ KeyError: 'address'
Same problem. Not working for me either.
Still not working for me. @augusl
Thumbnails not getting generated for me too on MacOS when using app normally. Surprisingly, if I open a video in MPV through terminal then thumbnails get generated.
Actually I was also able to compile it. @loikun For exiv2 you have to go to "/opt/homebrew/Cellar/exiv2/0.27.5_1/include/exiv2" and replace all "std::auto_ptr" with "std::unique_ptr" Then it builds fine. But pinch to...
I am part of 2 servers. It is working on one and not on another. Any way to debug? I get this ``` Logged in as: xxxxxxxx Found 17 servers...