Skip to content

Support slack_file for videos in Block Kit (parity with images) #2460

@osmanpontes

Description

@osmanpontes

Problem

Block Kit currently supports slack_file references for images, which allows apps to safely render private Slack-hosted files inside messages without requiring public URLs.

However, this capability is limited to images only. There is no equivalent way to reference Slack-hosted video files (file_id) in Block Kit, even though Slack already supports:

  • Video files uploaded to Slack
  • A native video block that requires public or embeddable URLs

This creates an inconsistency: images can be rendered from private Slack files, while videos cannot.

Goal

Provide first-class support for using Slack-hosted video files (slack_file) inside Block Kit, similar to how images currently work.

This would allow apps to:

  • Upload a video using files.uploadV2
  • Reference the resulting file_id in Block Kit
  • Render the video inline without requiring a public URL or external hosting

Why this matters

  • Many apps handle sensitive or private video content that should not be publicly accessible
  • Hosting videos externally (S3, YouTube, etc.) adds operational and security overhead
  • Image blocks already solve this problem elegantly via slack_file
  • Feature parity between images and videos would greatly improve developer experience

Proposed direction (non-binding)

Examples of possible approaches:

  • Allow slack_file as a source for the existing video block
  • Or introduce a dedicated video element that accepts { type: "slack_file", file_id }
  • Update @slack/types to reflect the new capability

This issue is primarily about API and SDK support; the exact implementation details are up to the Slack team.

Related context

  • slack_file is already supported for images in Block Kit
  • The video block currently only supports external URLs
  • There does not appear to be an existing feature request covering video + slack_file support

Happy to help clarify use cases or test early implementations if needed.

Packages:

Select all that apply:

  • @slack/web-api
  • @slack/rtm-api
  • @slack/webhooks
  • @slack/oauth
  • @slack/socket-mode
  • @slack/types
  • I don't know

Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions