Friendly setup · start here

Setup guide

Follow these steps once. Short sentences. One action at a time. This covers the sold platforms: X, Threads, TikTok, Pinterest, YouTube, and Instagram.

Mac is the main path below. Windows and Linux notes are called out where paths differ. If you want extra technical detail later, open INSTALL.md in your GitHub folder.

Use AI to help you set up

This is the default support path. It is faster than waiting on email. You also make fewer mistakes.

Paste this guide (or SETUP.md from your GitHub folder) into ChatGPT, Claude, or Grok. Let the AI walk you one step at a time. Email support is the last resort (30 days) if the AI gets stuck.

How

  1. Open ChatGPT, Claude, or Grok.
  2. Attach or paste this Setup guide (or SETUP.md from your project folder).
  3. Paste the prompt below.
  4. Do each step. Stop at every You should see… checkpoint. Tell the AI what you saw before it continues.

Copy this prompt:

I'm setting up Posting Tool on my computer. Walk me through SETUP.md one step at a time. Do not skip checkpoints. Wait for me to confirm each step before going to the next.

I'm on a Mac (tell me if Windows/Linux is different).
I bought: [single platform / any 3 / all 6]. Platforms: [list them — X, Threads, TikTok, Pinterest, YouTube, Instagram as needed].
The project folder is: [paste path after I clone it].

Rules:
- Never invent commands that aren't in SETUP.md or the repo.
- If something looks like a secret (tokens, passwords), tell me not to paste it into chat.
- If a step fails, help me use the Troubleshooting section before guessing.
- If I bought Instagram: stop until I confirm the account is Professional → Business and I can see the Schedule content switch.
Do not paste secrets. Never paste passwords, cookies, or token files into the AI. If a file looks secret, tell the AI you have it — do not paste the contents.

Still do the checkpoints in this guide. If the AI skips a “You should see…” line, stop and do it anyway.

When something fails — use AI to fix it

Do not email first. Paste this guide (or SETUP.md) plus the error into ChatGPT, Claude, or Grok.

Give the AI:

  1. This Setup guide (or SETUP.md from your GitHub folder).
  2. The error text from Terminal (the red lines / traceback).
  3. What you see in failed/ (paste the receipt text, or describe the filename).
  4. What you see in logs/screenshots/describe the screenshot (login wall, missing button, error banner). Do not upload screenshots that show passwords, cookies, tokens, or other secrets.

Copy this prompt:

Something failed while setting up Posting Tool. Help me fix it using SETUP.md.

I bought: [single platform / any 3 / all 6]. Platforms: [list them — X, Threads, TikTok, Pinterest, YouTube, Instagram as needed].
The project folder is: [path].

Error text:
[paste the Terminal error]

What I see in failed/:
[paste receipt text or describe]

What I see in logs/screenshots/:
[describe the screenshot — do not upload secrets]

Rules:
- Never invent commands that aren't in SETUP.md or the repo.
- Do not ask me for passwords, cookies, or tokens. If a file looks secret, tell me not to paste it.
- Use the Troubleshooting section in SETUP.md first, before guessing.
- If I bought Instagram: confirm the account is Professional → Business and I can see the Schedule content switch before anything else.

Email support is the last resort. It covers 30 days from purchase. Try the AI install prompt and this AI fix prompt first.

A. Before you start

Check these off first:

  1. Use a Mac if you can (easiest). Windows and Linux work too.
  2. Create (or already have) login accounts for the platforms you bought: X, Threads, TikTok, Pinterest, YouTube, and/or Instagram.
  3. If you bought Instagram: convert that account to Business first. See Instagram. Do this before cookies or login.
  4. Install Google Chrome (your normal browser for those sites).
  5. You will install some Python tools one time (Python is a free helper program).
  6. After purchase, accept the private GitHub invite and clone (download) the project folder to your computer. A common place on Mac is your home folder, for example ~/posting-tool.
Tip: Keep that project folder somewhere easy to find. All videos go into its inbox/ folder later.

B. Install (one time)

1. Install Python (if needed)

  1. Open python.org/downloads.
  2. Download the latest Python 3 for your computer.
  3. Run the installer.
  4. On Mac, if you see a checkbox for Install Certificates, turn it on.
  5. On Windows, turn on Add python.exe to PATH before you click Install.
a Terminal window where typing python3 --version prints a version like Python 3.12.x (Windows may use python --version).

2. Open Terminal

  1. On Mac: press Command + Space, type Terminal, press Return.
  2. On Windows: open Command Prompt or PowerShell.
  3. On Linux: open your terminal app.

3. Go into the project folder

Type this, then press Return (change the path if your folder is elsewhere):

cd ~/posting-tool

Windows example:

cd %USERPROFILE%\posting-tool
the folder name in the prompt, and no “No such file” error.

4. Install the Python packages

pip3 install -r requirements.txt

Windows note: if pip3 is not found, try pip install -r requirements.txt.

5. Install the browser helper

python3 -m playwright install chromium

Windows note: if needed, use python -m playwright install chromium.

the install finish with no red errors. Yellow download progress is fine.

6. Copy the sample settings file

cp config.example.json config.json

Windows:

copy config.example.json config.json

You can leave most settings alone for your first test. YouTube needs a Google allow step later (see Connect).

C. Connect your accounts — two options

The tool uses its own Chrome profile (a separate browser home). You must be logged in there for X, Threads, TikTok, Pinterest, and Instagram. YouTube uses a separate Google allow screen.

Instagram first, if you bought it. Instagram only schedules on a Professional → Business account. Convert the account and confirm you can see the Schedule content switch before you copy cookies or log in. Full steps: Instagram.

Option 1 — Cookie bridge (recommended when it works)

This copies your login from everyday Chrome into the tool’s Chrome. Think of it as sharing a “remember me” sticker.

  1. In your regular Chrome, sign into the platforms you bought (X, Threads, TikTok, Pinterest, Instagram as needed). For Instagram, that must be the Business account.
  2. Confirm you can open each site without a login screen.
  3. Fully quit Chrome. On Mac: Chrome menu → Quit Google Chrome (or press Command + Q). Closing the window is not enough.
  4. In Terminal, go to the project folder again if needed: cd ~/posting-tool
  5. Run the bridge for the sites you need (example for all browser platforms):
python3 bridge_chrome_cookies.py x.com twitter.com threads.com tiktok.com pinterest.com instagram.com
  1. On Mac, if Keychain asks for permission, click Always Allow (or Allow).
messages that cookies were copied, with no crash. You can re-run this anytime a login expires.

Option 2 — Manual login in the tool’s browser

Use this if the bridge fails, or if you prefer to sign in by hand.

  1. In Terminal, from the project folder, run:
python3 setup_playwright_logins.py
  1. A browser window opens. Log into each site when asked.
  2. Finish each login until you see your normal home/feed page.
  3. Close the helper when done.
X note: X sometimes blocks this helper (the Next button freezes, or a “verify you are human” page appears). If that happens, use Option 1 (cookie bridge) instead.

Which option for each platform?

Platform Usual path
X Prefer cookie bridge. If you see a Cloudflare / “verify you are human” page, solve it in regular Chrome, quit Chrome fully, then bridge again (or run ./fix_x_cloudflare.command on Mac).
Threads Either option. Bridge is often easier.
TikTok Either option. Bridge is often easier.
Pinterest Either option. Bridge is often easier.
Instagram Either option. Bridge is often easier. Account must be Business first — see below. Stay logged into that Business account in Chrome.
YouTube Separate OAuth step (Google allow screen). Put your Google client id/secret into config.json if your package docs ask for them, then run:
python3 setup_youtube_auth.py

A browser opens. Choose your Google account and click Allow.

the script finish without an error, and a token file appear under tokens/.

Instagram — Professional Business account required

Read this before you connect cookies or log in. Instagram only schedules on a Professional → Business account. Creator also works. Personal cannot schedule.

Personal account = no schedule switch = tool cannot schedule. It will look broken. It is not broken. The account type is wrong.

Convert the account first

  1. Open the Instagram app or instagram.com in Chrome.
  2. Go to Settings → Account type / Professional.
  3. Switch the account to Business.

Creator also shows the Schedule content switch. Business is preferred. Creator also works. Personal does not.

Checkpoint — do this before the first dispatch

  1. Stay logged into that Business account in Chrome. The cookie bridge and Playwright login need that session.
  2. On the web, start a Reel / post as if you were going to publish.
  3. Look for a Schedule content switch in the composer.
the Schedule content switch in the Instagram web composer.

If the switch is missing: stop. Convert the account to Business. Look again. Do not email support until you have confirmed the account is Business and you can see the switch.

What Instagram can do in this pack today

  • Same-day time scheduling is what ships. Other dates may publish now (fallback).
  • If the time cannot be set, the tool publishes now rather than using Instagram’s default time.
  • You must be logged into that Business account in Chrome for the cookie bridge / Playwright login.

D. First test (do this before real posts)

One small test catches most “it doesn’t work” problems early.

  1. Put one short test video into the inbox/ folder. Example name: test_clip.mp4.
  2. In the same inbox/ folder, create a matching sidecar file named test_clip.json (same name as the video, but .json).
  3. Paste this minimal example into the file (edit the caption text if you want):
{
  "title": "My first test",
  "platforms": ["x"],
  "captions": {
    "x": {
      "caption": "Test post from Posting Tool\n\n#Test"
    }
  }
}

For a multi-platform pack, you can list more platforms, for example ["x", "threads", "tiktok"] or ["instagram"], and add matching caption blocks. Start with one platform for the first test. If that platform is Instagram, finish the Business checkpoint first.

  1. Run the go command from the project folder:
./posting_tool_go.command

Or:

python3 schedule_batch.py dispatch

On Mac you can also double-click posting_tool_go.command in Finder (approve it once if macOS asks).

  1. Wait until Terminal finishes.
if it worked: a receipt under posted/ (often inside a date folder). If it failed: a receipt under failed/, plus a screenshot in logs/screenshots/. Open the screenshot — it usually shows the exact problem.

E. Everyday use

  1. Drop your video and matching .json sidecar into inbox/.
  2. Names must match: my_video.mp4 + my_video.json.
  3. Run ./posting_tool_go.command (or the Python dispatch command).
  4. Do not run two dispatches at once. Wait for one to finish.
  5. Check posted/ for success or failed/ + screenshots if something breaks.

F. Troubleshooting (top problems)

If a step fails, use the AI fix prompt first: paste this guide + the error + what you see in failed/ and logs/screenshots/ (describe the screenshot; do not upload secrets). Email is last resort.

  1. Chrome was not fully quit before the cookie bridge. Quit Chrome with Command + Q (Mac), then bridge again.
  2. Logged out / session expired. Sign in again in regular Chrome, quit Chrome, re-run the bridge — or use setup_playwright_logins.py.
  3. X shows a Cloudflare / access / “verify you are human” page. Solve the checkbox in regular Chrome, quit Chrome, then bridge again or run ./fix_x_cloudflare.command.
  4. YouTube token expired. Run python3 setup_youtube_auth.py again and click Allow.
  5. Nothing in inbox / bad sidecar name. Video and JSON must sit in inbox/ and share the same base name (example: test_clip.mp4 + test_clip.json).
  6. Instagram has no Schedule content switch. The account is still Personal (or you are not logged into the Business account). Convert to Business, confirm the switch in the web composer, then retry. Do not email support until that checkpoint is done.

G. Support

Try the AI walkthrough first, then the AI fix prompt if something fails. Email is the last resort (30 days from purchase).

Email: support@thepostingtool.com (or the address in your purchase confirmation).

Please send:

  • The tier you bought (Single / Any 3 / All 6)
  • Which platform failed
  • A screenshot (from logs/screenshots/ if you have one)
  • The failed receipt from the failed/ folder (or paste its text)
  • If Instagram: confirm you converted to Business and can see the Schedule content switch

Want more detail after you are comfortable? Open INSTALL.md in your project folder.