使用豆包多模态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日于上海,周三。

相关推荐
美酒没故事°1 天前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
AI攻城狮1 天前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
鸿乃江边鸟1 天前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
lpfasd1231 天前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
俞凡1 天前
DevOps 2.0:智能体如何接管故障修复和基础设施维护
人工智能
comedate1 天前
[OpenClaw] GLM 5 关于电影 - 人工智能 - 的思考
人工智能·电影评价
财迅通Ai1 天前
6000万吨产能承压 卫星化学迎来战略窗口期
大数据·人工智能·物联网·卫星化学
liliangcsdn1 天前
Agent Memory智能体记忆系统的示例分析
数据库·人工智能·全文检索
GISer_Jing1 天前
Page-agent MCP结构
前端·人工智能