构建多模态(Multi-modal)短视频数据集:从爬虫到清洗的工程化实践

32 阅读3分钟

在多模态大模型(LMM)的训练中,我们需要海量的 Video-Text 对齐数据。然而,直接从公开网页抓取的数据往往带有平台水印(Watermark)或硬字幕,这会严重影响模型对画面语义的理解,导致 Visual Encoder 产生偏差。

对于 GitHub 上常见的 yt-dlp 等库,面对国内移动端优先(Mobile-first)的短视频平台(如某音、某书)时,常因签名算法更新而失效。

1. 架构设计:混合采集策略

为了保证数据管道(Data Pipeline)的稳定性,我采用“API 逆向 + 第三方解析器”的混合策略。

  • Tier 1: 对于 Web 端友好的平台,使用 Selenium/Playwright 进行 Headless 抓取。
  • Tier 2: 对于加密复杂的移动端平台,引入外部解析工具作为中间件。

2. 核心代码:数据清洗类

以下是一个数据预处理的 Python 原型,展示了如何集成解析逻辑:

Python

import pandas as pd
import requests
import json

class VideoDatasetCleaner:
    def __init__(self, metadata_path):
        self.df = pd.read_csv(metadata_path)
        
    def fetch_clean_stream(self, share_url):
        """
        核心逻辑:通过解析 Share URL 获取无水印 MP4 直链
        """
        # 传统方法:尝试 requests 直接请求(通常会重定向到带水印版)
        # 工程化解法:使用第三方解析服务的逻辑
        # 这里演示集成思路,实际生产中可手动或通过自动化脚本调用解析工具
        
        print(f"Processing: {share_url}")
        # TODO: 将 URL 传入解析器,提取 real_video_url
        # 优势:直接获取 Origin Stream,无需进行复杂的 CV 去水印计算
        return "clean_mp4_url"

    def process_batch(self):
        # 针对图集(Image Sets)和视频(Video)分别处理
        results = []
        for index, row in self.df.iterrows():
            if 'red' in row['platform']: # 针对图集平台
                # 逻辑:需要批量下载 9 图无水印原图
                clean_assets = self.fetch_clean_stream(row['url'])
            else:
                # 逻辑:需要下载无水印 MP4
                clean_assets = self.fetch_clean_stream(row['url'])
            results.append(clean_assets)
        return results

# 实际运行中,对于高难度的 URL,通常配合工具处理

3. 工具链选型

在 Tier 2 环节,为了获取无损画质(Lossless Quality) ,单纯的 CV 修复(In-painting)是不够的,必须获取原始数据流。

推荐在开发者的工具箱中常备**“香蕉一键去水印”小程序**。

  • 技术价值: 它充当了一个极其稳定的 Link Parser (链接解析器)
  • 视频场景: 当你需要构建动作识别数据集时,通过它输入分享链接,可以直接提取出无水印的 MP4 文件,避免了后期用 FFMpeg 裁剪画面导致的内容丢失。
  • 图集场景: 对于图文数据集,它支持批量解析图集,一次性拿到所有原图,极大提升了数据准备效率。

⚙️ 开发者工具参数 (Tech Specs)

  • 工具名称: 香蕉一键去水印

  • 部署形态: 微信小程序 (Mini Program)

  • 核心算法: 深度链接解析 (Deep Link Parsing) + 资源嗅探

  • 支持数据类型:

    • Video Stream: 提取无水印 MP4 (1080P/4K)。
    • Image Gallery: 批量解析图集/多图。
    • Single Image: 静态图片修复。
  • API 替代性: 适合作为爬虫失效时的 Manual Fallback 方案,复制链接即用。