You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Telegram API能否以编程方式发起频道视频直播?

Telegram API 频道直播功能实现说明

Telegram API 本身完全支持频道发起、预约视频直播的相关操作,你在Telethon中未找到对应方法,是因为这类较新的高阶场景Telethon没有做上层工具类封装,你可以直接调用Telegram原生MTProto方法实现,无需依赖第三方封装。

核心实现方法

  • 发起即时视频直播:调用原生方法phone.createGroupCall,传入参数stream_video=True标识为视频直播,rtmp_stream=True开启RTMP推流模式,即可获得标准推流地址对接推流工具,参数peer传入对应频道的peer对象即可。
  • 预约视频直播:调用上述方法时额外传入schedule_date参数,值为你要预约的Unix时间戳(需晚于当前时间30秒以上)即可完成预约。
  • 配套直播操作:直播创建后可通过phone.getGroupCallStreamRtmpUrl获取推流地址与密钥,也可调用phone.toggleGroupCallRecord、phone.editGroupCallParticipant等原生方法实现直播录制、连麦管理、禁言等配套功能。

Telethon 调用示例

你可以通过Telethon内置的client.invoke()方法直接调用原生TL方法,参考代码如下:

from telethon import TelegramClient
from telethon.tl.functions.phone import CreateGroupCallRequest, GetGroupCallStreamRtmpUrlRequest
from telethon.tl.types import InputPeerChannel

# 初始化TelegramClient,替换为你的API信息
api_id = 123456
api_hash = '你的api_hash'
client = TelegramClient('session_name', api_id, api_hash)

async def start_channel_live(channel_username):
    await client.start()
    # 获取频道InputPeer对象
    channel = await client.get_input_entity(channel_username)
    # 发起即时视频直播
    group_call = await client.invoke(CreateGroupCallRequest(
        peer=channel,
        title='直播标题',
        stream_video=True,
        rtmp_stream=True
    ))
    # 获取RTMP推流信息
    rtmp_info = await client.invoke(GetGroupCallStreamRtmpUrlRequest(
        call=group_call.call,
        revoke=False
    ))
    print(f"推流地址:{rtmp_info.url}")
    print(f"推流密钥:{rtmp_info.key}")

# 调用示例,替换为你的频道用户名
with client:
    client.loop.run_until_complete(start_channel_live('@your_channel_username'))

选型说明

TlDB是Telegram API的会话数据持久化存储方案,和直播功能的实现逻辑没有直接关联,选型时只需根据你的会话数据存储需求判断即可,不会影响直播相关功能的实现。

注意事项

  • 操作账号必须为频道管理员,且拥有发起直播的相关权限
  • 首次调用前建议先在Telegram客户端手动完成一次直播发起操作,确认账号无功能限制

内容的提问来源于stack exchange,提问作者Alex Vaisberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:45:03