Rootz Posted February 26 Report Share Posted February 26 Hello Can someone help to find out why I can't download UltraVNC? If i download with the same link via browser its possible Reply error: Quote UltraVnc The downloaded file is not a binary file type (text/html; charset=utf-8). Possibly there is an error page. Status code: 200 (OK) (https://uvnc.com/component/jdownloads/summary/466-ultravnc-1436-msi-x64.html) <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="33d27831-23b8-4560-8cc9-6c7918d52784"> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>0</LastFileSize> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <HashVariable /> <HashType>None</HashType> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <SetupInstructions> <SetupInstruction xsi:type="StartProcessInstruction"> <EnvironmentVariables /> <FileName>{file}</FileName> <Parameters /> <WaitForExit>true</WaitForExit> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>/downloads/ultravnc/\d{3}-ultravnc-\d-\d-\d-\d.html</Regex> <Url>https://uvnc.com/downloads/ultravnc.html</Url> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <Url>https://uvnc.com{url2}</Url> <TextualContent>https://uvnc.com{url2}</TextualContent> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>url1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>https://uvnc.com{version}</TextualContent> <Name>url1</Name> </UrlVariable> </value> </item> <item> <key> <string>url2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>/component/jdownloads/summary/\d{3}-ultravnc-\d{4}-msi-x64.html</Regex> <Url>{url1}</Url> <Name>url2</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand /> <ExecutePreCommand /> <ExecuteCommandType>Batch</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category /> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>false</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>D:\Backups\Tools\UltraVNC\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>UltraVnc</Name> </ApplicationJob> </Jobs> Link to comment Share on other sites More sharing options...
shawn Posted February 26 Report Share Posted February 26 i have them blocked on my network so i can't actually test it, but the most common issue with a website not allowing you to visit the same page you can in a browser or download when you have the correct URLs is the referer. Go to the Advaneed tab and set the "spoof HTTP referer" option to this URL and it will probably work: https://uvnc.com/downloads/ultravnc.html Link to comment Share on other sites More sharing options...
Rootz Posted February 27 Author Report Share Posted February 27 Thanks for the suggestion but don't work Quote UltraVnc The downloaded file is not a binary file type (text/html; charset=utf-8). Possibly there is an error page. Status code: 200 (OK) (https://uvnc.com/component/jdownloads/summary/466-ultravnc-1436-msi-x64.html) There's a thing i don't mentioned before. When go to download link awaits 7 seconds countdown, and we need to mark checkbox maybe is that the error when saying "The downloaded file is not a binary file type" Link to comment Share on other sites More sharing options...
shawn Posted February 27 Report Share Posted February 27 i see what's going on. you're downloading the page that redirect to the download, not the actual download. what you can do is just parse that page (your {url2}) to get the file URL. Link to comment Share on other sites More sharing options...
Rootz Posted February 28 Author Report Share Posted February 28 UltraVNC links for download are a mess! I needed to create multiple variables to get link after link but now works but i dont khow how long <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="33d27831-23b8-4560-8cc9-6c7918d52784"> <WebsiteUrl /> <UserAgent /> <UserNotes /> <LastFileSize>8537600</LastFileSize> <LastFileDate>2023-10-21T21:03:47+01:00</LastFileDate> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator>version</VariableChangeIndicator> <HashVariable /> <HashType>None</HashType> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer>https://uvnc.com/downloads/ultravnc.html</HttpReferer> <SetupInstructions> <SetupInstruction xsi:type="StartProcessInstruction"> <EnvironmentVariables /> <FileName>{file}</FileName> <Parameters /> <WaitForExit>true</WaitForExit> </SetupInstruction> </SetupInstructions> <Variables> <item> <key> <string>version</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>/downloads/ultravnc/\d{3}-ultravnc-\d-\d-\d-\d.html</Regex> <Url>https://uvnc.com/downloads/ultravnc.html</Url> <Name>version</Name> </UrlVariable> </value> </item> <item> <key> <string>download</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <Url>https://www.uvnc.eu/download/1436/UltraVNC_1436_X64.msi</Url> <TextualContent>https://www.uvnc.eu/download/{version2}/UltraVNC_{version2}_X64.msi</TextualContent> <Name>download</Name> </UrlVariable> </value> </item> <item> <key> <string>url1</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>Textual</VariableType> <Regex /> <TextualContent>https://uvnc.com{version}</TextualContent> <Name>url1</Name> </UrlVariable> </value> </item> <item> <key> <string>url2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>/component/jdownloads/summary/\d{3}-ultravnc-\d{4}-msi-x64.html</Regex> <Url>{url1}</Url> <Name>url2</Name> </UrlVariable> </value> </item> <item> <key> <string>version2</string> </key> <value> <UrlVariable> <RegexRightToLeft>false</RegexRightToLeft> <VariableType>RegularExpression</VariableType> <Regex>ultravnc-(\d+)-x64</Regex> <Url>{url1}</Url> <Name>version2</Name> </UrlVariable> </value> </item> </Variables> <ExecuteCommand /> <ExecutePreCommand /> <ExecuteCommandType>Batch</ExecuteCommandType> <ExecutePreCommandType>Batch</ExecutePreCommandType> <Category /> <SourceType>FixedUrl</SourceType> <PreviousLocation>D:\Backups\Tools\UltraVNC\UltraVNC_1436_X64.msi</PreviousLocation> <DeletePreviousFile>true</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated>2024-02-28T14:56:04.1365006+00:00</LastUpdated> <TargetPath>D:\Backups\Tools\UltraVNC\</TargetPath> <FixedDownloadUrl>{download}</FixedDownloadUrl> <Name>UltraVnc</Name> </ApplicationJob> </Jobs> Link to comment Share on other sites More sharing options...
shawn Posted February 28 Report Share Posted February 28 Since the download link is to a different domain, you might be better off using regex to parse for the download URL instead of constructing it from logical elements like version and extension. I use something like this for pretty much all of the downloads where the download is on a different domain: "([^'"]+{version}[^'"]+x64\.msi)" When parsed against {url2} this should capture the complete download URL for the first file that includes the version number and ends with "x64.msi". The URL must be wrapped in double-quotes on-page. If there's a chance that there are multiple matches and you want to control it further then you can fiddle with the beginning exclusionary block as so: "(https://[^'"]+{version}[^'"]+x64\.msi)" or "(https://[^'"]+uvnc\.eu/[^'"]+{version}[^'"]+x64\.msi)" This will let you ensure that the download is from an HTTPS website for the first one and the second adds a specific domain or subdomain to the requirements. If there are language specific builds you can add that as an additional qualifier and just duplicate the "[^'"]+" on either side as so: "(https://[^'"]+en_US[^'"]+{version}[^'"]+x64\.msi)" In the case where they might be using a single quote to wrap attribute values instead of doublequotes (or they use them differently throughout the site) you can use this: ['"](https://[^'"]+{version}[^'"]+x64\.msi)['"] Where this type of thing will fail you is if there is a block of code on the site that is actually commented out but still matches the other syntax requirements or the real URL isn't actually wrapped in quotes. I've seen this several times over the years but unfortunately there's simply no way to completely prepare for when people add comments or leave old code in their page. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now