如何以最小成本开发将YouTube链接转MP3的Telegram机器人(Python)
低成本实现Telegram YouTube转MP3机器人方案
核心技术选型(全免费工具)
- Telegram机器人框架:使用
python-telegram-bot,轻量易上手,文档完善且完全免费。 - YouTube解析与转码:采用
yt-dlp,作为youtube-dl的活跃分支,支持直接提取YouTube音频流并转成MP3,无需额外转码工具,免费且维护更新及时。 - 部署平台:选择Replit免费层,支持长期运行Python项目,每月免费额度足够小流量机器人使用;测试阶段也可使用Google Colab后台运行(需保持窗口活跃)。
实现步骤
创建Telegram机器人
- 打开Telegram搜索@BotFather,发送
/newbot,按提示设置机器人名称和用户名,最终获取API Token并保存。
- 打开Telegram搜索@BotFather,发送
编写核心代码
先在项目终端安装依赖:pip install python-telegram-bot yt-dlp核心逻辑代码示例:
from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes import yt_dlp import os # 替换为你的机器人API Token BOT_TOKEN = "你的API_TOKEN" async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): await update.message.reply_text("发我YouTube链接,我帮你转成MP3!") async def convert_to_mp3(update: Update, context: ContextTypes.DEFAULT_TYPE): url = update.message.text # yt-dlp配置:提取最高质量音频并转MP3 ydl_opts = { 'format': 'bestaudio/best', 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }], 'outtmpl': '%(title)s.%(ext)s', 'quiet': True } try: with yt_dlp.YoutubeDL(ydl_opts) as ydl: info = ydl.extract_info(url, download=True) filename = f"{info['title']}.mp3" await update.message.reply_audio(audio=open(filename, 'rb')) # 发送后删除本地文件节省空间 os.remove(filename) except Exception as e: await update.message.reply_text(f"转换失败:{str(e)}") if __name__ == '__main__': app = ApplicationBuilder().token(BOT_TOKEN).build() app.add_handler(CommandHandler("start", start)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, convert_to_mp3)) app.run_polling()注:在Replit环境中需将代码放入
main.py,开启"Always On"功能(免费层每月有一定免费时长)。部署运行
- 在Replit新建Python项目,粘贴代码并替换API Token,安装依赖后点击"Run"启动机器人。
- 发送测试YouTube链接,确认能正常返回MP3文件即可。
成本说明
所有工具与平台均为免费使用,只要流量不超过免费层限制(Replit免费额度足够个人或小范围使用),无需任何费用。后续若流量增大,可升级Replit基础付费套餐,每月仅需几美元,成本极低。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

