Skip to content

huangkun1985/youtube-comments

Repository files navigation

YouTube 舆情分析工具

一套以 Python 打造的 YouTube 评论采集与舆情分析项目, 提供命令列工作流与 Streamlit Web UI,支持:

  • 一键抓取指定影片的评论(含回覆)
  • 轻量关键字/情感统计 + Top 留言展示
  • Google/DeepSeek API 加持的翻译与高阶综述
  • 美观的仪表板式界面,可下载文字与 JSON 报告

目录结构

.
├── analyze_comments.py      # 核心分析逻辑(CLI 用)
├── deepseek_client.py       # DeepSeek Chat API 封装
├── fetch_youtube_comments.py# 调用 YouTube Data API 抓取评论
├── ui_app.py                # Streamlit 仪表板入口
├── comments_*.json          # 示例数据或你抓到的评论文件
└── README.md

先决条件

组件 说明
Python 3.9+ 建议使用 venv/conda, 避免污染系统环境
YouTube Data API v3 Key Google Cloud Console 建项目启用 API,复制 key
DeepSeek API Key (可选) 用于高阶摘要,如无可关闭该功能

环境安装

# 1. (可选)创建虚拟环境
python -m venv .venv
source .venv/bin/activate        # Windows: .\.venv\Scripts\activate

# 2. 安装依赖
pip install streamlit requests pandas altair deep-translator

如果要启用 DeepSeek,需要 requests 即可;deep-translator 用于自动翻译非中文留言。


设置机密信息

# YouTube Data API
setx YOUTUBE_API_KEY "AIza..."

# DeepSeek API(使用仪表板或 CLI --deepseek 时必需)
setx DEEPSEEK_API_KEY "sk-..."
  • setx 写入使用者环境变量;设完需重新开终端。也可以直接在当次命令前设置 Env: 变量。

命令列工作流

  1. 抓取评论

    # 可用 env 覆盖 VIDEO_ID / OUTPUT_PATH
    $Env:VIDEO_ID = "nMsVhGy8LOM"
    python fetch_youtube_comments.py

    生成 comments_<videoId>.json

  2. 离线分析

    python analyze_comments.py comments_<videoId>.json --deepseek --translate-all
    • --deepseek:启用高阶摘要
    • --translate-all:运行前先翻译全部留言,默认只在热门列表中翻译

Streamlit UI

streamlit run ui_app.py

功能分为两个分页:

  1. 抓取留言
    • 输入 YouTube API Key、影片 ID、抓取页数与排序
    • 点击「开始抓取」→ 显示结果量并可下载 JSON
  2. 分析资料
    • 上传 JSON 或勾选「使用上一步抓取的数据」
    • 可选翻译、DeepSeek 分析
    • 输出统计卡片、图表、热门留言卡、DeepSeek 风险/主题/追问
    • 支持下载文字报告与 DeepSeek JSON

界面默认采用浅色卡片主题,可在 ui_app.py 内自订 CSS 或配色。


深度定制

  • analyze_comments.py 顶部的 KEYWORD_BUCKETSPOSITIVE_WORDS 等可自行扩展
  • deepseek_client.py 的 prompt 模板可根据行业需求调整
  • 如需批量分析多支影片,可写简单脚本循环调用 fetch_...analyze_...

部署到 GitHub 的建议步骤

  1. 确认敏感资讯未写入源码(API key、JSON 数据等)
  2. 初始化 Git 仓库:
    git init
    git add *.py README.md
    git commit -m "feat: youtube sentiment dashboard"
  3. (可选)加入示例截图与 .gitignore(例如忽略 comments_*.json.venv/
  4. 推送到 GitHub:
    git remote add origin https://github.com/<user>/<repo>.git
    git push -u origin main
  5. 在 README 中附上截图/示例分析结果,方便读者快速了解。

版权与二次开发

  • 仅供学习与内部舆情监测用途,若要对外提供服务,请确认 YouTube / DeepSeek API 合约
  • 欢迎根据需要添加可视化、批次任务、数据库存储等功能

如果你在部署或扩展过程中需要更多协助,随时开 Issue 或留言。祝分析顺利!

About

youtube-comments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages