How do I convert a Sufferfest workout to Zwift workout format?

Zwift Workouts Builder

Many cyclsits who were used to using the Sufferfest videos and workouts to do workouts prior to Zwift's own workout features being added, have asked how to repurpose or convert those workouts into a format that can be used directly with Zwift.

The community responded swiftly by creating a few discussion groups, forum posts and tools to help! Here are a few:

Here's how to convert your existing Sufferfest workouts to Zwift format:

  1. Download and install Python 2.7 onto your PC (for Windows) (for Mac)
  2. Download and extract the zerg.py script from Christian Wiedmann's Github project page.
  3. Download the Sufferfest ERG/MRC spreadsheet from Google Sheets and save it to your local machine as an Excel file.
  4. Modify the power setup worksheet to suit your personal preferences. The default is 55% of your FTP for RPE3 and 140% for RPE10.
  5. For each Sufferfest video you wish to convert, copy and paste the text for the MRC file section in the appropropriate worksheet of the spreadsheet into a plain text file with a ".mrc" extension using Notepad or a similar text editor.
  6. To make it easier to edit later, save the .mrc file into the same folder as the zerg.py script was extracted to. The file will begin with the line "[COURSE HEADER]" and end with"[END COURSE DATA]".

    Here's an example of the "Revolver" Sufferfest workout:

    [COURSE HEADER]
    VERSION = 2
    UNITS = ENGLISH
    DESCRIPTION = SUFFERFEST - REVOLVER
    FILE NAME = REVOLVER.MRC
    MINUTES PERCENT
    [END COURSE HEADER]
    [COURSE DATA]
    0.00 55
    2.57 55
    2.57 65
    6.60 65
    6.60 75

    ....[snipped for KB article brevity]

    43.28 140
    43.28 55
    49.15 55
    [END COURSE DATA]

  7. From a command prompt or shell prompt, change to the directory you saved your .mrc files along with the zerg.py script and run the python script with the .mrc files as parameters. For example:

    zerg.py revolver.mrc

    or

    zerg.py workout1.mrc workout2.mrc

  8. This will output Zwift-compatible ".zwo" files into the current directory. If you want to put them in a separate folder, for example: ""%USERDATA%\Documents\Zwift\Workouts\Custom" you specify the -D option to zerg.py to point to a different save location by running:

    zerg.py -D "%USERDATA%\Documents\Zwift\Workouts\Custom" workout1.mrc workout2.mrc

    You may then edit the zwo files to add a proper description and other custom metadata as you see fit to recognize them when you load them back up into Zwift.

Add these files to your Zwift Workout directory in Zwift's data directories so Zwift will then see them when you launch the Zwift desktop application.

That's it!

If you want to learn how to load up a custom workout in Zwfit, there's another KB article describing that in detail:

Good luck out there, and Suffer Hard!

(Credits to cyclist Stephen Dag for helping develop the content to this article.

Tags
convert sufferfest workout