
AI Shorts Generator কী?
AI Shorts Generator হলো একটি বিনামূল্যের ওপেন-সোর্স Python প্রকল্প, যা দীর্ঘ YouTube ভিডিও বা স্থানীয় ভিডিও ফাইলকে পোস্ট করার জন্য প্রস্তুত ছোট ক্লিপে রূপান্তর করে। এটি স্বয়ংক্রিয়ভাবে উৎসের ট্রান্সক্রিপশন তৈরি করে, সম্ভাব্য আকর্ষণীয় মুহূর্ত শনাক্ত করে, পরস্পর আংশিকভাবে মিলে যাওয়া নির্বাচন সরিয়ে দেয় এবং সেরা ক্লিপগুলোকে উল্লম্ব বা কাস্টম অ্যাসপেক্ট রেশিওতে রেন্ডার করে।
প্রকল্পটি শর্ট-ভিডিও SaaS পণ্যের একটি নিজস্ব-হোস্ট করা বিকল্প হিসেবে তৈরি করা হয়েছে। এটি ক্লিপের আগে কোনো ক্রেডিট বা ওয়াটারমার্ক যোগ করে না। এর বিস্তৃত ফিচার সেটে সাবটাইটেল, অনুবাদ, ভয়েসওভার, প্রসঙ্গ-সচেতন উদ্বোধনী হুক, কমান্ড-লাইন ইন্টারফেস, স্থানীয় ওয়েব ইন্টারফেস এবং অন্যান্য প্রকল্পে একীভূত করার জন্য একটি API-ও রয়েছে।
উদাহরণ আউটপুট
তৈরি করা ক্লিপগুলো বক্তৃতা, সাক্ষাৎকার, পডকাস্ট, টিউটোরিয়াল এবং একই ধরনের দীর্ঘ ফর্মের উপাদানকে মোবাইল-উপযোগী ভিডিওতে রূপান্তর করতে পারে।



প্রসেসিং পাইপলাইন কীভাবে কাজ করে
- উৎস সংগ্রহ: প্রোগ্রামটি একটি YouTube ভিডিও ডাউনলোড করে অথবা আপনার দেওয়া স্থানীয় ফাইলের পথ পড়ে।
- ট্রান্সক্রিপশন:
faster-whisperস্থানীয়ভাবে টাইমস্ট্যাম্পসহ ট্রান্সক্রিপশন তৈরি করে। সমর্থিত প্রতিটি LLM প্রদানকারীর জন্য এই ধাপটি একই। - কনটেন্ট শ্রেণিবিন্যাস: নির্বাচিত LLM নির্ধারণ করে উৎসটি পডকাস্ট, সাক্ষাৎকার, টিউটোরিয়াল, ভ্লগ নাকি অন্য কোনো ধরনের কনটেন্টের মতো। এটি গতিও মূল্যায়ন করে, যাতে উপাদান অনুযায়ী হাইলাইট নির্বাচন করা যায়।
- হাইলাইট র্যাঙ্কিং: OpenAI, Gemini বা MuAPI হুক, আবেগের চূড়া, দৃঢ় মতামত, উদ্ঘাটন, দ্বন্দ্ব, উদ্ধৃতিযোগ্য বক্তব্য, গল্পের চূড়া এবং ব্যবহারিক মূল্য খুঁজে ট্রান্সক্রিপশন পরীক্ষা করে। এটি 0 থেকে 100 পর্যন্ত স্কোরসহ র্যাঙ্ক করা হাইলাইট প্রার্থী ফেরত দেয়।
- ডিডুপ্লিকেশন: পরস্পর আংশিকভাবে মিলে যাওয়া প্রার্থীগুলো তাদের স্কোর অনুযায়ী একত্র করা হয়।
- Top-N নির্বাচন:
--nঅপশনের ভিত্তিতে সর্বোচ্চ র্যাঙ্কের প্রার্থীগুলো নির্বাচন করা হয়। - রেন্ডারিং: প্রতিটি নির্বাচিত অংশ স্বয়ংক্রিয়ভাবে ক্রপ করে অনুরোধ করা অ্যাসপেক্ট রেশিওতে রেন্ডার করা হয়। নিষ্ক্রিয় না করলে শুরুতে একটি AI-তৈরি প্রসঙ্গভিত্তিক হুক যোগ করা হয়।
প্রয়োজনীয়তা
- Python 3.10 বা পরবর্তী সংস্করণ
- OpenAI, Gemini বা MuAPI-এর একটি API key
requirements.txt-এ তালিকাভুক্ত Python প্যাকেজগুলো
Gemini দৈনিক সীমাসহ একটি বিনামূল্যের স্তর দেয়। OpenAI পেইড, আর MuAPI সাবস্ক্রিপশন ছাড়া পেইড, ব্যবহারভিত্তিক অ্যাক্সেস দেয়। প্রদানকারীর শর্ত ও মূল্য পরিবর্তিত হতে পারে, তাই বড় সংগ্রহ প্রক্রিয়া করার আগে সংশ্লিষ্ট পরিষেবা পর্যালোচনা করুন।
প্রকল্প ইনস্টল করুন
1. রিপোজিটরি ক্লোন করুন
git clone https://github.com/Colafornia/short-video-generator-AI.git
cd short-video-generator-AI2. ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন
Windows-এ চালান:
python -m venv venv
venv\Scripts\activateLinux বা macOS-এ চালান:
python -m venv venv
source venv/bin/activateভার্চুয়াল এনভায়রনমেন্ট জেনারেটরের প্যাকেজগুলোকে আপনার কম্পিউটারের অন্যান্য Python প্রকল্প থেকে আলাদা রাখে।
3. নির্ভরতা ইনস্টল করুন
pip install -r requirements.txtLLM ও Whisper কনফিগার করুন
প্রকল্পের ডিরেক্টরিতে একটি .env ফাইল তৈরি করুন। LLM_PROVIDER-কে openai, gemini বা muapi হিসেবে সেট করুন এবং সংশ্লিষ্ট API key যোগ করুন।
LLM_PROVIDER=openai
OPENAI_API_KEY=your_openai_key_here
OPENAI_MODEL=gpt-4o-mini
GEMINI_API_KEY=your_gemini_key_here
GEMINI_MODEL=gemini-2.5-flash
MUAPI_API_KEY=your_muapi_key_here
LOCAL_WHISPER_MODEL=base
LOCAL_WHISPER_DEVICE=autoLLM_PROVIDER-এ নির্বাচিত প্রদানকারীর জন্যই একটি বৈধ key প্রয়োজন। OpenAI ও Gemini-এর মডেল ফিল্ডগুলো ঐচ্ছিক।
- Gemini: Google AI Studio থেকে একটি key সংগ্রহ করুন।
- OpenAI: OpenAI Platform থেকে একটি key সংগ্রহ করুন।
- MuAPI: MuAPI থেকে একটি key সংগ্রহ করুন।
একটি Whisper মডেল বেছে নিন
LOCAL_WHISPER_MODEL-এ tiny, base, small, medium বা large-v3 ব্যবহার করা যায়। ডিফল্ট উদাহরণে base ব্যবহার করা হয়েছে। ডিভাইস নির্বাচনের জন্য auto, cpu বা cuda ব্যবহার করুন।
প্রোগ্রামকে উপলভ্য ডিভাইস নির্বাচন করতে দিতে চাইলে LOCAL_WHISPER_DEVICE=auto রাখুন। উপযুক্ত CUDA পরিবেশ থাকলে cuda, আর স্পষ্টভাবে CPU প্রসেসিং চাইলে cpu ব্যবহার করুন।
আপনার প্রথম শর্ট তৈরি করুন
main.py-তে একটি YouTube URL দিন:
python main.py "https://www.youtube.com/watch?v=video_id"ডিফল্টভাবে, প্রোগ্রামটি 9:16 অ্যাসপেক্ট রেশিওতে তিনটি ক্লিপ রেন্ডার করে এবং 720 উৎস ডাউনলোড রেজোলিউশন ব্যবহার করে। রেন্ডার করা ফাইলগুলো output ডিরেক্টরিতে সংরক্ষিত হয়।
সংখ্যা, রেশিও ও রেজোলিউশন নিয়ন্ত্রণ করুন
নিচের কমান্ডটি তিনটি হাইলাইট নির্বাচন করে, সেগুলোকে উল্লম্ব ভিডিও হিসেবে ফরম্যাট করে এবং 1080 উৎস রেজোলিউশন অনুরোধ করে:
python main.py "https://www.youtube.com/watch?v=video_id" \
--n 3 \
--ratio 9:16 \
--resolution 1080--nকতগুলো ক্লিপ রেন্ডার হবে তা নিয়ন্ত্রণ করে। এর ডিফল্ট মান3।--ratioএকটি কাস্টম অনুপাত গ্রহণ করে। উল্লম্ব শর্টসের জন্য9:16অথবা বর্গাকার আউটপুটের জন্য1:1ব্যবহার করুন।--resolutionসোর্স ভিডিও ডাউনলোডের রেজোলিউশন নিয়ন্ত্রণ করে। নথিভুক্ত সমর্থিত মানগুলো হলো360,480,720এবং1080।
স্থানীয় ভিডিও প্রক্রিয়া করুন
YouTube URL-এর পরিবর্তে একটি স্থানীয় ফাইলের পাথ ব্যবহার করা যায়। এই উদাহরণটি 720 রেজোলিউশনে চারটি উল্লম্ব ক্লিপ তৈরি করে এবং Whisper-কে কথ্য ভাষা চীনা হিসেবে বিবেচনা করতে বাধ্য করে:
python main.py "/Users/Admin/Folder/video.mp4" \
--n 4 \
--ratio 9:16 \
--resolution 720 \
--language zhডিফল্ট ভাষা সেটিং হলো auto। স্বয়ংক্রিয় শনাক্তকরণ উপযুক্ত না হলে, অথবা ভিডিওতে কথিত ভাষা আগে থেকেই জানা থাকলে, en-এর মতো Whisper ভাষা কোডসহ --language ব্যবহার করুন।
জেনারেট করা হুক নিষ্ক্রিয় করুন
AI-জেনারেটেড হুক ডিফল্টভাবে চালু থাকে। শুরুতে নতুন হুক যোগ না করে হাইলাইট রেন্ডার করতে --no-hook যোগ করুন:
python main.py "https://www.youtube.com/watch?v=video_id" --no-hookনির্বাচিত অংশে ইতিমধ্যেই শক্তিশালী সূচনা থাকলে, অথবা সোর্সে যেভাবে আছে ঠিক সেভাবেই শর্ট শুরু করতে চাইলে এটি উপযোগী।
স্থানীয় ওয়েব ইন্টারফেস ব্যবহার করুন
ওয়েব সংস্করণটি একাধিক ভিডিও কিউতে যোগ করা এবং রেন্ডারিং ফ্ল্যাগ সমন্বয়ের জন্য একটি ভিজ্যুয়াল পদ্ধতি প্রদান করে। এটি এখনও .env থেকে LLM প্রদানকারী ও API ক্রেডেনশিয়াল পড়ে; ইন্টারফেসটি কেবল ভিডিও ইনপুট ও রেন্ডারিং অপশন পরিচালনা করে।
1. ব্যাকএন্ড চালু করুন
python3 server.py2. ফ্রন্টএন্ড সার্ভ করুন
প্রজেক্ট ডিরেক্টরিতে আরেকটি টার্মিনাল খুলে চালান:
cd web
python3 -m http.server 80003. ইন্টারফেস খুলুন
ব্রাউজারে http://localhost:8000/shorts-generator-ui.html ভিজিট করুন।
উন্নত ব্যবহারের পরামর্শ
গন্তব্য অনুযায়ী অ্যাসপেক্ট রেশিও মিলিয়ে নিন
স্ট্যান্ডার্ড উল্লম্ব শর্ট-ফর্ম ভিডিওর জন্য 9:16 ব্যবহার করুন। বর্গাকার আউটপুটের প্রয়োজন হলে 1:1 বেছে নিন, অথবা ভিন্ন লেআউটের জন্য জেনারেটর-সমর্থিত অন্য কোনো অনুপাত দিন।
পরীক্ষার সময় ক্লিপের সংখ্যা সীমিত রাখুন
প্রাথমিক কনফিগারেশনের সময় --n 1 সেট করুন। API ক্রেডেনশিয়াল, ট্রান্সক্রিপশন আচরণ, ভাষা সেটিং, হুক এবং আউটপুটের মাত্রা যাচাই করার সময় এটি রেন্ডার হওয়া ক্লিপের সংখ্যা কমিয়ে দেয়।
python main.py "https://www.youtube.com/watch?v=video_id" --n 1 --resolution 360প্রয়োজনে ভাষা নির্দিষ্ট করে দিন
স্বয়ংক্রিয় ভাষা শনাক্তকরণ সুবিধাজনক, তবে সোর্সের ভাষা জানা থাকলে স্পষ্টভাবে --language সেট করা সহায়ক হতে পারে। এই অপশনটি Whisper ট্রান্সক্রিপশনে প্রযোজ্য।
স্থানীয় ট্রান্সক্রিপশন সেটিং সমন্বয় করুন
হাইলাইট বিশ্লেষণে বাহ্যিক LLM প্রদানকারী ব্যবহৃত হলেও ট্রান্সক্রিপশন স্থানীয়ভাবে চলে। আপনার মেশিনে উপলব্ধ রিসোর্স অনুযায়ী .env-এ Whisper মডেল ও ডিভাইস নির্বাচন করুন। README-তে এই সেটিংগুলো উল্লেখ করা আছে, তবে প্রতিটি ধরনের কাজের জন্য একটি নির্দিষ্ট মডেল নির্ধারণ করা হয়নি।
প্রদানকারী কনফিগারেশন ও ইন্টারফেসের পছন্দ আলাদা রাখুন
CLI থেকে ওয়েব ইন্টারফেসে পরিবর্তন করলে কনফিগার করা LLM প্রদানকারী বদলায় না। OpenAI, Gemini এবং MuAPI-এর মধ্যে পরিবর্তন করার সময় .env-এ LLM_PROVIDER এবং সংশ্লিষ্ট API কী আপডেট করুন।
প্রকাশের আগে তৈরি ক্লিপ পর্যালোচনা করুন
হাইলাইট সিস্টেমটি প্রার্থীদের স্বয়ংক্রিয়ভাবে বেছে নিতে ট্রান্সক্রিপ্ট বিশ্লেষণ ও একটি ভাইরালিটি ফ্রেমওয়ার্ক ব্যবহার করে। পোস্ট করার আগে output-এর ফাইলগুলো পর্যালোচনা করে নিশ্চিত করুন যে ক্রপিং, ট্রান্সক্রিপশন, প্রেক্ষাপট এবং ঐচ্ছিক হুক আপনার নির্ধারিত ব্যবহারের সঙ্গে মানানসই।
উপসংহার
AI Shorts Generator স্থানীয় Whisper ট্রান্সক্রিপশন, LLM-ভিত্তিক হাইলাইট শনাক্তকরণ, ডিডুপ্লিকেশন, র্যাঙ্কিং এবং স্বয়ংক্রিয় ক্রপিংকে একটি ওপেন-সোর্স ওয়ার্কফ্লোতে একত্র করে। নির্ভরতা ইনস্টল ও .env-এ একটি প্রদানকারী কনফিগার করার পর কমান্ড লাইন থেকে YouTube URL অথবা স্থানীয় ফাইল প্রক্রিয়া করতে পারবেন। ভিডিও কিউতে যোগ করা এবং ভিজ্যুয়ালি রেন্ডার অপশন বেছে নেওয়ার জন্য স্থানীয় ওয়েব ইন্টারফেস একটি বিকল্প পদ্ধতি প্রদান করে।
প্রজেক্টটি MIT লাইসেন্সের অধীনে উপলব্ধ। GitHub থেকে আপনি সমস্যা জানাতে, পরিবর্তনে অবদান রাখতে বা রিপোজিটরি ফর্ক করতে পারেন।
