
CDAF যা করে
CDAF, যার পূর্ণরূপ Cached Descriptive Asset Files, ভিডিওর জন্য একটি উন্মুক্ত সাইডকার ফরম্যাট। এটি একই বেসনেম ব্যবহার করে একটি ভিডিওর পাশে টাইমস্ট্যাম্পসহ সাধারণ পাঠ্য বর্ণনা সংরক্ষণ করে। উদাহরণস্বরূপ, sunset-drone.mp4-এর সঙ্গে sunset-drone.cdaf যুক্ত থাকে।
এর লক্ষ্য হলো একটি ভিডিওর বর্ণনা একবার তৈরি করে পরবর্তী AI কাজগুলোতে পুনরায় ব্যবহার করা। প্রতিটি প্রশ্নের জন্য একই ফুটেজ ভিডিও-বোঝার মডেলে পাঠানোর বদলে, কোনো এজেন্ট অনেক ছোট CDAF ফাইলটি যাচাই করে পড়তে পারে।
footage/
sunset-drone.mp4
sunset-drone.cdafমূল ভিডিও অপরিবর্তিত থাকে এবং সাধারণ ভিডিও সফটওয়্যার দিয়ে চালানো যায়। সাইডকারটি UTF-8 টেক্সট, যাতে একটি ছোট মেটাডেটা হেডারের পর ভাষা মডেলের জন্য অপ্টিমাইজ করা Markdown বর্ণনা থাকে।
সাইডকারটি কেন নিরাপদে পুনরায় ব্যবহার করা যায়
CDAF হেডারে ভিডিওটির সঠিক SHA-256 হ্যাশ এবং বাইটের আকার记录 করা থাকে। সামঞ্জস্যপূর্ণ টুলগুলো এই মান ব্যবহার করে বর্ণনাটি এখনও বৈধ কি না নির্ধারণ করে। ভিডিও পরিবর্তিত হলে সাইডকারটি পুরোনো হয়ে যায় এবং ব্যবহার করা উচিত নয়।
--- CDAF/1.0
video: sunset-drone.mp4
sha256: 4a7d1ed4…
bytes: 48211394
duration: 00:00:31.500
generator: gemini-2.5-flash
created: 2026-08-26T14:03:12Z
---
## Summary
A 31-second aerial drone clip of a coastal highway at golden hour…
## Segments
[00:00.0-00:05.2] Wide aerial establishing shot…
[00:05.2-00:12.8] The drone pushes in and descends…
## Transcript
(no speech)
## On-screen Text
(none)
## Tags
drone, aerial, coastal highway, golden hour, sunsetমূল অংশে সারসংক্ষেপ, টাইমস্ট্যাম্পযুক্ত সেগমেন্ট, ট্রান্সক্রিপ্ট, পর্দায় প্রদর্শিত লেখা এবং ট্যাগ থাকতে পারে। আদর্শ ফরম্যাট, সতেজতার অর্থ, সংস্করণ নিয়ম এবং বিভাগের ব্যাকরণ সম্পর্কে বিস্তারিত জানতে প্রকল্পের CDAF 1.0 specification দেখুন।
প্রধান বৈশিষ্ট্য
- যাচাইকৃত পুনঃব্যবহার: SHA-256 এবং বাইট-আকারের মেটাডেটা একটি সাইডকারকে তার বর্ণিত নির্দিষ্ট ভিডিওর সঙ্গে যুক্ত করে।
- পাঠযোগ্য টেক্সট ফরম্যাট: এজেন্টরা আবার ভিডিও ডিকোড না করেই বর্ণনা ব্যবহার, অনুসন্ধান এবং পুনঃব্যবহার করতে পারে।
- টাইমস্ট্যাম্পযুক্ত সেগমেন্ট: সেগমেন্টের পরিসর ক্লিপ নির্বাচন এবং কাট-লিস্ট তৈরিতে সহায়তা করতে পারে।
- শূন্য-নির্ভরতা কোর: পার্সিং, সিরিয়ালাইজেশন, হ্যাশিং, সতেজতা যাচাই এবং সেগমেন্ট নিষ্কাশনে Python স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করা হয়।
- ব্যাচভিত্তিক CLI: কমান্ড-লাইন টুলটি একটি ডিরেক্টরির জন্য সাইডকার তৈরি করতে পারে এবং ইতিমধ্যে সতেজ সাইডকারগুলো বাদ দিতে পারে।
- একাধিক বিস্তারিত প্রোফাইল: জেনারেশন
brief,standardএবংrichআউটপুট সমর্থন করে। - এজেন্ট স্কিল: প্যাকেজ করা স্কিলটি ভিডিও বিশ্লেষণের আগে যাচাইকৃত সাইডকার পরীক্ষা করতে কোডিং এজেন্টদের শেখায়।
- ঐচ্ছিক লোকাল জেনারেশন: রিপোজিটরিতে স্থানীয় মডেল দিয়ে এবং কোনো API key ছাড়াই জেনারেশনের জন্য
--localprovider অন্তর্ভুক্ত রয়েছে। - ঐচ্ছিক প্রোবিং: CDAF সময়কাল, রেজোলিউশন এবং ফ্রেম-রেটের মেটাডেটার জন্য ffprobe ব্যবহার করতে পারে; ffprobe না থাকলেও এটি নমনীয়ভাবে সীমিত কার্যকারিতায় চলতে পারে।
এজেন্ট স্কিল ইনস্টল করুন
সমর্থিত কোনো কোডিং এজেন্টকে সাইডকার-প্রথম কর্মপ্রবাহ শেখানোর দ্রুততম উপায় হলো:
npx cdaf-skillডিফল্টভাবে, এটি স্কিলটি ~/.claude/skills/cdaf-এ ইনস্টল করে, ফলে সব প্রকল্পে এটি ব্যবহার করা যায়। সমর্থিত অন্যান্য ইনস্টলেশন পদ্ধতিগুলো হলো:
npx cdaf-skill --project
npx cdaf-skill --dir <path>
npx cdaf-skill --print--projectবর্তমান প্রকল্পের জন্য./.claude/skills/cdaf-এ ইনস্টল করে।--dirনির্ধারিত একটি ডিরেক্টরিতে ইনস্টল করে।--printস্কিলটি স্ট্যান্ডার্ড আউটপুটে লেখে, যাতে এটি অন্য এজেন্ট ফ্রেমওয়ার্কে পেস্ট করা যায়।
ইনস্টলারটি আবার চালানো নিরাপদ। অপরিবর্তিত স্কিল অপরিবর্তিতই থাকে, আর পরিবর্তিত স্কিল প্রতিস্থাপনের আগে SKILL.md.bak নামে ব্যাকআপ করা হয়।
কোনো ভিডিও ফাইল বিশ্লেষণের আগে একই বেসনেমের
.cdafফাইল খুঁজুন। এরbytesএবংsha256হেডার মান ভিডিওটির সঙ্গে মিললে ভিডিও প্রক্রিয়া করার বদলে সেটি পড়ুন।
CDAF CLI ইনস্টল করুন
Python CLI-এর জন্য Python 3.10 বা তার পরের সংস্করণ প্রয়োজন। PyPI রিলিজ এখনও ভবিষ্যৎ পরিকল্পনায় থাকায় বর্তমান README অনুযায়ী এটি সরাসরি রিপোজিটরি থেকে ইনস্টল করা হয়।
pip install "cdaf[generate] @ git+https://github.com/UditAkhourii/cdaf.git#subdirectory=cli"ক্লোন করা রিপোজিটরি থেকে কাজ করলে স্থানীয় cli ডিরেক্টরি থেকে CLI ইনস্টল করুন:
pip install ./cli[generate]জেনারেটর বাস্তবায়ন Gemini Files API ব্যবহার করে। Google AI Studio থেকে একটি Gemini API key সংগ্রহ করুন, তারপর সেটি আপনার পরিবেশে নির্ধারণ করুন।
macOS এবং Linux
export GEMINI_API_KEY=your-keyWindows PowerShell
$env:GEMINI_API_KEY="your-key"আপনার ফুটেজ আপনার নিজস্ব API key ব্যবহার করে প্রক্রিয়া করা হয়। শুধু বিদ্যমান সাইডকার পড়া বা যাচাই করা কমান্ডগুলোর জন্য API key বা জেনারেটর নির্ভরতা প্রয়োজন হয় না।
সাইডকার তৈরি করুন
একটি ডিরেক্টরিতে এক বা একাধিক ভিডিও রাখুন এবং সেই ডিরেক্টরির ওপর cdaf generate চালান:
cdaf generate ./footageCDAF ভিডিওগুলোর বর্ণনা তৈরি করে এবং মিলে যাওয়া বেসনেমসহ সাইডকার বানায়। আবার চালালে যেসব ভিডিওর সাইডকার ইতিমধ্যে সতেজ, সেগুলো বাদ দেয়।
বিস্তারিত প্রোফাইল বেছে নিন
নথিভুক্ত তিনটি জেনারেশন প্রোফাইলের একটি নির্বাচন করতে --detail ব্যবহার করুন:
cdaf generate ./footage --detail brief
cdaf generate ./footage --detail standard
cdaf generate ./footage --detail richডাউনস্ট্রিম কাজগুলোর কতটা বর্ণনামূলক প্রেক্ষাপট প্রয়োজন তার ভিত্তিতে একটি প্রোফাইল বেছে নিন। আপনি --model দিয়ে একটি Gemini মডেল নির্বাচন করতে পারেন অথবা --force দিয়ে পুনরায় জেনারেশনের অনুরোধ করতে পারেন।
cdaf generate ./footage --model <gemini-model>
cdaf generate ./footage --forceএকটি ভিডিও লাইব্রেরির অবস্থা পরীক্ষা করুন
সাইডকারগুলোকে FRESH, STALE, অথবা MISSING হিসেবে শ্রেণিবদ্ধ করতে status কমান্ড ব্যবহার করুন:
cdaf status ./footage- FRESH: সাইডকারটি বর্তমান ভিডিওর সঙ্গে মেলে।
- STALE: একটি সাইডকার আছে, কিন্তু এতে রেকর্ড করা পরিচয়টি আর ভিডিওটির সঙ্গে মেলে না।
- MISSING: কোনো মিল থাকা CDAF সাইডকার পাওয়া যায়নি।
এই কমান্ডের জন্য API key বা generation dependency কোনোটি দরকার হয় না, তাই বিদ্যমান asset library-তে হালকা যাচাইয়ের জন্য এটি উপযোগী।
যাচাইকৃত বিবরণ পড়ুন
কোনো agent, script, অথবা prompt-এর জন্য সাইডকারের মূল লেখা প্রয়োজন হলে cdaf read ব্যবহার করুন:
cdaf read ./footage/sunset-drone.mp4বিবরণ দেখানোর আগে কমান্ডটি hash যাচাই করে। এটি stale সাইডকার দেখাতে অস্বীকার করে, ফলে freshness-এর নিয়মটি শুধু agent নির্দেশনার ওপর নির্ভর না করে tool-এর মধ্যেই কার্যকর থাকে।
অটোমেশনে সাইডকার যাচাই করুন
মিল থাকা সাইডকারটি সঠিকভাবে গঠিত এবং fresh হলেই কেবল validation কমান্ড সফলভাবে শেষ হয়:
cdaf validate ./footage/clip.mp4কমান্ডটি কেবল বৈধ, fresh সাইডকারের জন্য status 0 ফেরত দেয় বলে এটি script বা continuous-integration workflow-তে ব্যবহার করা যায়। Validation-এর জন্য API key বা ঐচ্ছিক generator dependency দরকার হয় না।
Python থেকে CDAF ব্যবহার করুন
মূল Python API কোনো language model-এ মূল লেখা পাঠানোর আগে সাইডকার খুঁজে বের করতে, লোড করতে এবং যাচাই করতে দেয়।
from cdaf import load, check_freshness, sidecar_path_for
video = "footage/sunset-drone.mp4"
sidecar = load(sidecar_path_for(video))
if check_freshness(video, sidecar) == "fresh":
context_for_llm = sidecar.bodyএই প্যাটার্নটিই CDAF integration-এর মূল ধাপ: প্রত্যাশিত সাইডকার path নির্ধারণ করুন, file parse করুন, ভিডিওর সঙ্গে freshness যাচাই করুন, এবং ফলাফল fresh হলেই কেবল sidecar.body ব্যবহার করুন।
Package-এর core serialization, chunked SHA-256 calculation, এবং segment extraction-ও সমর্থন করে। এসব operation কেবল standard library ব্যবহার করে। Generation অনুরোধ করা হলেই শুধু generator-specific code import করা হয়।
সাইডকার-প্রথম Agent Workflow তৈরি করুন
- Editing, search, অথবা question-answering task-এর অংশ হিসেবে একটি video path গ্রহণ করুন।
- একই basename-সহ একটি
.cdaffile খুঁজুন। - বর্তমান ভিডিওর সঙ্গে সাইডকারটির freshness পরীক্ষা করুন।
- এটি fresh হলে আরেকবার video-understanding pass চালানোর বদলে এর লেখা পড়ুন।
- এটি stale বা missing হলে এর বিষয়বস্তুর ওপর নির্ভর করার আগে পুনরায় generate করুন।
- Downstream task-এর context হিসেবে summary, segments, transcript, on-screen text, এবং tags ব্যবহার করুন।
Packaged agent skill অনুসন্ধানের সময় হালকা size check এবং গুরুত্বপূর্ণ সিদ্ধান্তের জন্য পূর্ণ hash check করার পরামর্শ দেয়। Operation অনুযায়ী উপযুক্ত verification level ব্যবহার করা উচিত, তবে stale বিবরণকে বিশ্বাস করা যাবে না, এই মূল নিয়মটি বজায় রাখতে হবে।
উন্নত টিপস
ভিডিও সংগ্রহকে লেখা হিসেবে অনুসন্ধান করুন
ভিডিওগুলোর সাইডকার তৈরি হয়ে গেলে agent এবং command-line tool প্রতিটি ভিডিও খোলার বদলে .cdaf file অনুসন্ধান করতে পারে। Tags এবং descriptions কোনো asset library-তে মানুষ ছাড়া সূর্যাস্তের উপকূলীয় দৃশ্য-এর মতো অনুরোধকে text retrieval-এ রূপ দিতে পারে।
Segment-কে Edit Decision-এ রূপান্তর করুন
[00:05.2-00:12.8]-এর মতো timestamp-যুক্ত line এমন range দেয়, যা programmatic editor clip বা sequence-এ রূপান্তর করতে পারে। README বিশেষভাবে Remotion, HyperFrames, এবং prompt-to-edit tool-কে এমন workflow হিসেবে চিহ্নিত করেছে, যেগুলো এই structure থেকে উপকৃত হতে পারে।
Transcript-এর Timing পুনর্ব্যবহার করুন
কথোপকথন থাকলে Transcript section সংলাপকে timeline-এর সঙ্গে সামঞ্জস্য করে। আরেকটি understanding pass চালানোর বদলে editing workflow captions এবং audio synchronization-এর জন্য এই তথ্য পুনর্ব্যবহার করতে পারে।
ঐচ্ছিক ffprobe Metadata ব্যবহার করুন
ffprobe উপলভ্য থাকলে CDAF-এর probe component duration, resolution, এবং frames-per-second metadata সংগ্রহ করতে পারে। ffprobe না থাকলেও engine স্বাভাবিকভাবে কাজ চালিয়ে যায়, তাই এই ঐচ্ছিক integration মৌলিক sidecar operation-এ বাধা দেয় না।
Local Generation বিবেচনা করুন
Repository-তে --local-এর মাধ্যমে ব্যবহারের জন্য একটি local provider রয়েছে। API key ব্যবহার না করে local model দিয়ে generation করার উদ্দেশ্যে এটি দেওয়া হয়েছে। বর্তমানে সমর্থিত local-model setup-এর জন্য repository-র local provider implementation দেখুন।
Backend-কে Format থেকে আলাদা রাখুন
CDAF নিজে model-agnostic। Gemini হলো অন্তর্ভুক্ত remote generator backend, আর অন্যান্য video-language-model backend একই Sidecar type-এর আড়ালে যুক্ত হতে পারে। অতিরিক্ত Claude, GPT, এবং local VLM backend roadmap-এ তালিকাভুক্ত; এগুলো এখনই উপলভ্য বলে ধরে নেওয়া উচিত নয়।
Benchmark পুনরুৎপাদন করুন
Repository-তে ffmpeg ব্যবহার করে scripted recipe থেকে video synthesis করার একটি objective benchmark রয়েছে। এর stage-গুলো ক্রমানুসারে চালান:
python benchmarks/bench.py make
python benchmarks/bench.py run
python benchmarks/bench.py reportপ্রথম ধাপে ffmpeg প্রয়োজন, দ্বিতীয় ধাপে GEMINI_API_KEY প্রয়োজন, এবং শেষ ধাপে benchmarks/RESULTS.md ফাইল লেখা হয়। প্রতিবেদনে থাকা ২০টি প্রশ্নের পরীক্ষায়, সাইডকার উত্তরগুলো ২০টির মধ্যে ২০টি সঠিক উত্তর অর্জন করেছে, যেখানে সরাসরি ভিডিও ২০টির মধ্যে ১৯টি সঠিক উত্তর দিয়েছে। একই সঙ্গে, প্রতি প্রশ্নে গড় প্রম্পট টোকেনের পরিমাণ ছিল ৩,০৬৬-এর পরিবর্তে ৩০৩। এগুলো রিপোজিটরির বেঞ্চমার্ক ফলাফল; ফুটেজ, মডেল, প্রম্পট ও পরিবেশভেদে ফলাফল পরিবর্তিত হতে পারে।
বর্তমান সীমাবদ্ধতা ও রোডম্যাপ
README-তে কয়েকটি বিষয়কে বর্তমান সুবিধা হিসেবে নয়, বরং ভবিষ্যৎ কাজ হিসেবে চিহ্নিত করা হয়েছে: PyPI রিলিজ, একটি MCP সার্ভার, হোস্টেড কনভার্টার, অতিরিক্ত জেনারেটর ব্যাকএন্ড, Node বা TypeScript ইঞ্জিন পোর্ট, প্রাকৃতিক ফুটেজের বেঞ্চমার্ক সম্প্রসারণ এবং স্বাক্ষরযুক্ত সাইডকার। বর্তমানে নথিভুক্ত Git-ভিত্তিক Python ইনস্টলেশন ও বিদ্যমান CLI ব্যবহার করুন; রোডম্যাপের উপাদানগুলো ইতিমধ্যে উপলব্ধ ধরে নেবেন না।
উপসংহার
CDAF পুনরাবৃত্ত ভিডিও বিশ্লেষণকে যাচাই করে পড়ার একটি কর্মপ্রবাহে রূপান্তর করে। একবার একটি সাইডকার তৈরি করুন, সেটিকে সোর্স ভিডিওর পাশে রাখুন, অ্যাসেটটি ব্যবহার করার সময় প্রতিবার সেটি যাচাই করুন এবং এর বডি পরবর্তী এজেন্টদের দিন। ফরম্যাটের হ্যাশগুলো সম্পাদনার পর অনিচ্ছাকৃত পুনঃব্যবহার প্রতিরোধ করে, আর এর সারাংশ, টাইমস্ট্যাম্প, ট্রান্সক্রিপ্ট, টেক্সট ও ট্যাগ ভিডিও লাইব্রেরি অনুসন্ধান ও স্বয়ংক্রিয়করণকে সহজ করে।
CDAF MIT লাইসেন্সের অধীনে উপলব্ধ। সোর্স কোড, স্পেসিফিকেশন, উদাহরণ, বেঞ্চমার্কের বিবরণ এবং এজেন্ট স্কিল CDAF GitHub রিপোজিটরিতে উপলব্ধ।
