Skip to content

docs(tiktok): document which settings apply per posting method and media type - #231

Merged
egelhaus merged 3 commits into
mainfrom
docs/tiktok-settings-axes
Jul 20, 2026
Merged

docs(tiktok): document which settings apply per posting method and media type#231
egelhaus merged 3 commits into
mainfrom
docs/tiktok-settings-axes

Conversation

@giladresisi

@giladresisi giladresisi commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Why

A production user ticked "Video made with AI" on a TikTok post using the UPLOAD content posting method and the label was silently dropped: TikTok's inbox upload endpoint accepts no post_info at all, so every Postiz setting except the title/content has nowhere to go. The app-side fix landed in gitroomhq/postiz-app#1728 (UI hides DIRECT_POST-only settings in UPLOAD mode, TikTokDto fields carry @JSONSchema descriptions, provider @Rules teach the agent the constraints) — this PR brings the docs in line with it.

TikTok settings vary along two axes the docs never stated:

  1. Posting method — with content_posting_method=UPLOAD, TikTok keeps only the title/content; all other settings require DIRECT_POST. UPLOAD also never publishes: the media lands in the TikTok app inbox as a draft the user must finish within 24h, while the API still reports success.
  2. Media type (within DIRECT_POST) — duet, stitch, video_made_with_ai are video-only (photo post_info has no such fields); autoAddMusic is photo-only; privacy_level, comment and the brand toggles apply to both.

What changed

  • public-api/providers/tiktok.mdx — warn that UPLOAD never publishes; annotate every settings-table row with when it applies (DIRECT_POST only / video-only / photo-only), with a legend noting UPLOAD-discarded fields are still required by the API. Replaced the "Private Video (Draft)" example, which paired UPLOAD with settings TikTok discards, with a real Private Video example (SELF_ONLY + DIRECT_POST); the prose explains how to target the inbox instead.
  • public-api/openapi.json (hand-maintained) — per-field descriptions on TikTokSettings mirroring tiktok.dto.ts from fix(tiktok): stop offering settings TikTok silently ignores postiz-app#1728, plus the discard behavior on content_posting_method. Descriptions only — no field, type, or required-ness changes; validated with JSON.parse.
  • providers/tiktok.mdx — new "Posting settings" section: the settings panel collapses in UPLOAD mode (matching the #1728 UI), and which settings are video-/photo-specific.
  • cli/platform-examples.mdx, cli/media-upload.mdx, public-api/posts/create.mdx, public-api/introduction.mdx — one-line caveats after each TikTok example/settings table.

After this PR, no example anywhere combines UPLOAD with settings TikTok will discard (verified by grep).

Docs counterpart of gitroomhq/postiz-app#1728.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Clarified how TikTok’s DIRECT_POST vs UPLOAD modes affect whether media is published and which settings are honored.
    • Documented that UPLOAD sends to the TikTok inbox and silently discards all settings except basic post content/title.
    • Specified video-only (duet, stitch, AI-made video) and photo-only (auto add music) options, plus video/photo behavior for privacy, comments, and branded-content toggles.
    • Updated examples to reflect private visibility and the UPLOAD workflow, including the “success” messaging caveat.

giladresisi and others added 2 commits July 10, 2026 10:39
UPLOAD sends the media to the user's TikTok app inbox (SEND_TO_USER_INBOX),
where it must be finished manually within 24h or it is discarded. The API
still reports the post as successful, so callers had no way to know. The
enum was documented as "Upload for manual posting", which reads like a
routine choice.

Describe the consequence in providers/tiktok.mdx and add a matching
description to the TikTokSettings schema in openapi.json (hand-maintained,
not generated). Field stays required; enum unchanged.

Also retitle the "Private Video (Draft)" example, which paired UPLOAD with
privacy_level SELF_ONLY and so taught that UPLOAD is how you make a draft.
The two are unrelated: SELF_ONLY publishes a video only you can see, while
UPLOAD does not publish at all. It is now "Send to TikTok App Inbox (not
published)" with PUBLIC_TO_EVERYONE, and notes how to get a private post.

Mirrors gitroomhq/postiz-app#1687, which fixes the same bare enum in the
agent @rules text and the TikTokDto schema.
…dia type

TikTok settings vary along two axes that the docs never stated, so users
ticked settings that TikTok silently discarded (e.g. "Video made with AI"
on an UPLOAD post — TikTok's inbox upload endpoint accepts no post_info
at all, only the title/content survives):

1. Posting method: every setting except the title requires
   content_posting_method=DIRECT_POST; UPLOAD keeps only the title.
2. Media type (within DIRECT_POST): duet, stitch and video_made_with_ai
   are video-only (photo post_info has no such fields); autoAddMusic is
   photo-only; privacy_level, comment and the brand toggles apply to both.

Annotate the settings table in public-api/providers/tiktok.mdx with both
axes and mirror the per-field descriptions from postiz-app's TikTokDto
into the TikTokSettings schema in openapi.json (hand-maintained; only
descriptions added, no field or required-ness changes). Extend the
content_posting_method description with the discard behavior.

Also switch the "Send to TikTok App Inbox" example to a real
"Private Video" one (SELF_ONLY + DIRECT_POST): it paired UPLOAD with
settings TikTok drops, and the dead settings cannot simply be removed
because the API still requires them. The prose now explains how to send
to the inbox instead and that only the title survives there.

Add matching one-line caveats to the CLI examples (platform-examples,
media-upload), the settings tables in public-api/posts/create.mdx and
public-api/introduction.mdx, and a "Posting settings" section on the
user-facing provider page describing the collapsed panel in UPLOAD mode.

Follows up on 5fb180e (UPLOAD-never-publishes warning) and mirrors
gitroomhq/postiz-app#1728.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@postiz-contribution postiz-contribution Bot added the contribution:approved Approved contributor label Jul 20, 2026
@postiz-contribution

Copy link
Copy Markdown

Contribution-checker quality warning
Heuristic score: 5/100 (low). This is a non-blocking warning surfaced by the project's quality settings.

Heuristics that flagged:

  • Wall-of-text PR body: 2642 chars (>2500)
  • Excessive inline code references: 28 inline refs (>3)
  • AI watermark phrase: Matched: "Generated with Claude Code"
  • Commit message too long: Longest: 1798 chars

If this is a genuine contribution, please add detail to your PR description and tighten the diff scope before reviewers look at it.

@postiz-agent

postiz-agent Bot commented Jul 20, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 25d84a60-3169-402e-b63e-b931594a1abc

📥 Commits

Reviewing files that changed from the base of the PR and between 7509f2b and f456bc9.

📒 Files selected for processing (6)
  • cli/media-upload.mdx
  • cli/platform-examples.mdx
  • providers/tiktok.mdx
  • public-api/introduction.mdx
  • public-api/posts/create.mdx
  • public-api/providers/tiktok.mdx

📝 Walkthrough

Walkthrough

TikTok documentation and OpenAPI descriptions now clarify DIRECT_POST versus UPLOAD, including publication behavior and which settings apply to video, photo, or both post types.

Changes

TikTok posting settings

Layer / File(s) Summary
TikTok OpenAPI setting descriptions
public-api/openapi.json
Expanded TikTokSettings descriptions for posting modes, setting applicability, and ignored values during UPLOAD.
TikTok provider behavior and examples
providers/tiktok.mdx, public-api/providers/tiktok.mdx
Documented posting-mode behavior, media-specific settings, API reporting for uploads, and updated the private-video example.
Cross-document TikTok guidance
cli/media-upload.mdx, cli/platform-examples.mdx, public-api/introduction.mdx, public-api/posts/create.mdx
Added consistent guidance about DIRECT_POST, UPLOAD, and video- or photo-only settings.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: egelhaus

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main documentation change about TikTok settings by posting method and media type.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/tiktok-settings-axes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@giladresisi

Copy link
Copy Markdown
Collaborator Author

Companion skill-docs change for the agent repo: gitroomhq/postiz-agent#10 (same two-axis guidance, applied to SKILL.md / PROVIDER_SETTINGS.md). Mirrors the app fix gitroomhq/postiz-app#1728.

@egelhaus
egelhaus merged commit ce13ff4 into main Jul 20, 2026
3 of 4 checks passed
@egelhaus
egelhaus deleted the docs/tiktok-settings-axes branch July 20, 2026 08:39
@giladresisi

Copy link
Copy Markdown
Collaborator Author

Correction to my earlier link: the agent-repo companion was split into two stacked PRs — gitroomhq/postiz-agent#11 (posting method) and gitroomhq/postiz-agent#12 (media-type axes, mirrors app fix gitroomhq/postiz-app#1728). The earlier #10 was closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contribution:approved Approved contributor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants