Nodes/550W Watermark & Text Eraser/550W Resolve Share Link
ComfyUI Node

550W Resolve Share Link

550W Resolve Share Link, explained

By sunshinehu·Created 21 days ago·Updated 21 days ago· 1
550W Resolve Share Link
    • result_json
    ◄languageen►
    ◄share_text—►
    ◄operation_id►
    ◄confirm_chargefalse►
    ◄auth_modeapi_key►

    The name undersells it

    550W Resolve Share Link (FiftyWShareResolve) sounds like a parser. Paste a Douyin, Kuaishou, Bilibili or Weibo share link, get a URL back - free, right?

    No. Read the source and the endpoint it hits is the video watermark removal one, with your share URL as the source. So this node is parse-and-submit in a single step: it extracts the link from the share text, hands it to the service, and the service fetches the video and erases the watermark across it. That's why it has a confirm_charge checkbox and why running it costs credits. If you expected a free URL extractor, you're about to spend money finding out otherwise.

    That's not a knock - it's a genuinely convenient one-node path. Grab the "copy link" text out of the app, paste it, queue, and a few minutes later you have a clean video URL. Just know what the button does.

    How the mechanism actually behaves

    You drop the whole share blob into share_text, not a tidied URL. The node regex-scans it for https?://…, strips trailing punctuation (including the full-width Chinese marks that share text tends to trail), and requires exactly one URL. Paste two links and you get "Invalid input" - there's no "use the first" fallback. The text is capped at 2048 characters, and URLs carrying embedded credentials are rejected outright.

    From there it's a JSON POST to the service, no file upload at all - the service pulls the media itself. Note what's not on this node: there's no rectangle parameter. The video goes through full-frame, which is the sane default for a corner logo burned in by an app, and the wrong tool for a watermark sitting over actual content. For surgical erasing you want the pack's upload-and-submit video node, which does expose a rect.

    The output is a single result_json STRING. What you do with it depends on what you wanted:

    • A clean file to keep. Read the result URL out of the JSON and open it in a browser. Deliberate design choice on the author's part: this pack never promises native video decoding, so nothing gets turned into a VIDEO in the graph. If the parse worked but the download didn't, the resolved link is still sitting in the JSON for you to grab manually.
    • A chain of nodes. Wire result_json into whatever consumes strings; for the video path the meaningful next step is 550W Video Task Query, because these jobs are asynchronous.

    The other required widgets are the same as the rest of the pack: confirm_charge must be True, and operation_id needs 8–64 characters of [A-Za-z0-9._:-]. Empty fails - and since it's the mechanism for reconciling a rerun against work you may already have been charged for, type something meaningful and reuse it. language just picks the language of the error strings; auth_mode picks api_key or oauth.

    Install

    Same pack, same three dependencies, nothing to download:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sunshinehu/comfyui-550w-media-cn
    python -m pip install -r comfyui-550w-media-cn/requirements.txt
    

    Restart ComfyUI. API key mode reads two environment variables - FIFTYW_API_KEY and FIFTYW_USER_NO - which you set before launching, since credentials are deliberately kept out of the saved workflow. The OAuth route exists too:

    cd ComfyUI/custom_nodes
    python -m <installed-dir-name>.oauth_cli connect   # opens a browser on this host only
    

    It registers a local 127.0.0.1 callback with a five-minute window, stores the token in the OS keychain, and refuses to run at all if it can't. On a server with no desktop, use the key.

    Where it goes wrong

    Two links in the paste. Share text that includes an app deep link and a web URL trips the exactly-one rule. Trim it to one.

    Treating the JSON as the video. Nothing here produces a VIDEO you can hand to a video node. If you queue and see a string, that's success - open the link.

    Rerunning to "check". The service won't retry a paid task for you, and a network failure means the outcome is unknown, not that it failed. Query the task before resubmitting, or you pay twice for the same video.

    Multi-link platforms. The README lists Douyin, Kuaishou, Bilibili and Weibo specifically. App formats drift, and this is a wrapper around somebody's server-side parser, so a link shape that worked last month can start returning an error - that's the service changing, not your workflow.

    One more: this pack is obscure enough that there is no community thread to search when it misbehaves. The corpus has nothing on it. The README and the shipped adapter.py are your support channel, and the code is the honest one.

    Category550W

    Inputs (5)

    NameTypeDefaultDescription
    languageCOMBOen2 options: zh-CN, en
    share_textSTRING—
    operation_idSTRING—
    confirm_chargeBOOLEANfalse—
    auth_modeoptCOMBOapi_key2 options: api_key, oauth

    Outputs (1)

    NameTypeDescription
    result_jsonSTRING—