Skip to content

The moment it happens

Post a video to LinkedIn from a link

Send a video URL and caption and the video is posted to your profile, with a confirmation email.

Runs
The moment it happens
Apps
LinkedIn
AI
Not needed
Access
w_member_social

Send this to your assistant

Create a ClickRuntime automation: give me a link I can send a video URL and caption to. Upload the video to my LinkedIn profile as a post and email me when it's live.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Video does well on LinkedIn, but publishing it is awkward. A product team with a demo recorded in a video tool, a speaker with a conference clip or a creator with a short tutorial has to download the file, open LinkedIn, wait for an upload on a flaky connection and write the caption. If the clip is sized for another channel, the whole thing gets postponed until someone has an afternoon free.

You send ClickRuntime a video URL and a caption. It downloads the video, starts a LinkedIn upload, sends the file in parts so that larger videos work, creates the post and emails you a confirmation. The video ends up on your profile without anyone touching LinkedIn.

It is useful for teams that produce video regularly and want it to go out the day it is finished.

What you get out of it

  • Fresh video gets published at once

    A launch demo or a conference clip has the most value on the day it is relevant. Sending a link as soon as the file is ready means the audience sees it while the news is current.

  • Large files are handled in parts

    LinkedIn requires video to be uploaded in pieces, which is awkward to do by hand. The automation does that work, so a clip that would fail on a slow connection goes up reliably.

  • Other tools can trigger a post

    A video editing platform or a content calendar can call the webhook when an export is ready. That connects production to publishing without a manual step in between. That makes video publishing part of the production process.

  • The confirmation email is a record

    Each successful post is confirmed by email, so you have a trail of what was published and when. If something fails, the lack of an email tells you to look into it.

  • Social teams save repetitive work

    Downloading, uploading and captioning each clip takes time that adds up over a month. Handing it off leaves the team free to produce better video instead of moving files. Time saved there is better spent on the next video.

How it works

What happens, step by step

  1. When you send a video link and caption to the automation's private link, it starts.

  2. It downloads the video and uploads it to LinkedIn in parts, so large files work too.

  3. Once the upload is finished, it publishes the video post with your caption.

  4. You get an email confirming the video is live, with a link to the post.

Before it runs live

  • Connect LinkedIn
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Post a video to LinkedIn from a linkjust nowSucceeded
Email · Your LinkedIn video is live"Behind the scenes at the Acme roastery" is live: https://www.linkedin.com/feed/update/urn:li:share:7251...

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other LinkedIn steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
video_post_from_a_webhook.pyexample
from clickruntime import on_event, notify, http, credentials

API = "https://api.linkedin.com/rest"

@on_event
def handle(event):
    body = event.json or {}
    token = credentials.connection("linkedin", "main")
    headers = {"Authorization": f"Bearer {token}", "LinkedIn-Version": "202405", "X-Restli-Protocol-Version": "2.0.0"}
    owner = "urn:li:person:" + http.get("https://api.linkedin.com/v2/userinfo", headers=headers).json()["sub"]
    video = http.get(body["video_url"], timeout=60).content
    init = http.post(f"{API}/videos?action=initializeUpload", headers=headers, json={"initializeUploadRequest": {
        "owner": owner, "fileSizeBytes": len(video), "uploadCaptions": False, "uploadThumbnail": False}}).json()["value"]
    etags = []
    for part in init["uploadInstructions"]:
        chunk = video[part["firstByte"]:part["lastByte"] + 1]
        etags.append(http.put(part["uploadUrl"], data=chunk, timeout=120).headers["etag"])
    http.post(f"{API}/videos?action=finalizeUpload", headers=headers, json={"finalizeUploadRequest": {
        "video": init["video"], "uploadToken": init.get("uploadToken", ""), "uploadedPartIds": etags}}).raise_for_status()
    resp = http.post(f"{API}/posts", headers=headers, json={
        "author": owner, "commentary": body.get("caption", ""), "visibility": "PUBLIC",
        "distribution": {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []},
        "content": {"media": {"id": init["video"]}}, "lifecycleState": "PUBLISHED",
    })
    resp.raise_for_status()
    notify.email_me("Your LinkedIn video is live", f"https://www.linkedin.com/feed/update/{resp.headers['x-restli-id']}")
    return {"posted": True}

FAQ

Common questions

How large can the video be?
LinkedIn sets the limits on length and file size, and they can change, so check its current guidance. The automation uploads in parts, which helps with big files, but a file over LinkedIn's limit will still be rejected. Compressing the video first usually solves it.
Why does the video have to be downloaded first?
LinkedIn does not accept a link to a video on another site as native video. The file has to be uploaded to LinkedIn, so ClickRuntime downloads it from your URL and then sends it on. The URL must therefore be public and direct.
How long does it take for the post to appear?
The upload time depends on the size of the file, and LinkedIn also processes the video after uploading. Short clips usually appear within a few minutes, while long ones may take longer. The confirmation email is sent once the post has been created.
What permissions does it need?
w_member_social. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Post a video to LinkedIn from a link” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.