Jump to content
Ketarin forum

qBittorrent (Sourceforge)


Rootz
 Share

Recommended Posts

Hello,

qBittorrent change recently, download links to Sourceforge.

Since that, i can't download because the links redirect to dynamic links, I think...

Can someone help me to correct my code or point me some solution?

 

<?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="da4a2761-f9ca-44e0-997d-987895674708">
    <WebsiteUrl />
    <UserAgent />
    <UserNotes />
    <LastFileSize>118342</LastFileSize>
    <LastFileDate>2025-07-13T15:22:56.0404336</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 />
    <SetupInstructions />
    <Variables>
      <item>
        <key>
          <string>version</string>
        </key>
        <value>
          <UrlVariable>
            <RegexRightToLeft>false</RegexRightToLeft>
            <VariableType>RegularExpression</VariableType>
            <Regex>qbittorrent_(\d+\.\d+\.\d+)_x64_setup\.exe</Regex>
            <Url>https://www.qbittorrent.org/download</Url>
            <Name>version</Name>
          </UrlVariable>
        </value>
      </item>
      <item>
        <key>
          <string>download</string>
        </key>
        <value>
          <UrlVariable>
            <RegexRightToLeft>false</RegexRightToLeft>
            <VariableType>Textual</VariableType>
            <Regex />
            <TextualContent>https://sourceforge.net/projects/qbittorrent/files/qbittorrent-win32/qbittorrent-{version}/qbittorrent_{version}_qt6_lt20_x64_setup.exe</TextualContent>
            <Name>download</Name>
          </UrlVariable>
        </value>
      </item>
    </Variables>
    <ExecuteCommand />
    <ExecutePreCommand />
    <ExecuteCommandType>Batch</ExecuteCommandType>
    <ExecutePreCommandType>Batch</ExecutePreCommandType>
    <Category />
    <SourceType>FixedUrl</SourceType>
    <PreviousLocation>D:\Backups\Tools\Torrent Apps\Clients\qBittorrent\qbittorrent_5.1.2_lt20_qt6_x64_setup.exe</PreviousLocation>
    <DeletePreviousFile>true</DeletePreviousFile>
    <Enabled>false</Enabled>
    <FileHippoId />
    <LastUpdated>2025-07-13T15:22:56.0404336</LastUpdated>
    <TargetPath>D:\Backups\Tools\Torrent Apps\Clients\qBittorrent\</TargetPath>
    <FixedDownloadUrl>{download}</FixedDownloadUrl>
    <Name>qBittorrent 2</Name>
  </ApplicationJob>
</Jobs>

 

qbittorrent2.xml

Link to comment
Share on other sites

There are a couple separate issues.

One is that the URL you're building might be correct but the website uses a different one. The URL posted on the qbt site is not the same pattern as that on the SF site - you're using the correct one, but this could be temporary. Parsing it from the site is usually what I prefer to do but in this case that builds a 404. They may be planning to change the URL pattern at some point and this is just the first step. Expect more problems before they figure this out. :(

However, the big issue is that you're using the standard Ketarin user-agent. On the "Advanced settings" tab switch it to curl ("curl/8.13.0" for example) and it will be redirected properly and the download will work.

Sourceforge regularly blocks what they deem fake user-agents so the fix is to literally fake the user-agent. Sigh. That change alone should get it fixed immediately...until they change the URL pattern they're building as.

Link to comment
Share on other sites

Change user agent to curl/8.15.0 solve my problem for now.

Thanks for helping :)

For curious, what user agent you use on global settings?
I'm using:

Quote

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

its ok?

Link to comment
Share on other sites

User-agents age like milk. Don't let them get too old or servers start tossing 'em out. I change the default global UA every few months now. Right now it's:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

The biggest issue with letting them get too old is that *so much* malicious traffic uses outdated user-agents so you get swept up with server UA filters if you don't keep it relatively current.

However, all my SourceForge downloads I use a curl variation (specifically, I use a global variable "{curl}" which is set to "pycurl/7.45.6") since SourceForge uses a UA filter that allows curl to bypass their CAPTCHAs and interstitials. This allows me to globally update all those user-agents with one change in the global settings. 

I have other global variables for difference user-agents, including firefox, opera, chrome, and just moz4 and moz5 for "Mozilla/4.0" and "Mozilla/5.0". This makes quick work of sites that don't behave well using either generic UAs or behave differently for one browser or another.

I also use a post-update script to update the user-agent that's used for Kuppet by updating the configuration file with the version number from my Firefox and Chrome app updates. It doesn't take effect until the next pass, but a few days delay is nothing at all. Kuppet is a necessity for so many downloads now because they use javascript rendering. Without it the sites just can't be parsed.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.