Ice Motion Director
安装

Spotify 概念广告

从提示词到交付的短片,看它是怎样用 Ice Motion Director 做出来的。

非官方概念作品,与 Spotify 无关

短片

提示词

给 Spotify 做一支广告,时长 35 秒到 1 分钟,要阿拉伯语版和英语版。

显示原文,与输入时完全一致(阿拉伯语)

译自阿拉伯语。

اعمل إعلان لسبوتيفاي، مدته من 35 ثانية لدقيقة، ونسخة عربي ونسخة إنجليزي.

短片类型
品牌短片
路线
film
运行方式
一句提示词(自动模式)
规模
标准
发布日期
2026年10月21日

交付内容

  • 英语、16:9、0:35

制作方式

智能体
Claude Code 2.1.303 (desktop app)
模型
claude-opus-5-5
推理强度
xhigh
子智能体
A director session, research agents, concept and stage critics, rework and verify critics, picture and sound critics, a cold viewer for the clarity read, the stage approver and a sound designer
制作日期
2026年10月20日 至 2026年10月21日
从需求到交付
31 小时 36 分钟
实际工作时间
15 小时 43 分钟
Token
共 12.5亿,其中输出 363.6万
按 API 计费
US$565.98

本片用 Claude Code 订阅制作,没有按 token 计费。按 API 计费是指同样的 token 按 2026年10月31日 的 Anthropic API 标价(Claude API 价格页)、使用同样的提示缓存时的费用。从需求到交付指从第一条提示到交付影片;实际工作时间不含等待回复和因用量上限暂停的时间。交付后的工作,例如导出案例研究和网站翻译,未计入。

一路走来

运行的真实经过,一步一步,从提示词到交付,按运行本身的时间。

  1. 提示词

    深夜的一句话:一条 Spotify 广告,35 秒到一分钟,阿拉伯语和英语各一版。委托人去睡觉前说别因为问题停下来,于是这次运行全程自动,每个决定都经过研究,并记录了理由和来源。

  2. Draft 3

    第一次看到成果。智能体自己指出了薄弱之处:最后 8 秒静止空洞,Top result 卡片还是灰色占位,混音没做完。委托人认可了视觉风格,并把范围从六个版本砍到一个:英语、16:9、完整版。

  3. Draft 14

    黑色结尾卡,官方标志落在 33.5 秒的最后一击上。委托人听过声音后批准。以 1920 x 1080 进行最终渲染,完成最后一轮审核、交付和这份案例研究。

Ice 问了什么

  1. 品牌归属与素材

    b) 不是品牌方:非官方概念作品(默认值,用户说不用问)

    推荐的默认项

  2. 声音来源

    a) 每句话都在画面上,由音乐带动(默认值,没有获准使用的人声来源)

    推荐的默认项

  3. 心中的画面

    a) 提几个创意(默认值)

    推荐的默认项

  4. 平台

    YouTube 和社交信息流,外加作品展示页(决策 D-06)

    推荐的默认项

提供了什么

  • 简报部分

    已填写:目标、受众、平台与画幅比例、信息、行动号召、必须包含的内容、缺少商业用途说明

  • 品牌套件(仅标志)部分

    已填写:带角色分工的配色、缺少字体和图像风格(由 ice-assets 根据 Spotify 官网和品牌规范补齐)

逐阶段看工作流

从简报到交付的全部十个阶段:每个阶段决定了什么、为什么,产出了什么,评审轮次,以及参与的角色。

  1. 阶段 01,简报

    未记录用时

    角色用户审批人评审调研员

    需求接收、调研 R-01 至 R-08、合规、事实清单、品牌素材;审批人第二轮判定 PASS(ice/review/stages/01-approver.md)

    决策

    • D-01 第 01 阶段问还是不问

      • A选定
      • - A:不发任何消息
      • 每个字段都取默认值并记一条 D 条目(依据:questions.md 第 5 节的“别问”信号)
      理由及来源

      用户自己的话就是“别问”信号;于是路由技能的停顿表里一个停顿也没有(第 01 阶段不发消息,预览也不需审批)。

      来源: brief slot mode (router; user signal quoted); ice-motion-director/SKILL.md section 3.3 and section 5 "Stops"; ice-direction/references/questions.md section 5

    • D-02 品牌归属

      • B选定
      • - A:我就是品牌方:用官方素材做成官方短片
      理由及来源

      运行条件里已写明,也和固定默认值一致;不放应用商店徽章、优惠、价格,也不写品牌官网目前没有的说法。

      来源: run conditions (quoted); ice-direction/references/questions.md section 2 fixed option set; ice-assets/references/brand-authenticity.md section 10 steps 1 and 10

    • D-04 商业用途

      • A选定
      • - A:未知:绝不打开非商用文件夹(未回答时的默认值)
      理由及来源

      用户没有说明;“未知”会关掉所有仅限非商用的来源,这没有任何代价,因为技能里许可宽松的参考资料覆盖了同样的范围。

      来源: ice-film/SKILL.md section 8; ice-direction/references/intake-and-brief.md section 1 slot commercial_use

    • D-05 市场(暂定,供调研用)

      • A选定
      • - A:阿拉伯语版面向埃及及更广的阿拉伯世界(MENA)
      • 英语版面向全球(依据:提示词的语言和方言)
      理由及来源

      用户自己的方言指向埃及;一支面向泛阿拉伯流媒体受众的阿拉伯语短片,只要屏幕文字是清晰的阿拉伯语,在整个 MENA 都能看懂;英语版服务作品展示的全球观众。调研查询使用的市场为 "Egypt"、"MENA" 和 "global"。

      来源: brief slots language and market (prompt); ice-direction/references/intake-and-brief.md section 1 ("market: infer from language and brand")

    • D-06 平台(暂定,供调研用)

      • A选定
      • - A:YouTube 和社交信息流(Instagram
      • TikTok
      • YouTube Shorts)
      • 外加公开作品展示页(依据:运行条件“公开作品展示”
      • 时长范围)
      理由及来源

      一支放在作品展示里的 35 到 60 秒广告,会在网页和 YouTube 上观看(横屏);同一支短片最常被二次用在信息流里(竖屏)。调研查询使用的平台词为 "YouTube"、"Instagram"、"TikTok"。最终比例在 03 阶段根据短片类型的交付物确定。

      来源: run conditions ("public gallery"); brief slot duration (prompt); ice-direction/references/intake-and-brief.md section 1 ("platform: infer")

    • D-08 规模与团队

      • A选定
      • - A:规模 standard(7 到 60 秒,含各版本)
      • 团队 Full:时长档 Standard(21 到 45 秒)或 Full(超过 45 秒),每个标记再上调一档:两个语言版本
      • 以 90% 还原度重建真实品牌的界面
      • 不止一个母版画幅分别构图(16:9 和 9:16 重新排版)。上限为 Full
      理由及来源

      film-setup.md 的规则是每个标记上调一档、最高到 Full;有两种语言加重新排版的画幅,这次运行有 12 到 20 次派发,每个母版每轮一名评审,每个母版最多 3 轮短片审核。规模保持 standard,因为路由技能规定,7 到 60 秒短片的语言版本和精简版仍算 Standard。

      来源: brief slots duration and language (prompt); ice-motion-director/SKILL.md section 4; ice-film/references/film-setup.md section 2

    • D-09 目标与受众

      • A选定
      • - A:目标“打开 Spotify,为你此刻的状态放点什么”
      • 两个版本的受众都是在手机信息流里的 18 到 34 岁人群(一开始常常静音),英语版另加用笔记本看作品展示的观众(依据:R-02 S-17 和 S-15 关于埃及免费收听和流量门槛的资料
      • R-01 S-15 至 S-19 关于 Spotify 自己以个人收听时刻为主题的广告活动
      • D-06 平台)
      理由及来源

      一支非官方概念作品唯一能诚实提出的行动就是“放点什么”;这也正是 Spotify 自己链接文案里的动作("PLAY ON SPOTIFY"、"LISTEN ON SPOTIFY",R-01 S-02)。信息流里常常静音观看,所以每句话都放在画面上(D-03)。

      来源: brief slots platform (D-06), real_brand (prompt); R-01 (2026-10-20) S-02, S-15 to S-19; R-02 (2026-10-20) S-06, S-15, S-17

    • D-10 画幅比例与交付物

      • A选定
      • - A:每种语言一个 16:9 母版,9:16 和 1:1 从同一条时间线重新排版,每个版本再配一张海报静帧(依据:brand-film.md 的交付物
      • D-06)

      该类型的交付物清单正是这些,而 D-06 同时列出了横屏和竖屏的投放位置。精简版(15 秒、6 秒)在 03 阶段的 versions.md 里决定。

      来源: ice-film/references/film-types/brand-film.md Deliverables; D-06

    • D-11 阿拉伯语语言配置

      • A选定
      • - A:埃及(开罗)口语阿拉伯语,措辞讲究,和 Spotify 埃及官网的写法一致("اسمع موسيقى من غير حدود"، "هتدفع ... بس بعد كده")(依据:R-02 S-07
      • 提示词用埃及阿拉伯语写成)
      理由及来源

      dialect-profiles.md 第 1 节规定:文字少、没有人声的短片,在标准阿拉伯语和最可能的受众方言之间二选一;品牌在这个市场的阿拉伯语文案用的是埃及口语,用户写的也是埃及话。母语审读人默认是用户本人;签字确认在交付说明里保持待办(本次运行没有预览审批)。

      来源: R-02 (2026-10-20) S-07; prompt; ice-arabic/SKILL.md section 1; ice-arabic/references/dialect-profiles.md sections 1 and 2

    • D-12 心中的画面,以及对需求的分诊

      • A选定
      • - A:还没有,先提创意(该问题的固定默认值)
      • 分诊:讲法尚未成形,所以 02 阶段跑完整的概念轮(依据:questions.md 第 4 节默认值
      • intake-and-brief.md 第 4 节“给出事实和场合……但没有讲法的广告提示词……一律进入概念轮”)
      理由及来源

      提示词里有主题和约束,但没有讲法;技能规则把这类广告送进概念轮,未回答的问题取默认值。

      来源: prompt (quoted); ice/state.json questions[2]; ice-direction/references/questions.md sections 4 and 5; ice-direction/references/intake-and-brief.md section 4

    • D-16 第四个噪声源:用电镐代替电视雪花声

      • B选定
      • - A:喇叭
      • 电钻
      • 引擎
      • 电视雪花声(评审列出的)(依据:D-13-critic.md 修改 3)
      理由及来源

      电视雪花声在埃及日常里没有一个清楚的名词,声音也只是没有瞬态的嘶嘶声,撑不起反拍;电镐在开罗有个日常说法("تكسير",邻居装修),还有很硬的瞬态,正好做反拍(maqsum 里的 tak,直四拍里的军鼓)。它仍是机器或工具类声源,符合评审的规则。

      来源: ice/review/direction/D-13-critic.md fixes 3 and 4; ice/review/direction/D-13-consultant.md; ice/plan/script.md shot 1 and the Arabic dialect review

    • D-22 保留的默认套路元素及理由

      • A。理由:暗色动态文字开场就是概念本身(街头的噪声被写成文字,D-13 和 D-15),不是装饰;搜索框是 Spotify 真实截取的输入框,也是整支短片的转折点,而且答案现在整体落下,不再逐字输入(评审修改 4);薄荷色 #91EEDA 是 Spotify 自己 Premium 页面的点缀色,不是泛泛的“暗底配青色”。选定
      • - A:保留暗色动态文字开场和搜索框,并说明理由
      • 薄荷色作为 Premium 页面的点缀色保留(依据:D-15
      • TRUTH F1)

      来源: D-17-critic.md (default kit count 3, fix 4); anti-sameness.md section 6

    • D-24 片尾卡底色

      • A选定
      • - A:绿色标志放在纯 #000000 上,处于一个比其留白区更宽的椭圆区域内
      • 区域外的黑色降到 86%,让昏暗的街道和灯光透出来(带纹理的背景)
      • 标志下方的搜索框(第二层)
      • 画面四角靠近镜头处有两三盏失焦的车道灯在缓缓漂移(前景)(依据:R-01 S-02 黑底绿标规则
      • composition-and-staging.md 第 7.2 节)
      理由及来源

      绿色标志是 Spotify 的主配色,也是继播放圆钮之后片中唯一的绿色,所以应该由它收尾;让它自己的区域保持纯黑,满足标志规范,周围画面又保住了街道的纹理和纵深;B 放弃了绿色;C 达不到下限。

      来源: R-01 (2026-10-20) S-02; ice/review/stages/05-approver.md item 1; ice-motion/references/composition-and-staging.md section 7.2

    • D-25 阿拉伯语旋律轨道的词序

      • A选定
      • - A:词按阅读顺序排列:"حاجة" 在最右边的旋律格
      • "دي" 在最左边
      • 这样轨道从右往左读是对的,而播放头从左往右依次点亮(依据:时间线的第 11 条规则
      • letterforms-in-motion.md 第 6 节关于词的阅读顺序)
      理由及来源

      词是用来读的,时间线不是;A 两条规则都守住了。旋律音符仍从左往右播放;配乐并不唱出这些词,所以不会丢失词与音符的同步。

      来源: ice-arabic/SKILL.md section 2 rule 11; ice-arabic/references/letterforms-in-motion.md section 6; ice/review/stages/05-approver.md item 2

    • D-26 重建界面中阿拉伯语字符串的字号

      • A选定
      • - A:界面字符串按截图原本的比例(阿拉伯语与拉丁文同字号,和 Spotify 阿拉伯语网页播放器的设置一致)
      • 短片自己的文字(噪声词、轨道词、手绘那句、卡片标题)保持 D-19 的 1.35(依据:07 阶段在截图上的测量:阿拉伯语占位文字在 474 px 的输入框里宽 128 px,"أفضل النتائج" 在 388 px 的卡片上宽 121 px
      • 按 1.35 重建后测得 175 px 和 162 px,按 1.0 测得 130 px 和 121 px)
      理由及来源

      在重建的界面里,截图说了算(第 11.1 节);Spotify 自己在那里就是让阿拉伯语和拉丁文同字号,而 IBM Plex Sans Arabic 在这个字号下与截图的墨迹宽度相差不到 2%。D-19 的理由(同字号下阿拉伯语看起来明显比拉丁文小)针对的是短片自己的文字,那部分仍保持 1.35。答案依然清晰可读:16:9 母版里 40 px,9:16 里 37 px。

      来源: ice/review/ui-fidelity/sheet-ar.png; film/js/ui.js (uts); D-19

    • D-28 只做一个版本:英语,16:9(委托人的决定)

      • B选定
      • - A:交付原计划的六支短片(依据:提示词和 D-10)
      理由及来源

      委托人(Omar)在运行中途缩小了范围,原话是:"منا مش عايز غير نسخة واحدة فقط لا غير. انجليزي و 16:9 عجبتني ووافقت عليها ... هي نسخة واحدة كاملة من كل شيئ حتى الميوزك والساوند ايفكت وغيره"(我只要一个版本,别的都不要;英语、16:9,我喜欢,已经通过了;就是一个什么都齐全的完整版本,包括音乐和音效)。他看了 ice/renders/draft-3-en.mp4,通过了它的故事、场景顺序、视觉风格和节奏;之后只允许修改两处:静止、空荡的最后 8 秒,以及灰色占位的 Top result 卡片。用户最新的明确意见优先于之前的意见(ice-film SKILL.md)。

    • D-40 画面里的堵车更密(意见 2)

      • A选定
      • - A:在远车道加第二排堵车(三辆轿车和面包车停在主角车的上方和后方,略小一些以表现纵深),摩托车在远车道上往前挪到这一排和施工区之间,宽景画面调整位置以容纳两排车
      • 从 drop 开始,堵车的喇叭短促音在全部七辆车之间轮转,每下一辆车(依据:七辆车叠成两排,在机器所需的同一宽度里一眼就能看出是堵车)

      只有第二排才能在同样的画面里放进更多车;让短促音在七辆车之间轮转,与声音一致,声音本来就是每下一辆车(08a 对 draft-9 的备注)。

      来源: D-38; film/js2/street.js (JAM, order); ice/plan/cue-sheet.json (music.jam)

    • D-42 峰值限制不超过 6 dB(意见 4)

      • A选定
      • - A:把配乐本身的峰值做小,而不是靠限制器压(drop 冲击和底鼓的瞬态更柔和,堵车短促音避开贝斯峰值,进总线前轻度饱和),交付配乐时留出真峰值余量,让母带处理只需少量增益,并测量从未限制的总线到最终母带的总峰值削减,不超过 6 dB(依据:刺耳来自限制器用力过猛
      • 峰值因数越小,需要的限制就越少)

      它保住了响度目标,并从源头上去掉了问题。

      来源: D-38; ice/audio/score.py (version 5); ice/audio/NOTES.md

    • D-47 委托人最终通过 draft-14(2026-10-21)

      • draft-14 是通过的剪辑版:最终渲染 1920x1080,英语,16:9,一个版本;随后交付(ice/renders/final/、ice/review/NOTE.md、一张 16:9 英语海报静帧)并导出案例研究。选定

      他的决定。它确认了标志在 33.5 秒落定并停留 1.5 秒(D-45;那个事先提醒的问题由他通过 draft-14 一并回答),也解除了“还没人听过”的保留意见:委托人听过声音了。

    • D-48 观众收获,在第 09 阶段补写(清晰度关卡)

      • (a):ice/plan/concepts.md 中所选概念下的 "## Viewer takeaway" 区块,引用如下:选定
      • - (a) 补写观众收获,只依据 02 阶段锁定、且早于第 3 次观看的文字,然后在交付的母版上做第 3 次盲看(依据:clarity-gate.md 第 2 节,观众收获是对已锁定概念的复述
      • 第 3 节,每次观看换一位新观众
      • 短片没有改动,D-47)
      理由及来源

      只有 (a) 是拿交付的短片去对照一个在观看前就定好的目标;(b) 让关卡没有经过检验,(c) 没有 Sells 或 Offer's job,会把观众的理解拿去对照屏幕上的文字,而不是对照概念。每个字段都是对第 3 次观看前已锁定文字的复述(出处见 concepts.md 中的括号);没有任何新内容,所以概念、短片及其通过(D-47)都不变。

      来源: ice/plan/concepts.md "Viewer takeaway"; D-13; D-30; TRUTH.md; BRIEF.md; ice-qa/references/clarity-gate.md sections 2 to 5

    本阶段产出

  2. 阶段 02,概念

    未记录用时

    角色评审顾问审批人

    概念 D-13(C2 加 C1 的转折点),结构 D-14(升降镜头上摇,带连锁反应);审批人第二轮判定 PASS

    决策

    • D-13 概念

      • C2(主体和主角)与 C1 原样问题(作为转折点)的组合,这是评审自己的建议,并已落实评审的五处修改(ice/plan/concepts.md)选定
      • - C1:一个问题
      • 7.77 亿个答案(主题世界)(依据:R-01 截图 "What do you want to play?"
      • R-02 S-01 的数据
      • R-07 的空白机会“界面即主舞台”)
      理由及来源

      C2 是唯一的 KEEP(7 分):一个创意,静音时从第 0 帧就能看懂,以打击乐为主的配乐在这一轮里最适合用代码实现;C1 的 Spotify 原样问题修补了 C2 失败的竞品替换测试。评审对胶囊框提出的阿拉伯语条件,已在 2026-10-20 截取 Spotify 自己的阿拉伯语搜索占位文字后满足。

      来源: ice/review/direction/D-13-options.md; R-01, R-02, R-06, R-07, R-08 (2026-10-20); COMPLIANCE.md; TRUTH.md (F1, Arabic interface strings)

    本阶段产出

    • 02-concepts.md

      提出的各个概念及最终选定的那个

      Concepts: spotify-concept-ad

      Runtime date: 2026-10-20. Stage 02. Decision: D-13 (ice/DIRECTION.md). Options file: ice/review/direction/D-13-options.md. Consultant: ice/review/direction/D-13-consultant.md. Critic: ice/review/direction/D-13-critic.md.

      The round (five pitches, one per path)

      ID · Path · Concept in one sentence · Critic

      C1 · Subject world · Spotify's search field asks "What do you want to play?" and a day answers it, each answer re-scoring the frame, until the field multiplies into 777 million answers · REVISE, 6

      阅读完整文件: 02-concepts.md
    • 02-TREATMENT.md

      交给构建阶段的创意阐述

      Treatment: spotify-concept-ad (The street plays along)

      Runtime date: 2026-10-20 Direction: D-17 (palette D-18, type D-19, sound D-20, motion D-21) Concept: D-13 (structure D-14, opening D-15)

      PAGE

      Problem: the city around you is loud with noise you did not choose: horns, drills, engines, the neighbour's renovation.

      Audience: 18 to 34, in Egypt and the Arab world (Arabic version) and worldwide (English version), on a phone feed that often starts muted, and gallery visitors on a laptop with sound.

      阅读完整文件: 02-TREATMENT.md
  3. 阶段 03,脚本

    未记录用时

    角色评审审批人

    英语和阿拉伯语脚本、各版本(6 支短片加海报)、开场钩子 C 加 A;审批人第二轮判定 PASS

    决策

    • D-03 声音来源

      • A选定
      • - A:每种语言的每句话都在画面上
      • 配音乐和音效
      • 没有人声(固定默认值)
      理由及来源

      没有获准使用的人声来源;路由技能的“暗示要人声、但没有人声来源”规则让短片留在 ice-film,由音乐带动。剪辑的搭法让日后可以加入人声而无需重剪。

      来源: run conditions (quoted); ice-motion-director/SKILL.md section 2 "Voice implied, no voice source"; ice-direction/references/questions.md section 2 fixed option set

    • D-14 结构

      • S-B,以 S-A 的连锁反应作为锁定机制(评审的组合方案),并采纳评审的五处修改:把选择展示出来(一个答案进入胶囊框并变成旋律轨道),连锁反应推动上升并不断加速,重要性预算 8 取 2、高潮在 67% 处,结尾短暂下降,收尾的胶囊框下方街道仍在演奏,用 2.5D 倾斜平面配正面广告牌来承载要读的文字选定
      • - S-A:逐行锁定(平面网格上的连锁反应)(依据:structure.md 第 2 节“连锁反应”
      • brand-film.md“叙事形态”)
      理由及来源

      S-B 是唯一的 KEEP(7 分):俯视揭示让“街道跟着演奏”成为字面上的画面,一个镜头到底也符合品牌短片“变换而不切镜”的原则;S-A 的连锁反应补上了镜头缺少的起因。

      来源: ice/review/direction/D-14-structure-options.md; ice/review/direction/D-14-critic.md; ice-film/references/structure.md sections 2 to 7; film-types/brand-film.md

    • D-15 开场(前 3 秒)

      • C,混入 A 中占主导的喇叭词,并采纳开场钩子评审的五处修改(ice/plan/hooks.md)选定
      • - A:文字主导
      • 一个巨大的噪声词砸满整个画面(依据:concept-menus.md 第 3 节“被画面边缘裁切的巨大文字”)
      理由及来源

      开场钩子评审给 C 的分数最高(REVISE 6),因为只有它的第一帧能让静音观众一眼读懂,还带着逐步升级、一路落到 5.0 秒喇叭声的走势;A 的裁切在阿拉伯语里是硬伤,B 在第 0 帧没有一个完整的词。

      来源: ice/plan/hooks.md; studies ice/renders/studies/opening-*.mp4 and ice/plan/hooks/opening-studies-sheet.png; ice/review/direction/D-15-critic.md

    本阶段产出

    • 03-structure.md

      结构

      Structure: spotify-concept-ad

      Runtime date: 2026-10-20. Stage 02. Decisions: concept D-13, structure D-14. Critic: ice/review/direction/D-14-critic.md.

      Film type: brand film (D-07), borrowing the app ad's real product moment (Spotify's search field).

      One claim (seven words or fewer, no conjunction): You choose what you play.

      (The treatment does not exist yet at 02; the claim and PAGE lines are taken from the chosen concept here and copied into ice/plan/TREATMENT.md at 05. See PILOT-NOTES, structure.md section 1 problem.)

      阅读完整文件: 03-structure.md
    • 03-script.md

      脚本

      Script: spotify-concept-ad (The street plays along)

      Mode: Write (no script supplied)

      Language and dialect: two versions. English (plain international, sentence case). Arabic: Egyptian (Cairo) spoken Arabic, polished register (D-11), every on-screen word in Arabic lettering except the Latin name "Spotify" and the English unofficial line (RD-02); transcreated, not translated.

      Length target: 49.0 s (the D-14 beat plan re-timed at 03 so the question and the answer each get about 3 s of reading hold, and extended at 04 so the Arabic end card holds the logo plus both unofficial lines; the film runs 49.0 s in every plan file).

      Word budget: 20 words or fewer per version in total, counting each distinct on-screen string once (the closing question repeats the same string the viewer already read at 5.5 s, so it adds no new reading; brand film text density: manifesto lines word by word, at most 2 lines, about 6 percent of frame height per line). The required unofficial label is exempt from the count (truth-sheet.md section 12: disclaimers are marked and exempt from text counts).

      阅读完整文件: 03-script.md
    • 03-hooks.md

      几种开场的对比

      Hooks: spotify-concept-ad

      Runtime date: 2026-10-20. Stage 03 openings step (ice-film/references/openers-and-endings.md sections 2 to 4).

      Priority test: benefit "the noise around you can become your track"; open question "who wins: the noise, or me?"; payoff at 12.0 s (the play press locks the first noise to the beat) and fully at 31 s (the street as a drum machine).

      Studies: grey blocking, real copy, real candidate fonts (Inter Bold for English, Noto Kufi Arabic 800 for Arabic; type is decided at 05), first 3.2 s, rendered with the HTML capture renderer at half size: ice/renders/studies/opening-<A|B|C>-<en|ar>.mp4; stills at 0, 1 and 3 s: ice/plan/hooks/opening-studies-sheet.png. The studies are built in isolation from the film; their timing may differ from the final cut.

      Opening · Leads with · Frame 0 · By 1 s · By 3 s · Heard · Muted read · Choice notes

      阅读完整文件: 03-hooks.md
  4. 阶段 04,分镜

    未记录用时

    角色评审审批人

    手绘街道改版(D-30):分镜第 5 版,镜头计划第 5 版含 15 份镜头约定,长条图用作调度板;审批人第二次检查 ice/review/stages/04-05-rework-approver.md

    决策

    • D-37 镜头更近,街道更高(修改 b)

      • A选定
      • - A:收紧布局(摩托车在远车道上、正对主角车上方,打桩机在工地上、正对破路机上方,堵车车流一直延伸出画面左侧),把动作后方的楼房加高到刚好低于片尾卡的上限,并加大镜头缩放:开场那辆车约 1.1,每台机器加入时 0.85 到 1.0,四台齐奏时约 0.72
      • 片尾卡保持 0.342(依据:机器填满画面,画面顶部看到的是楼面而不是天空,片尾卡则保留整条街道)

      只有 A 同时回应了意见的两部分(机器在画面里更大,空荡的天空更少);B 和 C 要么只是把空白挪了位置,要么让机器仍然很小。

      来源: D-35; ice/plan/style-frames/v2/ (updated); film/js2/street.js (camera keys)

    本阶段产出

    • 04-storyboard.md

      分镜

      Film type: brand film. Length 35.0 s (D-39; was 36.0 s, D-33; 33.5 s in draft-10). Master 16:9 1920x1080, English only (D-28). 30 fps. Clock: music-led, 120 BPM, bar 0 on the play press at 7.5 s; the noise (0 to 3.0 s) runs in free time.

      Style: Drawn night street (D-31): a flat-vector night street in side view built by code (buildings with windows, street lamps, a construction site behind solid hoarding, a jam of cars and vans led by the hero car, a road breaker on a small excavator at the head of the jam, a pile rig, a motorbike with a helmeted rider), the machines drawn 1.6 times the building scale so they read on a phone, grey before the press, each machine taking its Spotify lane colour as it joins the song; Spotify interface rebuilt from captures; one style for the whole film

      Palette: ground #121212, sky #0D0D0D to #1D1D1D, street greys #1A1A1A to #6A6A6A, field #1F1F1F, card #181818, ink #FFFFFF, ink muted #A7A7A7, accent #1ED760 (play circle and press ring only), lanes #FFA178 (horn), #608108 (hammer), #91EEDA (drill), #477D95 (engine), word outline #000000, end card sky and logo ground #000000 (D-18, D-24)

      Characters: one motorbike rider in a full-face helmet with a dark visor (no face shown); no other people (a system pointer operates the rebuilt interface)

      Video direction block

      阅读完整文件: 04-storyboard.md
    • 04-shot-plan.md

      镜头计划

      The contracts below hold for draft-14: the film is 35.0 s; shots 13 to 15 are re-timed (27.5 to 31.5, 31.5 to 33.5, 33.5 to 35.0; the end card is the logo alone on black, D-44 to D-46); shots 6 to 9 carry the camera pushes of D-41; the jam has a second row in the far lane (D-40). The draft-9 contracts are kept in shot-plan-draft9.md.

      One composition: film/v2-en-16x9.html loading film/js/util.js, config.js, ui.js, lockup.js and film/js2/street.js, main.js (one continuous timeline; shots are time ranges of one camera along a drawn street). English 16:9 only (D-28). Times in seconds at 30 fps, from storyboard.md revision 5 (D-33). Richness values are measured on the stills of the real build with ice-qa's own area function (film_gate.area_features, 320 px grey; temp/v2o/v2-en-16x9/), and for type and interface heroes as hero_width, the hero text or interface width over the frame width. Every camera entry gives its reason. The revision 3 contracts of the lane-grid world are kept in shot-plan-rev3.md.

      Shot · Time · Claim and evidence · Start state · Decisive state · Handoff state · Focal owner · Motion verb · Camera window and reason · Layer manifest (back to front) · Alive · Richness (hero_share / frame_fill of 16 / depth) · Cues · Assets · QA checks

      1 · 0.0-2.9 · none (situation) · close on the grey honking hero car at frame 0, the jam behind it, the motorbike above, HONK in front of it · 2.62: the whole noisy block, the loudest horn, all four machines and their words in frame (frame-1) · the field rises at 2.9 as the street dims · the honking car, then the whole street · fire, pull back · 0.0 to 2.5: pull back from scale 1.1 on the hero car and the jam behind it to 0.7 on the block; reason: find the noise, then show all of it · sky, far skyline (parallax), buildings and site, road and lamps, machines, words · the four machines fire out of time, words pop and fade, the camera pulls back · 91 at 0.3 and 100 at 2.62 / 16 / 4 · horn 0.0, 0.7, 1.4, 1.9, 2.6 (loudest); breaker 0.3, 1.1, 2.0; ram 0.5, 1.25, 2.2; engine 0.15, 1.6, 2.4 · none · frame 0 readable; every read word whole inside the 5 percent margins; no face

      2 · 2.9-3.3 · F1 search · the noisy block dimming · 3.2: the field risen with the question, caret showing · the first key at 3.3 · the search field · rise · held, slow drift; reason: the question rises over the dim street · street, dim layer, field · the field rises, the street drifts · hero_width 83 (the field) / 16 / 3 · pillIn 2.9 · webplayer-search-en · exact placeholder; field fidelity at least 90 percent

      阅读完整文件: 04-shot-plan.md
  5. 阶段 05,视觉

    未记录用时

    角色审批人评审顾问

    手绘街道视觉风格 D-31(关卡:默认风格通过,与 01-flat-vector 相比 6 轴中 4 轴不同,默认套路元素 2 个并附理由);六张风格帧在 ice/plan/style-frames/v2/;D-34 那句话留给委托人挑选;审批人第二次检查 ice/review/stages/04-05-rework-approver.md

    决策

    • D-07 短片类型

      • A,品牌短片选定
      • - A:品牌短片,借用应用广告的“真实产品时刻”(依据:brand-film.md 的适用场景与目的“品牌独有的一种感受”
      • 时间基准默认由音乐主导
      • 交付物为 16:9 母版,9:16 和 1:1 重新排版)
      理由及来源

      要求的 35 到 60 秒时长,加上一支没有 CTA 徽章的非官方概念作品,正符合品牌短片的目的(Spotify 独有的一种感受)和由音乐主导的时间基准;应用广告的长处(真实产品在发挥作用)也借用进来:根据 Spotify 公开页面、用中性内容重建一两个界面时刻,所以短片仍然展示了产品。

      来源: brief slots duration, real_brand (prompt); D-02; D-03; ice-film/references/film-setup.md section 1 ("Two types fit: pick the one whose purpose matches the goal, borrow parts of the other, log it"); film-types/brand-film.md and app-ad.md (Fit, Purpose, Rhythm ranges, Truth and content, Deliverables)

    • D-17 方向(视觉风格)

      • A,并采纳评审的五处修改:(1) 在 34 秒时,锁定的轨道折叠成搜索框下方 Spotify 的 Browse all 卡片布局(街道变成 Spotify 自己的搜索页);(2) 不用红色:轨道用珊瑚色 #FFA178(喇叭,第一次铺满)、橄榄色 #608108(锤)、薄荷色 #91EEDA(电钻)、石板蓝 #477D95(引擎);(3) 由灯光承载选择:电线上的顶灯以 1.25x 视差移动,轨道锁定前为 #2A2A2A,锁定后在颗粒质感上铺开一片 600 px、30% 的轨道颜色光池;(4) 默认套路元素减到 2 个并记录(D-22):答案整体落下;(5) 要读的阿拉伯语文字用 IBM Plex Sans Arabic Bold,字号为拉丁文的 1.35x,纹理最小 56 px;片尾卡用 #000000选定
      • - A:夜班:Spotify 的暗色界面变成街道
      • 每条锁定的轨道取一种 Spotify 自己的浏览分类颜色(依据:品牌表、浏览卡片截图、R-04、R-06)
      理由及来源

      只有 A 用自身的机制来支撑主张(按下之前一片灰,锁定之后才有颜色),看上去就是把 Spotify 自己的界面和浏览分类颜色做得更好;B 继承自 risograph 条目(6 轴中 3 轴不同),在奶油色上对比度不达标;C 是品类惯例,又继承自 Swiss Motion(6 轴中 2 轴不同)。

      来源: ice/review/direction/D-17-options.md; D-17-consultant.md; D-17-critic.md; R-01 S-02 (2026-10-20); R-04 S-03, S-04; brand-sheet.json; assets/capture/spotify/webplayer-search-en (browse tiles)

    • D-18 配色

      • B选定
      • - A:暗色底配四种浏览分类颜色
      • 红色主导(珊瑚色
      • 橄榄色
      • 薄荷色
      • 红色)(依据:D-17 选项 A)
      理由及来源

      去掉红色后,与 Apple Music 红色的最近距离从 dE 4.2 拉到 dE 15.2,不再构成泛阿拉伯旗帜配色,色觉模拟中最差的一对轨道间距从 4.9 提升到 6.7(评审与顾问实测);各轨道还靠位置和文字区分,从不只靠颜色。

      来源: D-17-critic.md fix 2; D-17-consultant.md (measurements); captures browse tiles (#477D95, #608108), Premium page (#FFA178, #91EEDA)

    • D-19 字体

      • A,阿拉伯文阅读文字按拉丁文字号的 1.35 倍设置(在可见高度相同时,Plex Arabic 正文只有 Figtree x 高度的 69%),阿拉伯文纹理文字不小于 56 px选定
      • - A:拉丁文用 Figtree 700 和 500,阿拉伯文用 IBM Plex Sans Arabic Bold 和 Regular(依据:字形重合度拉丁文 0.310
      • 阿拉伯文 0.393
      • 是对 CircularSp-Arab 最贴近的阿拉伯文呼应)
      理由及来源

      A 在拉丁文上延续了方向中友好的几何感,在阿拉伯文上是与 Spotify 自家阿拉伯文网站字体最接近的独立呼应;字号系数弥补了顾问测出的字重差距。B 的拉丁文沿用自被否决的方向;C 的阿拉伯文行框比字墨还小,会裁掉标音符号。

      来源: temp/fontmatch measurements (D-17-options.md); D-17-consultant.md; R-05; type-pairing.md sections 1 to 6

    • D-21 动态语言

      • A(ice/plan/motion-plan.md)选定
      • - A:一个连续镜头
      • 卡在节拍上
      • 颜色和光随锁定一起到来
      • 不剪切(依据:D-14
      • brand-film.md 转场规则)

      品牌短片的转场规则要求几乎每次转场都把当前物体变成下一个;一个连续镜头让这条链保持因果关系。

      来源: ice/plan/motion-plan.md; brand-film.md; D-14

    本阶段产出

  6. 阶段 06,动态分镜

    未记录用时

    角色导演审批人

    手绘街道:声音提示表重建并锁定(46 个事件,检查了 17 个网格锚点、打字按键、从高潮起算的第 6 和第 14 步即兴段);15 张定格静帧的计时静帧板,均达到或高于下限;lint 为 YELLOW,exit 0,附理由;D-36 和 D-37 已批准;ice/review/stages/06-drawn-street-approver.md

    本阶段产出

    • 06-cue-sheet.json

      声音提示表

      {
        "locked": true,
        "locked_at": "2026-10-21 (stage 06, the drawn street; re-timed at 07 for D-39)",
        "project": "spotify-concept-ad",
        "version": "en",
        "fps": 30,
        "duration": 35,
        "mode": "music-led",
        "note": "The drawn street (D-30 to D-37): free-time noise 0 to 3.0 s, the search and the typing in a quiet street bed to the press, then a 120 BPM grid from the first downbeat at 7.5 s. Exported from film/js/config.js and film/js2/street.js by temp/tools/export-cues-v2.mjs; the build, the score and the checks read this file, never retype it. The lane-grid sheet is kept as cue-sheet-v1.json.",
        "music": {
      阅读完整文件: 06-cue-sheet.json
  7. 阶段 07,构建

    未记录用时

    角色审批人评审

    draft-14(黑色结尾卡,D-44 至 D-46):声音提示表重新导出结果一致,每个提示点都有静帧,G5 PASS,视觉 G2 和 G3 PASS,Final Frame Contract 全画面 0 px;D-45 已批准,33.5 秒落点待委托人确认;ice/review/stages/07-08-draft14-approver.md

    决策

    • D-23 引擎

      • B选定
      • - A:HyperFrames(第 8 行的默认选项)(依据:engine-choice.md 第 1 节)
      理由及来源

      HyperFrames 未安装,而本次运行不允许安装任何东西;C 级方案用机器上已有的 Chrome 149 和 FFmpeg 8.1 渲染同一套页面约定;适用 7.5 节的替代关卡。

      来源: engine-choice.md sections 1, 7.2, 7.4, 7.5; render-html.mjs first lines: "driver built-in Chrome DevTools driver, browser C:\Program Files\Google\Chrome\Application\chrome.exe", "browser version Chrome/149.0.7827.102"

    • D-27 每次渲染的合成模式

      • B选定
      • - A:GPU 合成(默认)(依据:速度
      • 在 07 阶段实测:最后一帧与静态标志在 16:9 和 9:16 中有 7,800 到 8,700 个边缘像素相差最多 28/255,修复后仍有 14 到 26 个像素相差 1/255,且每次运行结果都随先前合成的内容而变)

      这样画面只取决于 t,符合构建规则的要求,结尾标志组合在每个版本中都准确落在官方标志上。

      来源: ice/review/final-frame/result.json; temp renders ffc to ffc5 and cues6 to cues7

  8. 阶段 08,声音

    未记录用时

    角色评审审批人

    基于 draft-14 的母带:-14.0 LUFS,-1.4 dBTP,LRA 7.4,单声道 -17.2,无空白,各击点都在提示点上,包括 33.5 秒的最后一击;D-42 5.04 dB;ice/review/stages/07-08-draft14-approver.md

    决策

    • D-20 声音主导与音乐来源

      • A,记录为代替正版人工制作曲目的代码生成替身(交付说明中写明:如果同意从曲库下载,会带来什么)选定
      • - A:以配乐为主导,用项目内的 mgaudio 以代码作曲:用街道上的机器本身搭出律动(喇叭做低音铜管短促音配合低音重击,锤子做反拍,电钻做踩镲,引擎做超低音贝斯),主旋律演奏短片的动机
      • 阿拉伯语版用 maqsum 节奏,英语版用标准四拍,都是 120 BPM
      • 噪音段落作为声音设计(依据:D-13 评审修正 1
      • 不允许下载授权安全的音乐时,按 ice-audio 第 5 节用代码作曲)
      理由及来源

      短片要表达的是“噪音变成你的音乐”,只有用同样声音搭成的配乐才能展现这一点;它授权干净,并锁定在声音提示表上;C 被本次运行条件排除。

      来源: ice-audio/SKILL.md section 5; music-choice-and-licensing.md section 2 (music brands row; downloads not allowed row); D-13-critic.md fix 1

    • D-29 响度配置与配乐的响度范围保护

      • A选定
      • - A:社交与网页,有冲击力:-14 LUFS,编码后文件不高于 -1 dBTP,LRA 最多 9 到 11 LU
      • 5 到 8 LU 的音乐保护值按音乐主体(12 到 41 秒)测量,全片 LRA 保持在配置范围内(依据:D-06 信息流投放,且短片节奏很强
      • 实测:英语母带 -14.3 LUFS,-1.1 dBTP,LRA 8.4
      • 配乐 v2 全片 8.63 LU,主体 4.58 LU)
      理由及来源

      短片主要在信息流中播放(D-06),-14 正是周围内容的响度,全片也在配置的 LRA 之内(编码后母带 8.4 LU)。无论怎么测,音乐保护的区间(5 到 8 LU)都没达到:全片为 8.63 LU(超出 0.63,原因是事先声明的安静段落),12 到 41 秒的音乐主体为 4.58 LU(低了 0.42:律动很稳)。两个数字都作为未关闭的保护项写进交付说明。把全片数值推过 8 的正是有意留出的安静段落;填满它们就会失去冷开场的静默和那一口气的停顿。已连同数字列入交付说明。

      来源: ice/audio/qc_en_v2.json; ice/audio/master_draft4_en.json; ice/review/mix-08b.md; ice/review/stages/08-approver.md

    本阶段产出

    • 08-sound-plan.md

      声音方案

      Sound plan: spotify-concept-ad (The street plays along), stage 08a

      Built by ice/audio/score.py (one script, --lang en|ar) with the project copy of mgaudio (MIT), every time read from ice/plan/cue-sheet.json (locked, not retimed). Clock: music-led, 120 BPM, bar 0 = the press at 12.0 s, 4/4, a 16th = 0.125 s; 0 to 12.0 s free time. Outputs: ice/audio/soundtrack_en.wav, ice/audio/soundtrack_ar.wav (48 kHz, 24-bit, stereo, 2,352,000 samples = 49.000 s), stems in ice/audio/stems_en/ and ice/audio/stems_ar/ (pre-master, written at -6 dB), score_spec_en.png, score_spec_ar.png, beatgrid.png, measured reports qc_en.json, qc_ar.json, beatgrid.json.

      Version 2 (section 7, the director's follow-up for the social-profile LRA): soundtrack_en_v2.wav, soundtrack_ar_v2.wav, stems_en_v2/, stems_ar_v2/, score_spec_en_v2.png, score_spec_ar_v2.png, beatgrid_v2.png, qc_en_v2.json, qc_ar_v2.json, beatgrid_v2.json, rendered with python ice/audio/score.py --lang en --v2 (and --lang ar --v2, --v2 --beatgrid). Version 1 files are unchanged (checksums verified after the v2 renders). Sections 1 to 6 describe version 1; section 7 lists what version 2 changes and its measured numbers.

      This is the 08a score and SFX pass. The final mix on the picture, the exported MP4 measurement and the human listening check belong to 08b and 10. Nothing below is a claim about how it sounds: every number is measured, and no one has listened yet.

      1. The four machines are the kit

      阅读完整文件: 08-sound-plan.md
  9. 阶段 09,审核

    未记录用时

    角色评审导演审批人

    已批准剪辑的第 4 轮:评审 A SHIP(5 个 P2),评审 B SHIP(2 个 P3);清晰度测试 3 PASS r5,一位盲测观众看完交付母带后说:'Press play and the noise around you turns into music.'(第 4 轮的测试作废);品牌短片 QA:品牌测试 FAIL 0/6,竞品替换 FAIL(36% 为 Spotify 专属),转场 PASS,价值反转 PARTIAL,已列出交委托人;一处编码修正 R4-01(bt709 标签);ice/review/stages/09-10-approver-r2.md

    本阶段产出

    评审轮次

    1. 第 1 轮REVISE

      • 评审 A:1 个 P0,9 个 P1,8 个 P2
      • 评审 B:1 个 P0,8 个 P1,6 个 P2
      • 评审 C:1 个 P0,7 个 P1,7 个 P2
      • 修正 R1-01 至 R1-20 记录在 fixes.json;阻断问题是第 0 帧的喇叭淡入和结尾卡
    2. 第 2 轮ONE MORE PASS

      • verify-1:SHIP
      • verify-2:ONE MORE PASS(结尾卡:街道亮度、格子上的律动、播放头、41.0 秒之前的场)

      已修改

      • 第 1 轮问题:已修正或部分修正,见 verify-1.md 和 verify-2.md 中的表格
    3. 第 3 轮ONE MORE PASS

      • verify-3:ONE MORE PASS(结尾卡播放头、一个被切掉的灰色格子、最后的闪光)

      已修改

      • 第 2 轮问题:见 verify-3.md 中的表格
    4. 第 4 轮SHIP

      • 评审 A(画面):SHIP,无 P0 或 P1,记录了 5 个 P2(前 1.25 秒有画外声源,两个词超出 5% 边距 10 px,摩托车朝向反了,四个快速动作没有运动模糊,缺少 bt709 标签)
      • 评审 B(声音与同步):SHIP,无 P0 至 P2,记录了 2 个 P3(机器脉冲比底鼓晚一帧,最后一秒单声道损失 1.9 dB)
      • 第一位冷启动观众(清晰度测试 3):作废,它通过项目路径和评审带标签的资料包打开了草稿,也没有可供比对的核心信息(ice/review/clarity/read-3-cold-viewer.md);有效的测试是基于交付母带的 read-3-r5,在本轮之后进行(ice/review/clarity/read-3-r5.md 及其比对)
      • 在不改动短片的前提下应用了一处修正:为最终母带加上 bt709 颜色标签(R4-01)
  10. 阶段 10,交付

    未记录用时

    角色导演审批人

    成片 1920x1080 30 fps 35.00 秒,从第 0 帧起用一个 worker 按顺序渲染,bt709,-14.0 LUFS,-1.4 dBTP,LRA 7.4,最后一帧与静态标志页相差 0 px;海报和六张静帧;NOTE.md 含 D-46 的措辞、授权情况和 QA 未通过项;指纹写入 ice/review/fingerprint.jsonl(未写入主目录存储);ice/review/stages/09-10-approver-r2.md

    本阶段产出

    • 10-NOTE.md

      交付报告,含实测数据

      spotify-concept-ad: delivery report (2026-10-21)

      Status: reviewer approved (stage 09 round 4: two fresh critics SHIP; clarity read 3 PASS r5, a blind viewer on the delivered master, in its own words: "Press play and the noise around you turns into music."), approved by the owner on draft-14 (D-47). Two brand film QA thresholds fail on the approved cut (brand test, competitor swap; see Gates), logged for the owner, not fixed, because a fix changes the approved film.

      File: ice/renders/final/spotify-concept-ad_street_16x9_35s.mp4 sha256 d206ae58123e3bf71764a6be0d17853c2000b4b5f127725eab0dff50a87f2784 1920x1080 30 fps 35.00 s h264 (bt709) / aac 48 kHz stereo

      Other deliverables: poster ice/renders/final/spotify-concept-ad_street_16x9_poster.jpg and .png (1920x1080, the drop at 20.2 s); six key stills ice/renders/final/stills/ (2.67, 8.20, 20.20, 22.30, 25.00, 34.97 s); the same master with its version in the name ice/renders/spotify-concept-ad_street_16x9_35s_v1.mp4; the case study ice/case-study/. One version only: English, 16:9 (the owner's decision, D-28); no Arabic version, no 9:16 or 1:1 re-layouts, no cutdowns.

      The non-affiliation line (D-46)

      阅读完整文件: 10-NOTE.md
    • 交付短片 0.00 秒处的静帧
    • 交付短片 17.50 秒处的静帧
    • 交付短片 34.90 秒处的静帧
    • 交付静帧 spotify-concept-ad_street_16x9_poster.jpg
    • 交付静帧 spotify-concept-ad_street_16x9_poster.png
    • 交付静帧 spotify-concept-ad_street_16x9_01-noisy-street_2.67s.jpg

调研(附日期)

合规说明:spotify-concept-ad

21 个来源

R-01 RQ-brand:Spotify 自己的官方页面如今就其标志规范、颜色、字体、在线页面、应用商店页面和当前广告活动公布了哪些内容?

21 个来源

R-02 RQ-business:Spotify 是什么,服务谁,如今对外公布的产品事实是什么,它在埃及、中东北非和全球的竞争对手是谁,它说话的口吻是怎样的?

19 个来源

R-03 RQ-rules:在埃及和中东北非,音乐流媒体应用的广告适用哪些规定?YouTube(Google Ads)、Instagram(Meta)和 TikTok 的广告政策对这部非官方概念短片怎么说?

18 个来源

R-04 RQ-color:对音乐流媒体品牌以及埃及和阿拉伯世界的受众来说,颜色意味着什么?2025 和 2026 年的音乐流媒体品牌使用哪些配色?

7 个来源

R-05 RQ-type:2025 和 2026 年屏幕和社交视频中的阿拉伯文字体有哪些惯例?阿拉伯文如何与拉丁无衬线体搭配?资料中提到了哪些开放授权的阿拉伯文字体?

5 个来源

R-06 RQ-category:当前的音乐流媒体广告和 Spotify 广告是什么样子(结构、配色、字体、动态、声音)?关于这个主题的其他视频又都是什么样子?

17 个来源

R-07 RQ-ads:Spotify 及资料中提到的竞争对手(埃及、中东北非和全球)在 2024 到 2026 年间有哪些真实广告,能体现这一品类的开场钩子、节拍结构、配色、字体、剪辑频率、声音和结尾?

24 个来源

R-08 RQ-refs:哪些真实、可观看、有记录的作品,可以作为音乐流媒体品牌短片在叙事与转场语法、字体与构图、声音与节奏上的参照?

18 个来源

对交付文件的检查

关卡结果实测
冷启动观众清晰度通过一个没有看过简报的全新子智能体只打开了资料包(film.mp4 和 format.txt),写道:卖的是 "Spotify.";作用是 "It lets you find and play music that fits your moment.";创意是 "Press play and the noise around you turns into music.";审批人将其与核心信息(D-48)比对:卖什么、产品作用和一句话创意均 MATCH,无误读,无重大困惑,有五个小问题。第一次测试 3(第 4 轮)作废:它通过项目路径和评审带标签的资料包打开了草稿,当时没有核心信息,也没有进行比对。测试 1 和 2 没有运行(该关卡是在运行中途、02 之后才加入技能的)。局限:资料包路径中含有 "04-spotify",观众看到了它
分镜 lint警告
引擎 lint 与检查通过页面约定用一个 worker 按顺序渲染 1050 帧;声音提示表重新导出结果一致(53 个事件)
G0 渲染文件存在通过35.00 秒,与预期的 35.00 秒一致;有音频
G1 校样可读目测场内文字在 1080 上为 54 px(5%),台词为 104 和 64 px;声音词和卡片在原尺寸下清晰可读;已在 1920 静帧和手机尺寸的样张上检查
G2 无空帧通过没有连续超过 3 帧的平板画面
G3 结尾停留与 CTA 占比通过结尾停留 1.47 秒(无文字结尾卡的范围为 0.6 到 1.77 秒);CTA 从 27.5 秒起 = 21%(最多 25%)
G4 每帧一个主体目测每个节拍一个主体(data-hero:HONK 一词、场、街道、台词、场、标志)
G5 无页面界面元素通过规则命中 0 次,depth_layers 中位数 5
短片关卡警告镜头内快速运动 0.151,中段空白 0.000 秒,蓝紫底色 0.000;黄色项:hero_share 和 frame_fill 仅在 31.25-35 秒的节拍低于下限,推镜每分钟 12 次
丰富度下限通过hero_share 90.9%(下限 30),frame_fill 16/16(下限 10),empty_half 0 秒,in_shot_motion 100%,声明的停留之外 longest_still 0 秒;depth_layers 中位数 5(页面标记);表面细节(沥青颗粒、窗户、工地框架和围挡)、光线事件(按下时的光环、高潮)、真实素材(重建的界面、官方标志)由评审 A 计数
运动与定格通过0 次剪切,0 次定格,1 段黑场(标志前声明过的淡出),0 段白场;接近静止的采样 16 个(那口气的停顿和标志停留)
接缝不适用一个连续镜头,无剪切(look.py 把 19.53 秒高潮处的闪光识别为场景切换)
字幕与同步同步通过无人声,无字幕;每个提示点的起始都在一帧之内(评审 B:按下 7.5、高潮 19.5、最后一击 33.5 都在各自的帧上,13 个即兴短击精确到采样)
响度通过-14.0 LUFS,LRA 7.4 LU,真峰值 -1.4 dBFS(目标 -14,-1 dBTP,D-29)
规格通过1920x1080,h264,30 fps,35.00 秒
模板距离通过相对 ice-styles 01-flat-vector 有 4/6 个维度不同
指纹无既往记录记录写入项目内的 ice/review/fingerprint.jsonl(本次运行仅限其文件夹,因此没有写入 ~/.ice-motion-director/fingerprints.jsonl)
Final Frame Contract通过无损成片的最后一帧与静态标志页在整个画面上一致:0 个像素不同
成片与已批准剪辑对比通过在九个时间点以 960x540 对比成片帧与 draft-14:PSNR 36.7 到 43.6 dB;无损成片与定位截取的静帧对比:结尾卡和标志 0 px,街道图层上有最多 29/255 的细小斑点(光栅历史所致,成片从第 0 帧起用一个 worker 按顺序渲染)
品牌测试(品牌短片 QA 阈值)未通过遮住标志和界面后,随机 6 帧中有 0 帧被认出是 Spotify(2 个 NO,4 个 WEAK):Spotify 绿只出现在播放圆圈和标志上,街道的配色并不为人所知是 Spotify 的
竞品替换(品牌短片 QA 阈值)未通过35 秒中有 12.5 秒(36%)是 Spotify 专属的,全部是可替换的表层(重建的界面、绿色、标志);这个创意可以套用到任何音乐应用
转场改变物体;价值反转(品牌短片 QA 阈值)部分通过转场通过:1050 帧中没有硬切(一个连续镜头);7 次章节变化中有 4 次亮度反转,最后三次逐级降到黑场
高潮对决未运行
  • -14响度LUFS
  • -1.4真峰值dBTP
  • 30帧率帧/秒
  • 1920 x 1080分辨率像素
交付的版本
语言画幅时长文件
英语16:90:35ice/renders/final/spotify-concept-ad_street_16x9_35s.mp4

致谢与工具

  • ice/audio/soundtrack_en.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, score and SFX composed by code in ice/audio/score.py; mgaudio (c) 2026 Vincentwei1021, MIT, n/a (original output, mastered to -14 LUFS, -1 dBTP), English version, full soundtrack 0.0 to 49.0 s, 2026-10-20
  • ice/audio/soundtrack_ar.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, score and SFX composed by code in ice/audio/score.py; mgaudio (c) 2026 Vincentwei1021, MIT, n/a (original output, mastered to -14 LUFS, -1 dBTP), Arabic version, full soundtrack 0.0 to 49.0 s, 2026-10-20
  • ice/audio/soundtrack_en_v2.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, score and SFX composed by code in ice/audio/score.py (--v2); mgaudio (c) 2026 Vincentwei1021, MIT, version 2 levels for the social-profile LRA (mastered to -14 LUFS, -1 dBTP), English version, full soundtrack 0.0 to 49.0 s, 2026-10-20
  • ice/audio/soundtrack_ar_v2.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, score and SFX composed by code in ice/audio/score.py (--v2); mgaudio (c) 2026 Vincentwei1021, MIT, version 2 levels for the social-profile LRA (mastered to -14 LUFS, -1 dBTP), Arabic version, full soundtrack 0.0 to 49.0 s, 2026-10-20
全部 25 项致谢
  • ice/audio/soundtrack_en_v3.wav (and stems_en_v3/), local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, score and SFX composed by code in ice/audio/score.py (--v3); mgaudio (c) 2026 Vincentwei1021, MIT, version 3: full-level frame-0 horn, no fade-in, end hit at 46.0 and a natural ring-out (mastered to -14 LUFS, -1 dBTP), English 16:9 delivery film, full soundtrack 0.0 to 49.0 s, 2026-10-20
  • ice/audio/stems_en_v2/, ice/audio/stems_ar_v2/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-20
  • ice/audio/stems_en/, ice/audio/stems_ar/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-20
  • ice/audio/soundtrack_en_v4.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--v4); mgaudio (c) 2026 Vincentwei1021, MIT, version 4, the drawn street: timed from ice/plan/cue-sheet.json (36.0 s); mid-honk at frame 0, no fade-in, last hit at 33.5 and a natural ring-out (mastered to -14 LUFS, -1 dBTP; measured -14.08 LUFS, -1.21 dBTP), English 16:9 film, full soundtrack 0.0 to 36.0 s (08b input: ice/audio/master_input_en_v4.json), 2026-10-21
  • ice/audio/soundtrack_en_v4.wav: SFX (street noise of the hero car, four jam vehicles, road breaker, pile rig and motorbike; 26 key ticks; soft UI open; soft whoosh; click; riser; impact), local, code-generated, none, horn, breaker, pile rig, motorbike and key models written in ice/audio/score.py (horn4, road_breaker, breaker_hat, pile_ram, pile_backbeat, bike_rev, key_tick, building on jack_hammer and engine_bass there); UI open, whoosh, click, riser, impact and the drum bodies from mgaudio sfx and drums (MIT, project copy), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 36.0 s, 2026-10-21
  • ice/audio/stems_en_v4/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 31 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21
  • ice/audio/soundtrack_en_v5.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--lang en --v5); mgaudio (c) 2026 Vincentwei1021, MIT, version 5 (D-38 to D-42): timed from the re-timed ice/plan/cue-sheet.json (33.5 s), seven jam cars, an alive ending, smaller peaks at the source (mastered to -14 LUFS, -2.5 dBTP ceiling; measured -14.03 LUFS, -2.68 dBTP), English 16:9 film, full soundtrack 0.0 to 33.5 s (08b input: ice/audio/master_input_en_v5.json; mastered into ice/renders/draft-10-en-av.mp4), 2026-10-21
  • ice/audio/soundtrack_en_v5.wav: SFX (street noise of the hero car, seven jam cars, road breaker, pile rig and motorbike; 26 key ticks; soft UI open; soft whoosh; click; riser; impact), local, code-generated, none, the same models as v4 in ice/audio/score.py (horn4 with seven horn timbres, road_breaker, breaker_hat, pile_ram, pile_backbeat, bike_rev, key_tick); UI open, whoosh, click, riser, impact (high-passed at 100 Hz) and the drum bodies from mgaudio sfx and drums (MIT, project copy), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 33.5 s, 2026-10-21
  • ice/audio/stems_en_v5/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 34 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21
  • ice/audio/soundtrack_en_v6.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--lang en --v6); mgaudio (c) 2026 Vincentwei1021, MIT, version 6: the version 5 sound on the 35.0 s ice/plan/cue-sheet.json (last hit 32.5, ring-out to 35.0), the jam cars level-matched (mastered to -14 LUFS, -2.5 dBTP ceiling; measured -14.07 LUFS, -2.68 dBTP), English 16:9 film, full soundtrack 0.0 to 35.0 s (08b input: ice/audio/master_input_en_v6.json; mastered into ice/renders/draft-11-en-av.mp4), 2026-10-21
  • ice/audio/soundtrack_en_v6.wav: SFX (street noise of the hero car, seven jam cars, road breaker, pile rig and motorbike; 26 key ticks; soft UI open; soft whoosh; click; riser; impact), local, code-generated, none, the same models as v5 in ice/audio/score.py; UI open, whoosh, click, riser, impact (high-passed at 100 Hz) and the drum bodies from mgaudio sfx and drums (MIT, project copy), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 35.0 s, 2026-10-21
  • ice/audio/stems_en_v6/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 34 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21
  • ice/audio/soundtrack_en_v7.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--lang en --v7); mgaudio (c) 2026 Vincentwei1021, MIT, version 7: the version 6 sound with the black end card (D-44 to D-46): the groove under the field, the street dropping out with the fade to black, a reverse-cymbal swell under the logo entrance, the final hit at 32.5 and the ring-out (mastered to -14 LUFS, -2.3 dBTP ceiling; measured -14.04 LUFS, -2.48 dBTP), English 16:9 film, full soundtrack 0.0 to 35.0 s (08b input: ice/audio/master_input_en_v7.json; mastered into ice/renders/draft-12-en-av.mp4), 2026-10-21
  • ice/audio/soundtrack_en_v7.wav: SFX (street noise of the hero car, seven jam cars, road breaker, pile rig and motorbike; 26 key ticks; soft UI open; soft whoosh; click; riser; impact; the swell into the final hit), local, code-generated, none, the same models as v6 in ice/audio/score.py; UI open, whoosh, click, riser, impact (high-passed at 100 Hz), the reverse cymbal of the logo entrance and the drum bodies from mgaudio sfx and drums (MIT, project copy; the cymbal is mgaudio's synthetic crash reversed, no sample pack installed), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 35.0 s, 2026-10-21
  • ice/audio/stems_en_v7/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 35 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21
  • ice/audio/soundtrack_en_v8.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--lang en --v8); mgaudio (c) 2026 Vincentwei1021, MIT, version 8: version 7's sound on the re-timed ending (the field 27.5 to 31.5, the fade to black 31.5 to 32.0, the swell 31.9 to 33.5, the final hit at 33.5, the ring-out to 35.0) (mastered to -14 LUFS, -2.3 dBTP ceiling; measured -14.03 LUFS, -2.48 dBTP), English 16:9 film, full soundtrack 0.0 to 35.0 s (08b input: ice/audio/master_input_en_v8.json; mastered into ice/renders/draft-13-en-av.mp4), 2026-10-21
  • ice/audio/soundtrack_en_v8.wav: SFX (street noise of the hero car, seven jam cars, road breaker, pile rig and motorbike; 26 key ticks; soft UI open; soft whoosh; click; riser; impact; the swell into the final hit), local, code-generated, none, the same models as v7 in ice/audio/score.py; UI open, whoosh, click, riser, impact (high-passed at 100 Hz), the reverse cymbal of the logo entrance (mgaudio's synthetic crash reversed) and the drum bodies from mgaudio sfx and drums (MIT, project copy), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 35.0 s, 2026-10-21
  • ice/audio/stems_en_v8/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 35 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21
  • ice/audio/soundtrack_en_v9.wav, local, code-generated, none, code-generated with mgaudio (MIT, project copy at ice/audio/lib/mgaudio, from Vincentwei1021/mg-styles-15), no third-party audio, no samples, no AI generation, score and SFX composed by code in ice/audio/score.py (--lang en --v9); mgaudio (c) 2026 Vincentwei1021, MIT, version 9: version 8's sound on the end card re-timed for look.py G3 (the street fading 31.5 to 33.0, the swell 32.5 to the hit at 33.5) (mastered to -14 LUFS, -2.3 dBTP ceiling; measured -14.08 LUFS, -2.48 dBTP), English 16:9 film, full soundtrack 0.0 to 35.0 s (08b input: ice/audio/master_input_en_v9.json; mastered into ice/renders/draft-14-en-av.mp4), 2026-10-21
  • ice/audio/soundtrack_en_v9.wav: SFX (as v8: street noise, 26 key ticks, UI open, whoosh, click, riser, impact, the swell into the final hit), local, code-generated, none, the same models as v8 in ice/audio/score.py and mgaudio sfx and drums (MIT, project copy), as above, original output, mixed into the soundtrack, English 16:9 film, 0.0 to 35.0 s, 2026-10-21
  • ice/audio/stems_en_v9/, local, code-generated, none, code-generated with mgaudio (MIT, project copy), no third-party audio, as above, 35 pre-master stems written at -6 dB by mgaudio export, mix reference for 08b, 2026-10-21

look.pylint.mjsfilm_gate.pymotion_check.pyfrozen-time.mjsloudness.mjsprobe-mp4.mjstransitions.py

导出时未能找到的内容

  • media

    ice/review/ui-fidelity/sheet-ar.png 未导出:原始还原度对照表保留在本地(可能含有其他权利人的内容;只导出了遮罩后的分享副本)

  • media

    ice/review/ui-fidelity/sheet-en-v2.png 未导出:原始还原度对照表保留在本地(可能含有其他权利人的内容;只导出了遮罩后的分享副本)

  • media

    ice/review/ui-fidelity/sheet-en.png 未导出:原始还原度对照表保留在本地(可能含有其他权利人的内容;只导出了遮罩后的分享副本)

  • media

    ice/review/ui-fidelity/sheet-tiles-ar.png 未导出:原始还原度对照表保留在本地(可能含有其他权利人的内容;只导出了遮罩后的分享副本)

  • media

    ice/review/ui-fidelity/sheet-tiles-en.png 未导出:原始还原度对照表保留在本地(可能含有其他权利人的内容;只导出了遮罩后的分享副本)

  • stages[].minutes

    ice/state.json 的 stages 中没有记录每个阶段的分钟数

  • stages[06].artifacts

    运行文件中没有动态分镜的渲染

  • gates[].threshold

    NOTE.md 的关卡表没有单独列出阈值;报告给出阈值的地方,阈值写在各项数值之中

  • run-log

    另有 25 张图片未收录(最多 24 张)

  • run-log

    导出时已遮罩:0 个密钥或令牌,0 个电子邮件地址,0 个电话号码,1 个绝对路径(ice/log/conversation.jsonl 保留原文)

给你的智能体配一位导演

粘贴一行命令,然后用自然语言要一支短片。Ice 从简报一路做到交付,在你想看的每一步向你展示进度。

npx skills add Omar-Tnzxo/ice-motion-director -g --all
Ice 打开场记板,准备喊“开拍”