نکات برجسته بازی NCAA – Community Dev

این پروژه از RapidAPI برای به دست آوردن نکات برجسته بازی NCAA با استفاده از یک ظرف Docker استفاده می کند و از AWS Media Convert برای تبدیل یا تقویت پرونده رسانه استفاده می کند.
بررسی اجمالی پرونده
-
config.py: این اسکریپت متغیرهای محیط لازم را وارد می کند و آنها را به متغیرهای پایتون اختصاص می دهد و مقادیر پیش فرض را در صورت لزوم ارائه می دهد. این رویکرد امکان مدیریت پیکربندی انعطاف پذیر را فراهم می کند ، امکان تنظیم تنظیمات مختلف برای محیط های مختلف (به عنوان مثال ، توسعه ، مرحله بندی ، تولید) را بدون تغییر کد منبع فراهم می کند.
-
fetch.py: تاریخ و لیگ را که برای یافتن نکات برجسته استفاده می شود ، تعیین می کند. من در این پروژه از NCAA استفاده می کنم زیرا در نسخه رایگان گنجانده شده است. این موارد برجسته را از API واگذار می کند و آنها را در یک سطل S3 به عنوان یک پرونده JSON ذخیره می کند (بسکتبال_هیگلایت. json)
-
process_one_video.py: به سطل S3 متصل می شود و پرونده JSON را بازیابی می کند. اولین URL ویدیویی را از درون پرونده JSON استخراج می کند. فایل ویدیویی را از طریق اینترنت با استفاده از کتابخانه درخواست ها بارگیری می کند. این فیلم را به عنوان یک فایل جدید در سطل S3 تحت یک پوشه متفاوت ذخیره می کند (فیلم ها/) وضعیت هر مرحله را ثبت می کند.
-
MediaConvert_process.py: ایجاد و ارسال یک کار MediaConvert از MediaConvert برای پردازش یک فایل ویدیویی استفاده می کند – کدک ویدیویی ، وضوح و بیت را پیکربندی می کند. همچنین تنظیمات صوتی ویدیوی پردازش شده را دوباره به یک سطل S3 ذخیره می کند.
-
run_all.py: اسکریپت ها را به ترتیب زمانی اجرا می کند و زمان بافر را برای ایجاد وظایف فراهم می کند.
-
پرونده .env: تمام متغیرهای محیط را ذخیره می کند ، این متغیرهایی هستند که ما نمی خواهیم به اسکریپت خود کدگذاری کنیم.
-
dockerfile: رویکرد گام به گام برای ساخت تصویر را فراهم می کند.
-
اسکریپت های Terraform: این اسکریپت ها برای ایجاد منابع در AWS به روشی مقیاس پذیر و قابل تکرار استفاده می شوند (در این پروژه گنجانده نشده است)
پیش نیازهای
قبل از اجرای اسکریپت ها ، اطمینان حاصل کنید که موارد زیر را دارید:
نمودار معماری
ساختار پروژه
src/
├── Dockerfile
├── config.py
├── fetch.py
├── mediaconvert_process.py
├── process_one_video.py
├── requirements.txt
├── run_all.py
├── .env
├── .gitignore
دستورالعمل راه اندازی
کلون مخزن
git clone https://github.com/ameh0429/NCAA-Game-Highlights.git
cd NCAA-Game-Highlights
کلید API را به AWS Secrets Manager اضافه کنید
aws secretsmanager create-secret \
--name my-api-key \
--description "API key for accessing the Sport Highlights API" \
--secret-string '{"api_key":"YOUR_ACTUAL_API_KEY"}' \
--region us-east-1
یک نقش یا کاربر IAM ایجاد کنید
این امر به کاربر یا نقش لازم برای تعامل با خدمات مورد استفاده در پروژه می دهد. خط مشی رانش باید به روز شود:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"ecs-tasks.amazonaws.com",
"mediaconvert.amazonaws.com"
],
"AWS": "arn:aws:iam::<"your-account-id">:user/<"your-iam-user">"
},
"Action": "sts:AssumeRole"
}
]
}
سطل S3 ایجاد کنید
aws s3api create-bucket --bucket ameh-video721 --region us-east-1
پرونده .env را به روز کنید
این جایی است که ما جزئیات حساس خود را به گونه ای قرار می دهیم که آنها در مخزن سخت نشوند. همچنین با دویدن آن را ایمن کنید chmod 600 .env
برای جلوگیری از دسترسی غیرمجاز به پرونده .env. همچنین پرونده را به .gitignore اضافه کنید تا از انجام آن به کنترل نسخه جلوگیری شود.
- RapidAPI_KEY: اطمینان حاصل کنید که حساب را با موفقیت ایجاد کرده اید و “مشترک برای تست” را در سمت چپ بالا از API برجسته های ورزشی انتخاب کرده اید
- AWS_ACCESS_KEY_ID = your_aws_access_key_id_here
- AWS_SECRET_ACCESS_KEY = your_aws_secret_access_key_here
- s3_bucket_name = your_s3_bucket_name_here
- medisconvert_endpoint = https: //your_mediaconvert_endpoint_here.amazonaws.com
aws mediaconvert describe-endpoints
- MediaConvert_Role_arn = ARN: AWS: IAM :: your_account_id: نقش/برجسته پردازش
به صورت محلی ظرف Docker را بسازید و اجرا کنید
docker build -t highlight-processor
docker run --env-file .env highlight-processor
با این کار fetch.py ، process_one_video.py و mediaconvert_process.py اجرا می شود و پرونده های زیر باید در سطل S3 شما ذخیره شوند:
آپلود ویدیو را در S3 تأیید کنید
پوشه json را برجسته بسکتبال باز کنید
پوشه ویدیویی پردازش شده را باز کنید
این کیفیت فیلم توسط AWS Media Convert افزایش یافته است.
آنچه یاد گرفتیم
- کار با خدمات Docker و AWS
- مدیریت دسترسی به هویت (IAM) و کمترین امتیاز
- نحوه افزایش کیفیت رسانه
پیشرفت های آینده
- استفاده از terraform برای تقویت زیرساخت ها به عنوان کد (IAC)
- افزایش میزان فرایند فیلم ها و تبدیل به AWS Media Convert.