Using a Profile Folder
🔗 Original page — Source of this material
Description
Available in ZennoPoster version 7.3.1.0 and above.
A profile folder is an alternative way to save a profile, different from the usual method of saving to a file. It's designed to address issues such as:
Profile integrity
When saving to a file, profile files could become “corrupted” if the instance encountered errors. The profile folder is meant to solve these problems—when you start your project, you launch the instance and specify a particular profile folder for it. While running, the instance saves some data to the profile folder automatically, just like a regular browser. And if the instance crashes, your data remains in the folder. The following instance data is saved automatically:
- *Cookies
- *Local Storage
- *HSTS Super Cookie
- *Indexed DB
- *Everything related to the profile (first/last name, email, password, etc.)
- *Everything related to the browser profile (UserAgent, Accept, Accept-Language). Now, browser profiles also include fonts, plugins, timezone, geolocation, and WebRTC, so these are also saved automatically.
The only things not saved automatically are Proxy and variables (to save these, you need to call a special action — see ❗→ Profile Browsing)
Fast loading and saving
When working with a file, as you use it for a long time, the file size may increase, leading to longer load and save times. A profile folder stores data in several files, and only the necessary files are touched when writing. This works much faster.
Unlike a profile file, you can't load a profile folder using the “Profile Operations” action. To use a profile folder, you need to launch an instance at the start of your project with the desired profile folder specified, and from then on the instance will be “linked” to this profile folder during work. See examples below for more details.
How to convert old-format profile files to the new profile folder format?
Demo project:
❗→ Open convert-old-profiles-to-new.zp
❗→ convert-old-profiles-to-new.zp
- Prepare the folder path where profile folders will be stored. For example, in your project folder:
{ -Project.Directory- }ProfileDirs\
- You'll need to append a unique name for the profile folder, just like you did with profile files.

- Launch an instance with an empty profile folder. Your instance will be linked to this profile folder path.

- Load the profile from a file. Your profile file will be loaded into the instance (which is already linked to a profile folder).

- Save the profile folder. This will save the instance data (the one loaded from the file) into the profile folder.

How to use a profile folder?
Using a profile folder solves about the same tasks as before. Here are some of them:
Profile browsing (“warming up” a profile)
Demo project:
❗→ Open warm-up-profile.zp
❗→ warm-up-profile.zp
- Prepare the folder path where profile folders will be stored. For example, in your project folder:
{ -Project.Directory- }ProfileDirs\
2. Open image-20210228-174212.png

Launch an instance with an empty profile folder. Your instance will be linked to this profile folder path.

You need to select “Chrome” and check the “Use profile folder path” option. Make sure the “Create folder if it doesn't exist” box is also checked, otherwise if the required files don't exist in the folder, it will be treated as an error and you’ll get a red branch exit. 3. Warm up the profile. Perform whatever actions are needed to warm up. 4. Save the profile folder.
- If you don't need to save variables/proxies, you don't need to add the special block. The profile folder will be saved automatically when you reload the instance, close the program, or when the project finishes.
- If you need to save variables/proxies, use the “Save profile folder” block and check the parameters you want:

Frequent use of the “Save profile folder” action is not recommended. It’s better to limit it to Bad end / Good end.
Using “warmed up” profile folders
Demo project:
❗→ Open use-profile.zp
❗→ use-profile.zp
- Set up a browserless project. In your project settings, mark the project as browserless. This saves resources by not launching the default browser at project startup.

- Launch an instance with the profile folder. Specify the path to your unique profile folder. Make sure the “Create folder if it doesn't exist” option is unchecked.

- Use it. Perform whatever actions you “warmed up” the profiles for.
Notes
One folder per instance
Note that only one browser instance can be launched using the same profile folder at any one time. Trying to launch two (or more) instances in the same profile folder will lead to an exit via the red branch.
Debugging in ProjectMaker
Even if you close the browser using the ❗→ Browser Settings=>Launch instance=>Browserless action, ProjectMaker still won't “release” the profile folder. This is because of how the instance works inside ProjectMaker.
To free up profile folder resources while debugging, you need to launch the instance with a different type of browser, for example Firefox 45.