摘要

一句话总结 作者利用 Gemini 的长上下文处理能力,成功分析了 14 万行混淆的 JS 代码,找出了某视频网站快速生成视频缩略图的底层实现原理。

关键点

  • 背景起因:作者发现某视频工具网站生成视频缩略图的速度极快,想探究其实现方式(作者以往经验是使用耗时较长的 ffmpeg)。
  • 分析难点:目标网站的主 JS 文件经过混淆,代码量高达 14 万行,常规的关键字(如 ffmpeg)搜索毫无收获。
  • 解决方案:借助 Gemini 的长上下文窗口(最高支持 200 万 Tokens),将 14 万行代码(约 168 万 Tokens)直接粘贴输入。
  • 提示词设计:要求模型找到生成视频缩略图的相关函数,解释其实现原理,并模仿实现一个简化版代码。
  • 执行耗时:模型运行大约花费了 4 分钟。
  • 分析结果:Gemini 成功定位到目标函数并给出了原理解释与简化代码。
  • 技术真相:该网站并非基于 ffmpeg,而是利用 Canvas 绘制来实现快速生成缩略图。
  • 核心结论:长上下文大语言模型在分析超长代码文件时具有显著优势。

正文

前几天测试一个视频工具网站,发现它生成视频缩略图的速度特别快,因为我以前也做过,是基于 ffmpeg 命令行生成的,网页也能执行,但是耗时比较长一点,我就好奇它是怎么实现的,于是就去看它的 js 代码,但是混淆后代码文件太长了,主文件达到了 14 万行代码,尝试用各种 ffmpeg 关键字去分析一无所获。

今天突然想到 Gemini 上下文长度很长,也许可以,于是将 14 万行代码复制粘贴进去,168 万 Tokens!不过 Gemini 最高可以到 200 万 Tokens。

Image 1

提示词很简单,就是让它找到生成视频缩略图相关函数,并解释其实现原理,最后模仿着实现一个。

最后运行了大约 4 分钟时间,帮我找到了相关的函数,给出了解释,并实现了一个简化版代码,原来不是基于 ffmpeg 实现的,而是基于 Canvas 画上去的,难怪之前一直没找到代码。

Image 2Image 3

长上下文在分析长代码上还是蛮有优势的。

关联主题