My TV Channel

com.my-tv-channel由 my-tv-channel.com 发布官方发布者v1.1.0更新于 Oct 24, 2026

Create and run 24/7 linear TV channels. Import videos by URL; we transcode, schedule and stream.

已验证Streamable HTTP可网页运行效率与工作流媒体与设计

概览

AI 生成的概览

让助手创建并管理 24/7 线性电视频道:通过 URL 导入视频、设置排播规则,并跟踪转码与上线状态。

可以做什么
该服务器提供 19 个工具,用于在 My TV Channel 上运营流媒体频道。助手可以查看账户状态与配额,列出和查看频道,检查频道句柄是否可用,创建、更新或归档频道,并从直链媒体 URL 或所有者本人上传的 YouTube 视频导入内容。它还能列出素材、轮询转码进度、调整每个视频的播放频率、删除素材、读取并校验排播规则、设置固定时段与时段分区、重新生成排播表,以及读取节目单。
适用场景
当用户希望助手代为搭建或维护有排播的线性电视频道、免去在网页端手动操作时适用,例如批量导入视频、调整轮播权重或定义周期性节目规则。也适合用来确认频道是否已达到上线门槛并正式开播。
运行要求
远程 streamable HTTP 端点 my-tv-channel.com,无需本地安装包。需要任意档位的有效订阅,以及在账户 Agent Access 设置中创建的 bearer API 密钥,通过 Authorization 请求头发送。视频必须能通过公开、直链、无需认证的 URL 访问;此接口无法上传本地文件。
安装前请注意
Authorization bearer 令牌是密钥,可访问账户的频道与配额。多个工具会改动线上状态:create_channel、update_channel、archive_channel、delete_asset、set_asset_weight、set_schedule_rules 和 regenerate_schedule。set_schedule_rules 会整体替换规则集,且需要 Pro 或更高档位;validate_schedule_rules 是试运行。导入的 URL 由服务端抓取,YouTube 导入仅限所有者本人上传的视频。

安装

在 SourceWeft 中

  1. 打开 控制台中的 My TV Channel,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.my-tv-channel%2Fmy-tv-channel/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "my-tv-channel": {
      "type": "http",
      "url": "https://my-tv-channel.com/api/mytvchannel/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

工具

19

get_account_status

Get account status

Start here. Returns who the account is, its subscription tier and limits, how much weekly upload/stream quota is used and remaining, and every channel the owner has with its ready-asset count and what it still needs to go live (launchGaps). Call this before creating anything so you know the real limits for THIS account rather than assuming.

无需输入参数。

list_channels

List channels

List the channels owned by this account.

无需输入参数。

get_channel

Get channel

Get one channel by id. Includes scheduleStatus (inactive | pending | active | error) — poll this to confirm a channel has gone live — plus watchUrl, launchedAt and isArchived.

输入参数channel_id必填

check_handle_available

Check handle availability

Check whether a channel handle is free before trying to create it. The handle becomes the subdomain: {handle}.my-tv-channel.com. 3-63 chars, lowercase a-z, 0-9 and hyphens.

输入参数handle必填

create_channel

Create channel

Create a 24/7 linear TV channel. It will NOT be live yet — a channel goes live automatically once it has at least 4 ready assets AND at least 15 minutes of total content. is_public lists it in Discover and is available on every subscription tier, including Starter.

输入参数name必填tagshandle必填categorylocationis_publicdescriptionorientationchannel_type必填primary_language

update_channel

Update channel

Update an existing channel: name, description, visibility, category, language, age rating, or the community chat link. Only send the fields you are changing.

输入参数namecategorykeywordsis_publicchannel_id必填descriptionchat_platformshow_schedulechat_server_idchat_channel_idprimary_languageage_classification另有 1 个

archive_channel

Archive channel

Take a channel off the air and out of every listing. This ARCHIVES rather than destroys: the handle stays reserved and assets and schedule history are retained, so it can be restored. Refuses with 409 while transcodes are still running. Idempotent. This is the reversible way to take a channel down; delete_asset removes individual videos instead.

输入参数channel_id必填

import_video_from_url

Import video from URL

Add a video to a channel from a direct media URL. THIS IS THE MAIN WAY TO ADD CONTENT over MCP — you cannot upload local file bytes through this interface, so if the owner has local files, ask them to host them somewhere reachable or upload via the app. The URL must be a direct, public, unauthenticated link to mp4/mov/m4v/mpeg/mpg/avi, or a FINITE .m3u8 (VOD, not a live stream) — not a web page, not behind a login, not a YouTube/Vimeo watch page. The server downloads it. Returns immediately; the asset then goes downloading -> pending -> transcoding -> ready. Duration counts against the weekly upload quota. Re-submitting the same URL to the same channel returns the original asset instead of importing twice.

输入参数url必填tagstitleweightchannel_id必填

import_youtube_video

Import YouTube video

Import a YouTube video that the OWNER UPLOADED THEMSELVES. This will not work for anyone else's video, by design — a channel built from other people's videos is a copyright problem for the owner. Ownership is proved by a tag only the uploader can add: 1. The owner's tag looks like 'MyTVChannelApp#<device-id>'. When the import fails for a missing tag, the 403 error message contains that account's exact tag string. 2. They paste that exact string into the video's description or tags on YouTube. 3. Retry the import. You cannot do step 2 for them and you cannot bypass it. Public finished videos only: no live streams, no private or age-restricted videos, no playlists or channel URLs. Capped at 10 per day. Counts against the same weekly upload quota as everything else.

输入参数url必填tagstitleweightchannel_id必填

list_assets

List assets

List the videos on a channel.

输入参数channel_id必填

get_transcode_status

Get transcode status

Poll transcode progress. Give either channel_id (all its videos) or asset_id (one). Each asset reports uploadStatus (downloading -> pending -> transcoding -> ready) and the summary tells you when meetsLaunchRequirements becomes true: 4+ ready assets AND 900+ seconds. Poll every 30-60s; transcoding takes roughly real-time/4.

输入参数asset_idchannel_id

set_asset_weight

Set asset weight

Change how often a video plays (weight 0-10, default 5; 0 removes it from rotation entirely), and optionally its title or tags. IMPORTANT ORDERING: weights only affect what actually airs when the schedule is (re)generated. A channel builds its schedule the instant it crosses the launch threshold, so weights set AFTER that are stored but do not air. Either set the weight when you import each video, or call regenerate_schedule afterwards. Weights are relative: identical weights across every video produce a uniform rotation, and the spread between them is what shapes airtime.

输入参数tagstitleweightasset_id必填

delete_asset

Delete asset

Remove a video from a channel. Soft delete — it stops being scheduled immediately and the schedule regenerates automatically. Idempotent. The asset is retained and stops being scheduled; it is not erased. Affects one video — archive_channel takes a whole channel off the air.

输入参数asset_id必填

retry_transcode

Retry transcode

Re-queue a video whose transcode failed. Only works on assets in a failed state.

输入参数asset_id必填

regenerate_schedule

Regenerate schedule

Rebuild the channel's schedule now using the current weights. Call this after changing weights on a channel that is ALREADY live, otherwise the change will not air until the hourly cron. Throttled to one call per channel per 5 minutes; exceeding that returns 429 with a Retry-After header giving the seconds remaining. Requires the channel to meet launch requirements.

输入参数channel_id必填

get_schedule

Get schedule

Read the channel's EPG — what is playing and what is coming up. Note this one returns a plain array of entries (unlike other tools, which return an object).

输入参数channel_id必填

get_schedule_rules

Get schedule rules

Read the channel's declarative schedule rules (fixed time slots and dayparts), plus its scheduling mode and timezone.

输入参数channel_id必填

validate_schedule_rules

Validate schedule rules

DRY-RUN a ruleset. Saves nothing. Returns {valid, errors, warnings, preview} where preview is a simulated 24h grid of what would actually air. Intended as the dry run for set_schedule_rules: rules are wall-clock, slots start on-or-after their time, and dayparts reweight the random fill, so the airing result is hard to predict from the rules alone. Unlike set_schedule_rules this is not tier-gated and works on any tier. Same payload as set_schedule_rules.

输入参数hoursrules必填timezonechannel_id必填

set_schedule_rules

Set schedule rules

Give the channel a durable schedule: fixed slots ("news at 18:00") and dayparts ("no kids content after 22:00"). The scheduler re-honours these on EVERY rebuild, so you set them once instead of babysitting the grid. **Pro tier or higher.** This REPLACES the entire ruleset — send every rule you want, not just new ones. Sending an empty array removes all rules and returns the channel to plain weighted-random. Validate first with validate_schedule_rules. Rule shapes: time_slot {rule_type:'time_slot', start_time:'18:00', end_time?:'21:00', days_mask:127, selector_type:'asset'|'tag'|'playlist', selector_value:<id|tag|[ids]>, priority?:0} daypart_weight {rule_type:'daypart_weight', start_time:'22:00', end_time:'06:00', days_mask:127, selector_type:'asset'|'tag', selector_value:..., weight_multiplier:0-10} days_mask is a bitmask: bit0=Mon … bit6=Sun. 127=daily, 31=Mon-Fri, 96=weekend. end_time on a time_slot makes it a BLOCK that keeps drawing from the selector until that time — that is how you get 'cartoons 06:00-09:00' rather than one cartoon. selector_type 'playlist' with an array of asset ids plays them IN ORDER. weight_multiplier 0 removes matching assets from that window entirely. Set `timezone` (IANA) or the times mean UTC, which is almost never what the owner meant. Slots start ON-OR-AFTER their time: the programme running into a slot is never cut short, so an 18:00 slot may begin at 18:02. That is intended.

输入参数rules必填timezonechannel_id必填

版本历史

1
  1. v1.1.0最新Sep 16, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。