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. 初版 3

    第一次看到成果。代理自己標出了弱點:最後 8 秒靜止又空洞、Top result 卡片是灰色佔位、混音還沒做完。專案擁有者核准了視覺,並把範圍從六個版本縮成一個:英文、16:9、完整版。

  3. 初版 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:未知:絕不開啟 noncommercial 資料夾(未回答時的預設值)
      理由與來源

      使用者沒有說;「未知」會讓所有僅限非商業的來源保持關閉,這不會有任何損失,因為技能中寬鬆授權的參考資料涵蓋了同樣的內容。

      來源: 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)
      • 加上公開的作品集頁面(依據:執行條件「public gallery」
      • 長度範圍)
      理由與來源

      放在作品集的 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 節說,文字少、沒有人聲的影片要在 MSA 和最可能的受眾方言之間擇一;品牌在這個市場的阿拉伯文文案就是埃及口語,使用者寫的也是埃及方言。母語審讀者:預設是使用者;簽核在交付說明中保持未決(這次執行沒有預覽核准)。

      來源: 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 節「An ad prompt that gives facts and an occasion ... but no telling ... always enters the concept round」)
      理由與來源

      提示詞有主題和限制,但沒有敘事方式;技能的規則會把這類廣告送進概念輪,而沒回答的問題則採預設值。

      來源: 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 節「chain reaction」
      • brand-film.md「Narrative shapes」)
      理由與來源

      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 節「A giant word cropped by the frame edge」)
      理由與來源

      開場評審給 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:品牌影片,借用 App 廣告的「真實產品時刻」(依據:brand-film.md Fit and Purpose「a feeling the brand owns」
      • 時間母版預設以音樂為主
      • 交付項目為 16:9 母版,並重新排版出 9:16 和 1:1)
      理由與來源

      要求的 35 到 60 秒長度,加上沒有 CTA 徽章的非官方概念作品,符合品牌影片的目的(Spotify 擁有的一種感覺)和以音樂為主的時間母版;App 廣告的強項,也就是真實產品發揮作用,則借用為一兩個從 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.25 倍視差移動,車道鎖定前是 #2A2A2A,鎖定後在顆粒上方投出 600 px、30% 的車道色光池;(4) 預設素材減到 2 項並記錄(D-22):答案整句出現;(5) 阿拉伯文閱讀用字採 IBM Plex Sans Arabic Bold,字級為拉丁文的 1.35 倍,質感字最小 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 個格線錨點、打字按鍵、從 drop 起的車陣第 6 和第 14 步);15 張定格靜態畫面的計時板,都達到或高於下限;檢查結果 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、最終影格合約整個畫面 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 個邊緣像素上最多達 255 中的 28,修正後在 14 到 26 個像素上為 255 中的 1,而且每次執行都隨先前合成過的內容而變)

      這樣影格就只取決於 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 次觀看 r5 PASS,一位盲測觀眾看交付母版後說:'Press play and the noise around you turns into music.'(第 4 輪的觀看作廢);品牌影片 QA:品牌測試 FAIL 6 中 0,競品替換 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,記錄五項 P2(前 1.25 秒有畫面外的聲源、兩個字超出 5% 邊界 10 px、機車朝向相反、四個快速動作沒有動態模糊、缺少 bt709 標記)
      • 評審 B(聲音與同步):SHIP,沒有 P0 到 P2,記錄兩項 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 是什麼、服務誰、目前公布了哪些產品事實、在埃及、MENA 和全球的競爭對手是誰,它又怎麼說話?

19 個來源

R-03 RQ-rules:在埃及和 MENA,音樂串流 App 廣告適用哪些廣告規範?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 和資料來源提到的競爭對手(埃及、MENA 和全球)在 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):Sells、Offer's job 和 One-line idea 都 MATCH,沒有誤讀,沒有重大混淆,五個小問題。第一次的第 3 次觀看(第 4 輪)作廢:它透過專案路徑和評審標好的資料包開啟初版,當時沒有記憶點,也沒有做比對。第 1 和第 2 次觀看沒有執行(這道關卡是在執行途中、02 之後才加入技能的)。限制:資料包路徑中有「04-spotify」,觀眾看得到
分鏡檢查警告
引擎檢查與驗證通過頁面合約以單一 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;黃燈:只有 31.25-35 秒的節拍 hero_share 和 frame_fill 低於下限,推進每分鐘 12 次
豐富度下限通過hero_share 90.9%(下限 30),frame_fill 16 中 16(下限 10),empty_half 0 秒,in_shot_motion 100%,宣告的停留之外 longest_still 0 秒;depth_layers 中位數 5(頁面標記);表面細節(柏油顆粒、窗戶、工地鷹架和圍籬)、光線事件(按下時的光圈、drop)、真實素材(重建的介面、官方標誌)由評審 A 清點
動態與凍結通過0 次剪接、0 次凍結、1 段黑畫面(標誌前宣告的淡出)、0 段白畫面;接近凍結的取樣 16 個(喘息段和標誌停留)
接縫不適用一個連續鏡頭,沒有剪接(look.py 把 19.53 秒 drop 的閃光判讀為場景變換)
字幕與同步同步通過沒有人聲、沒有字幕;每個提示點的起始都在一格以內(評審 B:按下 7.5、drop 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 相比,6 軸中 4 軸不同
指紋沒有先前記錄記錄寫在專案內的 ice/review/fingerprint.jsonl(這次執行限定在它的資料夾內,所以沒有寫入 ~/.ice-motion-director/fingerprints.jsonl)
最終影格合約通過無損最終版的最後一格與靜態標誌頁在整個畫面上完全相同:0 個像素不同
最終版與核准剪輯版比對通過960x540 的最終影格與 draft-14 比對:九個時間點的 PSNR 為 36.7 到 43.6 dB;無損最終版與跳轉擷取的靜態畫面比對:片尾卡和標誌 0 px,街道圖層有最多 255 中 29 的小斑點(點陣歷程所致,最終版從第 0 格起以單一 worker 依序算繪)
品牌測試(品牌影片 QA 門檻)不通過遮住標誌和介面後,隨機 6 格中 0 格看得出是 Spotify(2 個 NO、4 個 WEAK):Spotify 綠只出現在播放圓鈕和標誌上,街道的顏色不是大家熟知的 Spotify 色
競品替換(品牌影片 QA 門檻)不通過35 秒中 12.5 秒(36%)專屬 Spotify,而且全是可替換的表層(重建的介面、綠色、標誌);這個點子套用到任何音樂 App 都成立
轉場以變形物件完成;明暗翻轉(品牌影片 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 打開場記板,準備喊開拍