使用豆包多模态API(doubao-seed-1-8模型)分析小红书视频内容pyhton代码

爬虫任务

有一个爬取小红书上视频内容并且分析的任务,下面是一个简单可以运行的demo。

注意加载环境变量,这里的.env表示读取相同路径下.env里面的ARK_API_KEY

c 复制代码
import os
from volcenginesdkarkruntime import Ark
from dotenv import load_dotenv

# 加载环境变量
env_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(env_path)

# 初始化豆包客户端
client = Ark(
    base_url='https://ark.cn-beijing.volces.com/api/v3',
    api_key=os.getenv('ARK_API_KEY'),
)

# 测试视频URL
video_url = "http://sns-video-hs.xhscdn.com/stream/1/110/259/01e95ce6da070f66010370039b92e65e08_259.mp4"

response = client.responses.create(
    model="doubao-seed-1-8-251228",
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_video",
                    "video_url": video_url,
                    "fps": 1
                },
                {
                    "type": "input_text",
                    "text": "请详细描述这个视频的内容。"
                }
            ],
        }
    ]
)

print("=" * 80)
print("响应对象类型:", type(response))
print("=" * 80)
print("\n响应对象属性:")
for attr in dir(response):
    if not attr.startswith('_'):
        try:
            value = getattr(response, attr)
            if not callable(value):
                print(f"  {attr}: {type(value).__name__} = {value}")
        except:
            pass

print("\n" + "=" * 80)
print("response.output 结构:")
print("=" * 80)
if hasattr(response, 'output') and response.output:
    print(f"output 类型: {type(response.output)}")
    print(f"output 长度: {len(response.output)}")
    
    for i, item in enumerate(response.output):
        print(f"\noutput[{i}] 类型: {type(item)}")
        print(f"output[{i}] 属性:")
        for attr in dir(item):
            if not attr.startswith('_'):
                try:
                    value = getattr(item, attr)
                    if not callable(value):
                        print(f"    {attr}: {type(value).__name__} = {value}")
                except:
                    pass
        
        if hasattr(item, 'content') and item.content:
            print(f"\n  content 类型: {type(item.content)}")
            print(f"  content 长度: {len(item.content)}")
            for j, content_item in enumerate(item.content):
                print(f"\n  content[{j}] 类型: {type(content_item)}")
                print(f"  content[{j}] 属性:")
                for attr in dir(content_item):
                    if not attr.startswith('_'):
                        try:
                            value = getattr(content_item, attr)
                            if not callable(value):
                                print(f"      {attr}: {type(value).__name__} = {value}")
                        except:
                            pass
else:
    print("response.output 为空或不存在")

print("\n" + "=" * 80)
print("尝试提取文本:")
print("=" * 80)
try:
    if response.output and len(response.output) > 0:
        output_msg = response.output[0]
        if hasattr(output_msg, 'content') and output_msg.content:
            for content in output_msg.content:
                if hasattr(content, 'text'):
                    print(f"找到文本: {content.text[:200]}...")
                    break
except Exception as e:
    print(f"提取失败: {e}")

提取的内容为:

output[1] 类型: <class 'volcenginesdkarkruntime.types.responses.response_output_message.ResponseOutputMessage'>

output[1] 属性:

content: list = [ResponseOutputText(type='output_text', text='这个视频是小红书平台的趣味内容,围绕"图书馆的桌子怎么搬进来"展开,内容分段如下:\n\n0-4秒:画面呈现图书馆学习区域,前景是摆满学习用品的桌面------写有笔记的本子、黄色边框平板、咖啡杯、卡通图案笔筒、白色鼠标等,背景有一位女生在整理物品;配文和顶部标题接连抛出疑问:"你们说图书馆这么多张桌子""真的是一张一张搬进来的吗?""图书馆这么多桌子咋搬进来的"。\n\n5-6秒:切换到评论区,展示第一条网友评论:"不学你就回宿舍",发布地为山东,获2091个赞,可展开81条回复,下方同步配有对应字幕。\n\n7-9秒:展示第二条评论:"不想学把手机电脑平板充满电就回宿舍吧"(附带彩虹表情),发布地为上海,获5.4万赞,可展开625条回复;中间插入吐舌头的猫猫表情包,配文字"嘿嘿嘿",呼应评论的调侃语气。\n\n10-13秒:展示第三条评论:"宿舍门这么小 床又是怎么搬进来的"(搭配带问号的白色小人表情包),发布地为广东,获2164个赞;下方还有一条搞笑回复:"床小时候搬进来的",延续趣味调侃的风格。\n\n14-17秒:展示第四条评论:"搬一个,然后啃臭加v啃臭加c复制粘贴",是电脑快捷键"Ctrl+C、Ctrl+V"的谐音梗,发布地为湖北,获2442个赞,可展开46条回复;最后画面是两个紧挨的仓鼠脸表情包,右上角配有红色问号图案,为视频收尾,强化搞笑氛围。\n\n整个视频通过"提出疑问+展示神评论"的形式,借网友的幽默回复制造笑点,风格轻松有趣。', annotations=None)]

id: str = msg_02176839283688100000000000000000000ffffac1531daa551d8

model_computed_fields: dict = {}

model_config: dict = {'extra': 'allow', 'defer_build': True, 'protected_namespaces': ()}

model_extra: dict = {}

后记

2026年1月14日于上海,周三。

相关推荐
Sinokap2 小时前
Gemini 3 Flash:在速度、成本与前沿智能之间的平衡
大数据·人工智能
波动几何2 小时前
强制联网:当AI助手沦为搜索引擎的“提线木偶”
人工智能
格林威2 小时前
工业零件表面粗糙度评估:非接触式测量的 7 项核心技术,附 OpenCV+Halcon 实战代码!
人工智能·深度学习·数码相机·opencv·机器学习·计算机视觉·视觉检测
CoookeCola2 小时前
新一代 AI 模型与多模态 Agent 项目(2026/01/14近期)
人工智能·计算机视觉·ai作画·开源·音视频
阿标在干嘛2 小时前
从“信息平台”到“决策模拟器”:科技大数据服务的下一站猜想
人工智能·科技
JicasdC123asd2 小时前
YOLO11-C2TSSA-DYT-Mona-EDFFN改进模型_基于深度学习的起重机与吊载物检测识别研究
人工智能·深度学习
Jing_jing_X2 小时前
从本地 Demo 到私有化部署:AI 应用开发环境的正确打开方式
人工智能
智慧医院运行管理解决方案专家2 小时前
平安医院 智守心安 | AI智能巡逻机器人 全时域守护日志
人工智能·机器人
I'm Salted Fish2 小时前
基于LLaMA-Factory大语言模型微调实战-训练一个属于自己的大模型
人工智能·语言模型·llama