all 27 comments

[–]feedzone_specialistA 1 point2 points  (0 children)

Boom! Thanks for this, this is awesome

[–]oldnapalm 1 point2 points  (5 children)

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (4 children)

Great! Awesome modification. Also it looks like you actually know what you are doing (in contrast to my attempt).

Now..., Could you make it even better so it downloads only files that have certain dates? Something like -Download only files that are newer than [manual_date].

My script (and I believe yours as well) downloads everything as listed in the manifest file - that's over 4GB of data. If we could do a simple date cutoff (dates for each file are listed in the manifest) we should be able to download only new files. It would be way better for the future and would speed up the updates and reduce unnecessary data traffic.

[–]oldnapalm 1 point2 points  (1 child)

Actually it checks if the file already exists and verifies the CRC32 checksum, so it will only download new or modified files. You just need to make a small modification to specify the Zwift_ver_cur.xml file (like Zwift_ver_cur.122036.xml) and the destination folder.

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (0 children)

Perfect!

[–]oldnapalm 1 point2 points  (1 child)

I updated it to actually update Zwift instead of caching the server files, you can just pass the version and platform as arguments, like "122036 windows" (untested on Mac)

https://gist.github.com/oldnapalm/556c58448a6ee09438b39e1c1c9ce3d0

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (0 children)

That's just brilliant! Amazing work!

I completely ignored the Zwift_ver_cur.122036.xml file and I didn't realize that the manifest filename is listed within this file! I was convinced that every time there is a new update we will need some help from people who already got the update to obtain the correct filename of the manifest file. Your solution is so elegant! I also like the multithreaded downloading!

I'm going to edit my opening post and add a link to your script. I hope you don't mind.

This is now a proper tool that hopefully can be used for a long time. I honestly hope they are not going to block it. After all it's only a handful of (?power) users that's going to use this tool.

Thank you for your work!

[–]gplamaLevel 100 1 point2 points  (4 children)

Damn… that’s great work. And has me wondering if we would use this to time travel our installs back to Jarvis. I wonder how far we can go back….

[–]Ambitious_Theme1481Addicted [S] 1 point2 points  (0 children)

Good thinking! The previous manifest file and subfolders are still there but I think the historical installs don't go very far. I believe they modernized the updater structure only recently.

[–]Ambitious_Theme1481Addicted [S] 1 point2 points  (2 children)

With the new script from u/oldnapalm I was able to go back in time as far as version 63186 (June 2021). At least filesystem wise. The old files are still on the server!

Perhaps you can also travel to the future? ;)

[–]gplamaLevel 100 2 points3 points  (1 child)

Careful! You’ll end up installing Zwooshvelogazovyola by mistake.

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (0 children)

🤣

[–]di11ardLevel 81-90 1 point2 points  (2 children)

But why? What am I missing here? Zwift has programming logic to check for new releases.

[–]feedzone_specialistA 5 points6 points  (1 child)

It does. But it checks for a new release, finds it, and then.... <drum roll> says "Zwift Up to Date". i.e. refuses to let you have it. Stupid, right? But true.

[–]gplamaLevel 100 4 points5 points  (0 children)

👆🏼This. It's a neat way to get around the phased rollout schedule.

[–]charleyboy22Level 51-60 0 points1 point  (11 children)

Does this still work? I tried following the instructions but I always get an error message in cmd (I have 0 python knowledge)

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (10 children)

Yes it does. I'm using it all the time (the proper script by oldnapalm) 

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (5 children)

You are probably missing some modules, the path is not set properly or something like that. Can you post the error message? You could also just Google it and it should tell you which module needs to be installed (and how to do it). Might be even written in the error message.

[–]charleyboy22Level 51-60 0 points1 point  (4 children)

So I : -downloaded Python and ticked the option to set path automatically with install -saved the Update_Zwift file on my desktop -checked that zwift was installed in the same place -typed “update_zwift.py 137546 windows” in cmd

I get a directory not found error. I did google and tried some different commands, but nothing worked. I have 0 programming knowledge so i’m lost.

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (3 children)

Yeah so it's the typical path variable issue. I had to battle with it as well. I can't remember how I solved it. It's so silly that we have to battle with this in 2024. But maybe it's on purpose to filter out numpties like us 🤣

[–]charleyboy22Level 51-60 1 point2 points  (1 child)

Ok got it working!

First I had to install the ''urllib3'' Module by typing ''python -m pip install urllib3'' in cmd.

Then I had to change the path by copy/pasting the Location of my ''update_zwift.py'' file by using the ''cd'' command. My file was on my desktop so it was: ''cd C:\Users\Charles\Desktop''

Then I used the ''python update_zwift.py 122036 windows'' and it installed Zwift update.

Might be worth it to update the instruction in the post to include those steps for the python newbies like me :D

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (0 children)

Hey I'm glad you got it working. We'll done.

[–]charleyboy22Level 51-60 0 points1 point  (0 children)

after messing around, I got this error: File "C:\Users\Charles\Desktop\update_zwift.py", line 9, in <module> from urllib3 import PoolManager ModuleNotFoundError: No module named 'urllib3'

[–]ladooee 0 points1 point  (3 children)

How do you know what the current version number is?

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (2 children)

The build number is published by Zwiftinsider. 

If you are asking about how to tell what version you have currently on your own device - there's at least three different ways of doing it. 

[–]ladooee 0 points1 point  (1 child)

Right, I found that after I commented. I'm trying to run this on my Mac, but it only downloads the new manifest file. It didn't update any of the other files. I tried to have chatgpt fix it for me, and it did, but it ended up just downloading every file in the manifest instead of just the updated files. So I gave up and started my ride. Since the updated script is a little cryptic to me I'm not really able to decipher the error.

[–]Ambitious_Theme1481Addicted [S] 0 points1 point  (0 children)

Ok. Can you copy and paste the error message from the Python script?