كيف صُنعت هذه المقاطع — دليل عملي
ثلاثة مقاطع جاهزة للعرض، صُنعت كلها في جلسة واحدة، بتكلفة إجمالية $2.11.
هذا الملف يشرح كل أمر نصي (prompt) وكل سطر أمر (command) والتكلفة الحقيقية لكل خطوة — دون إخفاء شيء، بما في ذلك الأخطاء والميزانية المهدورة.
١ · الخلاصة في جدول واحد
| المقطع | المدة | ما بداخله | التكلفة الحقيقية |
|---|---|---|---|
| أغنية الحروف (16:9) | 30.8 ث | موسيقى + غناء عربي + ٦ صور | $0.2723 |
| فيديو سد مأرب القصير (9:16) | 59.7 ث | تعليق صوتي + ٦ صور + مقطعَي فيديو + موسيقى | $0.6325 |
| سُلّم الأسعار (16:9) | 4 ث ×٣ | نفس الأمر على ٣ نماذج | $1.0210 |
| (مهدور بسبب خطأ برمجي — انظر القسم ٧) | — | — | $0.1800 |
| الإجمالي | $2.1056 |
الرقم الأهم: الفيديو القصير (Short) التعليمي مدته دقيقة وكلفته $0.63.
لو استبدلنا مقطعَي الفيديو بصورتين ثابتتين لصارت التكلفة $0.31 — أي أن دقيقة الفيديو التعليمي الاحترافي تكلف أقل من ثلثي دولار.
⚠️ الأرقام أعلاه هي تكلفة الإنتاج فقط. لا تشمل وقتك، ولا تضمن مشاهدة المقطع أو تحقيق أرباح منه.
راجع ما قيل في المسار ٣ عن سياسة YouTube ومشكلة التحويلات المالية من اليمن.
٢ · الإجابة عن السؤال المطروح: هل يغني Lyria بالعربية؟
نعم، وهذا ليس تخميناً بل أمرٌ مؤكد.
أعطيت النموذج كلمات عربية موزونة، فغنّاها بالعربية الفصيحة وبنطق صحيح. للتأكد، عرضت الملف الصوتي على نموذجين مختلفين من Gemini وطلبت منهما تفريغ ما يسمعانه (بدون إعطائهما الكلمات الأصلية)، فأعاد كلاهما نفس الكلمات التي كتبتها.
| النموذج المُدقِّق | ما سمعه |
|---|---|
gemini-3.6-flash | «ألف باء تاء ثاء نقرأ معاً بهناء، ألف أرنب يقفز، باء بطة تسبح…» |
gemini-3.5-flash | «ألف باء تاء ثاء نقرأ معاً بها ألف أرنب يقفز باء بطة تسبح…» |
النتيجة العملية: لا حاجة للحيلة التي تلجأ إليها كثير من القنوات العربية (موسيقى بلا كلمات + صوت آلي منفصل يقرأ الكلمات). Lyria يغنّي الكلمات مباشرة، بكلفة $0.04 للمقطع الواحد (~٣٠ ثانية).
لكن بصراحة — ما هي عيوب الأغنية؟
- الصوت صوت واحد فقط، رغم أنني طلبت «جوقة أطفال». النموذج تجاهل الطلب.
- الآلات الموسيقية تبدو رخيصة/قديمة الطابع (هذا وصف Gemini الحرفي: "synthesized instruments sound a bit dated or cheap").
- الغناء ينتهي عند الثانية 22.2، ثم ٨.٥ ثانية موسيقى بلا غناء. اضطررت لملء هذا الفراغ ببطاقة ختامية.
النتائج صالحة للعرض، لكنها ليست بجودة قنوات الأطفال الاحترافية. قل هذا على المسرح.
٣ · التجهيز (مرة واحدة فقط)
الأدوات كلها في events/event 3/tools/:
| الأداة | ماذا تفعل | التكلفة |
|---|---|---|
media_gen.py speech | تعليق صوتي عربي (Gemini TTS) | مجاني |
media_gen.py image | صور (gemini-2.5-flash-image) | $0.0387 للصورة |
media_gen.py music | موسيقى وغناء (lyria-3-clip-preview) | $0.04 للمقطع |
video_gen.py | فيديو (veo / seedance) | $0.03–$0.15 للثانية |
audio_check.py | يسمع ملفاً صوتياً ويصفه — للتحقق | مجاني |
ffmpeg | التركيب والمونتاج | مجاني |
كل نداء مدفوع يمرّ على حارس ميزانية: يقدّر التكلفة → يقرأ الرصيد الحقيقي → يرفض إن تجاوز السقف.
لهذا يُمرَّر --ceiling في كل أمر.
# تحقّق من الرصيد قبل أي شيء
curl -H "Authorization: Bearer $OPEN_ROUTER_API_KEY" https://openrouter.ai/api/v1/key
٤ · الأصل الأول — أغنية الحروف ($0.2723)
٤.١ الكلمات
كُتبت بالفصحى المشكولة (التشكيل يساعد النموذج على النطق الصحيح)، ثم دُقّقت لغوياً عبر Gemini قبل الاستخدام (tools/arabic_review.py) — ١٥ نصاً، وافق على ١٤ وصحّح واحداً.
أَلِف بَاء تَاء ثَاء، نَقْرَأُ مَعاً بِهَنَاء
أَلِف أَرْنَبٌ يَقْفِزُ، بَاء بَطَّةٌ تَسْبَحُ
تَاء تُفَّاحَةٌ حَمْرَاء، ثَاء ثَعْلَبٌ في الصَّحْرَاء
جِيم جَمَلٌ في البَادِيَة، حَاء حِصَانٌ يَجْرِي
حُرُوفُنَا حُرُوفُنَا، أَجْمَلُ شَيْءٍ عِنْدَنَا
٤.٢ توليد الأغنية — $0.0400
الأمر النصي حرفياً (بالإنجليزية — النماذج تفهمها أدقّ في وصف الأسلوب الموسيقي):
Cheerful Arabic children's nursery rhyme for preschoolers. Lead vocal: warm
female voice singing IN ARABIC, joined by a small children's choir singing along
in Arabic. Bright simple singable melody, ukulele, glockenspiel, hand claps,
light kick and shaker, major key, 108 BPM, playful and innocent, clear enunciated
Arabic lyrics, no English.
python media_gen.py music --ceiling 0.05 --seconds 30 \
--out "../trials/song/audio/letters-v1.mp3" \
--prompt "<الأمر أعلاه>" \
--lyrics "<الكلمات في ٤.١>"
الدرس: اكتب وصف الأسلوب بالإنجليزية، والكلمات بالعربية. هذا ما نجح.
٤.٣ الصور — ٦ صور × $0.0387 = $0.2323
أهم حيلة في هذا القسم: ضع نفس جملة الأسلوب حرفياً في نهاية كل أمر. هذا ما يجعل الصور الست تبدو من عالم واحد:
children's picture-book illustration, warm flat gouache painting style, soft
rounded shapes, thick friendly hand-drawn outlines, warm sunny palette of cream,
terracotta, mustard yellow, sage green and sky blue, subtle paper grain texture,
simple uncluttered composition, gentle innocent mood for preschool children,
absolutely no text, no letters, no writing, no signage anywhere in the image
⚠️ لماذا «no text, no letters»؟ لأن نماذج الصور تشوّه الحروف العربية تماماً.
الحل: اطلب صورة خالية من النصوص، ثم أضف الكلمات العربية بنفسك أثناء المونتاج (ffmpeg).
هذه هي الطريقة الصحيحة الوحيدة، وهي مجانية.
المشاهد الستة (يُضاف لكل منها نص الأسلوب أعلاه):
| الملف | الأمر النصي |
|---|---|
01-children.png | Three happy young children sitting cross-legged on a soft rug in a sunlit room, sharing one big open picture book, a small window with a potted plant behind them. |
02-rabbit.png | A cheerful white rabbit caught mid-hop over a grassy meadow dotted with small wildflowers, wide blue sky with a few soft clouds. |
03-duck.png | A little yellow duckling swimming on a calm blue pond, gentle ripples spreading around it, tall green reeds at the water's edge. |
04-fox.png | A friendly small desert fox with big ears sitting on warm sand beside one big shiny red apple, soft dunes and a single acacia tree behind. |
05-camel.png | A gentle smiling camel standing on golden desert dunes at soft golden hour, delicate sand ripples, clear warm sky. |
06-horse.png | A happy brown horse galloping across an open green field, mane and tail flowing, low warm sun glowing behind. |
python media_gen.py image --aspect 16:9 --ceiling 0.05 \
--out "../trials/song/images/02-rabbit.png" \
--prompt "<وصف المشهد> <نص الأسلوب>"
٤.٤ الحيلة التي رفعت الجودة أكثر من أي شيء آخر — المونتاج على إيقاع الغناء
بدل تقسيم الصور بالتساوي (٣٠.٨ ÷ ٦ = ٥.١ ث لكل صورة)، سألت Gemini أن يستمع للأغنية ويخبرني متى يُغنّى كل حرف:
python audio_check.py "../trials/song/audio/letters-v1.mp3" \
--ask "give the timestamp in seconds where each letter's line is SUNG..."
فأعطى: أ عند 4.8 · ب عند 6.9 · ت عند 9.0 · ث عند 11.1 · ج عند 13.3 · ح عند 15.5
وتحقّقت من صدق هذه الأرقام بقصّ المقطع من 6.9 إلى 9.0 وسؤاله عمّا فيه — فأجاب «بطة تسبح». صحيح.
الآن كل قطع بصري يقع على الكلمة المغنّاة بالضبط. هذه الخطوة مجانية وتغيّر طابع المقطع وتأثيره تماماً.
٤.٥ التركيب
cd trials/song && python build.py
build.py يفعل ثلاثة أشياء:
- يبني لكل مشهد مقطعاً بحركة تقريب/تبعيد بطيئة (
zoompan) — الصورة الساكنة تصبح لقطة حيّة. - يستخدم صورة الثعلب مرتين بتأطيرين مختلفين: مرة على التفاحة (
ت) ومرة على الثعلب (ث). صورة واحدة = لقطتان = توفير $0.04. - يكتب الحروف العربية بـ
libassفوق الفيديو.
٥ · الأصل الثاني — فيديو سد مأرب القصير ($0.6325) ← ابدأ من هنا
هذا هو الشكل الأكثر قابلية للتكرار: ٦ صور ثابتة + مقطعا فيديو + تعليق صوتي مجاني.
٥.١ النص (~٦٠ ثانية)
قاعدة: جملة قصيرة واحدة لكل لقطة، وعنصر الجذب (Hook) في أول ٣ ثوانٍ.
| # | النص | المدة |
|---|---|---|
| ١ | أعظمُ سدٍّ في العالم القديم لم يكن في مصر… بل في اليمن. | 6.8 ث |
| ٢ | قبل نحو ثلاثة آلاف عام، بنى السبئيون سدَّ مأرب في وادٍ بين جبلين. | 7.8 ث |
| ٣ | لم يكن السد يخزّن الماء طوال العام، بل كان يقتنص السيول. | 6.6 ث |
| ٤ | تنزل الأمطار الموسمية من الجبال، فيوقفها الجدار ويرفع منسوبها. | 6.7 ث |
| ٥ | ثم تُفتح البوابات، فيجري الماء في قنوات حجرية إلى آلاف الحقول. | 7.9 ث |
| ٦ | سُقيت به واحة مساحتها نحو مئة كيلومتر مربع، في قلب الصحراء. | 7.4 ث |
| ٧ | صمد السد أكثر من ألف عام، لأن الناس كانوا يرمّمونه كل موسم. | 6.4 ث |
| ٨ | وحين توقّفت الصيانة، انهار السد. الهندسة تبقى بالصيانة، لا بالبناء وحده. | 9.8 ث |
الجملة الأخيرة هي الخلاصة — لا تنهِ الفيديو القصير بمعلومة، بل أنهِه بفكرة.
٥.٢ التعليق الصوتي — $0.00
python media_gen.py speech --voice Charon \
--out "../trials/short/audio/s1.wav" \
--text "اقرأ النص التالي بصوت راوٍ وثائقي دافئ وواضح، بإيقاع هادئ وثقة: <الجملة>"
حيلتان مهمّتان:
- ضع تعليمات الأداء داخل النص نفسه («اقرأ بصوت راوٍ وثائقي…»). النموذج ينفّذها ولا ينطقها. تحقّقت من ذلك.
- ولّد كل جملة في ملف منفصل؛ لتحديد مدتها بدقة وضبط طول اللقطة وتزامن النصوص معها. وإذا ساءت جملة، تعيد توليدها وحدها.
الصوت المختار: Charon (أعمق، وثائقي الطابع).
⚠️ الحدّ المجاني ١٠ نداءات في الدقيقة. إن ظهر 429، انتظر قليلاً وأعد المحاولة.
٥.٣ الصور الست — $0.2325
جملة الأسلوب الموحّدة:
cinematic documentary illustration, painterly realism with soft depth of field,
warm golden desert light, fine dust haze in the air, ochre sandstone and deep
teal water tones, dramatic natural lighting, richly detailed, vertical
composition, absolutely no text, no letters, no writing, no watermark, no signage
| الملف | الأمر النصي |
|---|---|
01-dam.png | A colossal ancient stone dam wall spanning a narrow rocky valley between two mountains in ancient Arabia, massive fitted masonry blocks, viewed from below at golden hour, tiny human figures at the base giving a sense of enormous scale. |
02-build.png | Ancient Sabaean workers in simple linen garments hauling and setting huge cut stone blocks to build a dam wall between two mountains, wooden scaffolding, ropes and baskets of earth, bright clear desert daylight. |
03-flood.png | A dry desert valley riverbed seen from a high vantage point, a distant wall of brown flash-flood water surging down the wadi toward a stone dam, dark storm clouds gathering over the mountains. |
06-oasis.png | Aerial view of a vast green irrigated oasis of dense palm groves and geometric farm fields in the middle of golden desert, thin silver irrigation channels branching across it, late afternoon light. |
07-repair.png | Ancient workers repairing a stone dam wall, lifting replacement blocks into a gap and packing silt, woven baskets and simple hand tools, a foreman pointing, warm morning light. |
08-ruin.png | The ruined breached remains of a colossal ancient stone dam in a desert valley, a huge gap torn through the middle of the wall, scattered fallen blocks, dry cracked earth, dusk light. |
--aspect 9:16 للشكل العمودي.
٥.٤ مقطعا الفيديو — $0.18 لكل واحد
متى يستحق الفيديو ثمنه؟ حين تكون الحركة هي الفكرة نفسها.
هنا: الماء. الماء الساكن في صورة لا يعني شيئاً؛ الماء المندفع يعني كل شيء.
python video_gen.py --model google/veo-3.1-lite --seconds 6 \
--resolution 720p --aspect 9:16 --no-audio --ceiling 0.20 \
--out "../trials/short/video/v1-flood.mp4" --prompt "<الأمر>"
| المقطع | الأمر النصي | الزمن |
|---|---|---|
v1-flood | Aerial cinematic shot: brown flash-flood water surging down a narrow desert wadi between steep rocky mountains, churning and foaming, slamming into a massive ancient stone dam wall, dust and spray glowing in warm low sunlight. Slow motion, photorealistic documentary footage, no text, no captions, no people. | 90 ث |
v2-channel | Cinematic low tracking shot following clear water racing along a straight ancient stone irrigation channel in the desert, out toward distant green fields and palm groves, sunlight glinting on the fast moving surface, warm dusty air, photorealistic documentary footage, no text, no captions, no people. | 90 ث |
--no-audio يخفض السعر من $0.05 إلى $0.03 للثانية. ولا نحتاج صوت النموذج لأن التعليق يغطّيه.
٥.٥ الموسيقى الخلفية — $0.0400
Sparse cinematic documentary underscore, purely INSTRUMENTAL with absolutely no
voices and no singing. Slow oud and low sustained strings, soft frame-drum pulse,
warm desert atmosphere, contemplative and patient, understated, leaves room for a
narrator, 70 BPM, minor key.
ثم تحقّقت أنها فعلاً بلا غناء عبر audio_check.py (لو فيها غناء لتصادمت مع التعليق).
مقطع واحد ٣٠ ثانية يُكرَّر ليغطّي الدقيقة — لا داعي لشراء مقطع ثانٍ.
٥.٦ التركيب
cd trials/short && python build.py
ما يفعله، بالترتيب:
- يقصّ الصمت من بداية كل جملة صوتية (Gemini يترك ~٠.٢٨ ث صمت). هذا يشدّ الإيقاع.
- يبني لقطة لكل جملة بطولها بالضبط → الصورة والصوت متزامنان دائماً.
- يمدّد مقطع الفيديو (٦ ث) ليغطي الجملة (٦.٨ ث) بتباطؤ خفيف — الماء يتحمّل التباطؤ.
- يخلط التعليق مع الموسيقى، والموسيقى أخفض بـ 19 dB.
- يحرق الترجمة العربية بـ
libass.
التحقق النهائي: أعدتُ الصوت النهائي (بعد الخلط) إلى Gemini وطلبت تفريغه — فأعاد النص كاملاً وحرفياً. هذا يثبت أن التعليق مسموع فوق الموسيقى، لا مجرد ادّعاء.
٦ · الأصل الثالث — سُلّم الأسعار ($1.0210)
نفس الأمر النصي حرفياً، ثلاثة نماذج، ثلاثة أسعار.
A traditional multi-storey Yemeni tower house in the old city of Sana'a at golden
hour, intricate white gypsum tracery around the windows, camera slowly pushing
forward, warm dust motes drifting in the low sunlight, a flock of pigeons lifting
off from the rooftop.
كلها: 4 ثوانٍ · 720p · 16:9
| النموذج | التكلفة | زمن التوليد | الصوت |
|---|---|---|---|
google/veo-3.1-lite | $0.2000 | 54 ث | صوت مولّد واضح (max −1.5 dB) |
bytedance/seedance-1-5-pro | $0.2099 | 84 ث | صوت خافت جداً (max −18.6 dB) |
bytedance/seedance-2.0 | $0.6111 | 145 ث | بلا صوت إطلاقاً |
الحكم — بصراحة
نعم، النموذج الأعلى تكلفة أفضل بصرياً، وهذه حقيقة واضحة.seedance-2.0 أعطى أجمل تكوين، وأفضل إضاءة، وأنعم حركة كاميرا، وأقل تشوّهاً في تفاصيل الجصّ.
ولكن:
- أغلى بـ ٣ مرات وأبطأ بـ ٢.٧ مرة من
veo-3.1-lite. - رفض التوليد أول مرة بحجة «قد يكون الصوت الناتج محمياً بحقوق نشر»، ولم ينجح إلا بعد تعطيل الصوت. النموذج الغالي أعطاني فيديو صامتاً.
veo-3.1-liteكان الأكثر التزاماً بالأمر: هو الوحيد الذي أظهر فعلاً بيتاً يمنياً متعدد الطوابق وسرباً ينطلق من السطح.seedance-2.0أعطى واجهة أقرب للطراز الأندلسي/المغربي، والطيور نقاط بعيدة.- النموذجان الأقل تكلفة أنتجا مادة قابلة للاستخدام تماماً في مقطع مدته دقيقة.
الحساب الذي يهمّ صانع محتوى بلا مال:
| لو بنيتَ شورت دقيقة من ١٠ لقطات فيديو | التكلفة |
|---|---|
كلها seedance-2.0 | $6.11 |
كلها veo-3.1-lite | $2.00 |
| الطريقة التي استخدمناها فعلاً: ٦ صور + مقطعان | $0.63 |
الدرس ليس «أي نموذج أفضل؟» بل «كم ثانية فيديو مُولَّد تحتاج فعلاً؟»
الجواب: قليلاً جداً. الصور الثابتة مع حركة تقريب بطيئة تصنع أساس المقطع، بينما يُستخدم الفيديو عندما تكون الحركة ضرورية للمعنى.
المقارنة الجاهزة للعرض: trials/ladder/price-ladder-compare.mp4
٧ · ما الذي أخفق — بصراحة كاملة
| المشكلة | ما حدث | الحل |
|---|---|---|
| خط Dubai يفسد الألف | خط Dubai على هذا الجهاز يعرض حرف الألف (ا أ إ آ) كمربع فارغ ▯. اكتُشف قبل الإنفاق. | استُخدم Tahoma. ⚠️ لوحة Excalidraw للجلسة مضبوطة على خط Dubai ويجب فحصها. |
| ضاع $0.18 | video_gen.py كان ينزّل النتيجة من unsigned_urls بلا مفتاح → خطأ 401 بعد أن دُفع ثمن الفيديو. | صُحّحت الأداة (تجرّب بمفتاح وبدونه)، وأُضيف تسجيل رقم المهمة و--recover. |
| رفض seedance-2.0 | فشل بسبب فلتر حقوق نشر على الصوت. | أُعيد بـ --no-audio. المحاولة الفاشلة لم تُحاسَب. |
| Gemini كذب | قال إن مقطع seedance-2.0 فيه صوت — وهو خالٍ من أي مسار صوتي أصلاً. | لا تثق بحكم النموذج وحده. ffprobe هو الحَكَم. |
| حدّ TTS | 429 بعد ١٠ نداءات في الدقيقة. جملتان وُلّدتا بنموذج احتياطي. | تحقّقت أن الصوت لم يتغيّر مسموعاً، فأُبقيتا. |
| مقطع الفيضان | بعد الثانية 3.5 يتحوّل إلى ما يشبه انفجاراً غبارياً لا فيضاناً. | نُقل ليكون الخطّاف الافتتاحي حيث الإبهار مطلوب. |
| إطارات في الصور | صورتان من ست رسم النموذج فيهما إطاراً زخرفياً لم يُطلب. | حركة التقريب تبدأ من 1.06 فتقصّه. |
٨ · ابدأ الليلة — بهذا الترتيب
الخطوة ١ (مجانية تماماً — ابدأ بها الآن):
ولّد جملة عربية واحدة بـ media_gen.py speech واستمع إليها. صفر تكلفة، ودقيقة واحدة، وستعرف فوراً إن كان هذا المسار يناسبك.
الخطوة ٢ ($0.04):
ولّد صورة واحدة. اكتب وصف الأسلوب بالتفصيل، وأضف دائماً no text, no letters.
الخطوة ٣ (~$0.25):
اصنع فيديو قصيراً كاملاً من صور ثابتة فقط (دون فيديو مُولَّد). ٦ صور + تعليق صوتي + zoompan. هذا يمنحك ٩٠٪ من النتيجة بـ ٤٠٪ من التكلفة.
الخطوة ٤ ($0.18):
أضف مقطع فيديو واحداً فقط، في الموضع الذي تكون فيه الحركة هي الفكرة.
لا تفعل:
- ❌ لا تبدأ بشراء فيديو من نموذج غالٍ.
- ❌ لا تطلب من نموذج الصور أن يكتب نصاً عربياً — سيخرج مشوّهاً. اكتبه بـ
ffmpeg. - ❌ لا تنشر شيئاً قبل مراجعته بنفسك؛ تحققتُ بـ
ffprobeوaudio_check.py، لكن التقييم البشري هو الحكم الأخير.
٩ · التحقق — الأدلة لا الادّعاءات
song-letters-final.mp4 1920×1080 30.77 ث h264 + aac max −0.2 dB
marib-dam-short.mp4 1080×1920 59.70 ث h264 + aac max −4.4 dB
price-ladder-compare.mp4 1920×1080 4.00 ث h264 (صامت عمداً)
- كل ملف فُحص بـ
ffprobe: المدة والأبعاد ووجود مسار الصوت حقيقية. - تم قياس مستوى الصوت بـ
volumedetectللتأكد من وضوحه، وليس لمجرد وجود مسار صوتي. - العربية المحروقة في الفيديو فُحصت بصرياً على إطارات مستخرجة قبل الاعتماد.
- كل نص عربي مرّ على Gemini للتدقيق اللغوي قبل أن يظهر على الشاشة (٣٧ نصاً، صُحِّح ٢٠ منها — من بينها خطأ حسابي وقعتُ فيه: كتبت «أقل من ثلث دولار» والصواب «ثلثي دولار»).
صور الإثبات — trials/verification/
| الملف | ماذا يثبت |
|---|---|
01-FONT-BUG-dubai-drops-alef.png | خط Dubai يفقد الألف، بينما Tahoma وSegoe UI وArial سليمة |
02-song-images-style-match.png | تطابق أسلوب صور الأغنية الست |
03-song-final-frames.png | إطارات الأغنية النهائية — الحروف العربية مرسومة صحيحة |
04-short-images-style-match.png | تطابق أسلوب صور الشورت الست |
05-short-final-frames-arabic-subs.png | الترجمة العربية المحروقة — الاتجاه والتشكيل سليمان |
06-short-video-clips.png | إطارات من مقطعَي الفيديو المولّدين |
07-ladder-3x3-model-comparison.png | مقارنة النماذج الثلاثة، ٣ إطارات لكل نموذج |
08-ladder-compare-strip.png | شريط المقارنة الجاهز للعرض |
شجرة الملفات
trials/
├── WORKFLOW.md ← هذا الملف
├── spend-log.md ← كل نداء مدفوع
├── video-jobs.md ← أرقام مهام الفيديو (للاسترجاع)
├── song/ song-letters-final.mp4 + build.py + images/ + audio/
├── short/ marib-dam-short.mp4 + build.py + images/ + video/ + audio/
├── ladder/ price-ladder-compare.mp4 + build.py + المقاطع الثلاثة الأصلية
└── verification/ ← صور الإثبات أعلاه
الرصيد: المفتاح بدأ عند $4.842588 وانتهى عند $2.737036.
المصروف الفعلي: $2.105552 من سقف $3.50.
كل نداء مدفوع مسجَّل في trials/spend-log.md.