خب تقریبا دو هفته پیش من یک اسکریپت رو توی جلسات اصفهان‌لاگ معرفی و شرح دادم . ولی سریع توضیح دادم و یک قسمتی از اسکریپت رو هم فراموش کردم بنویسم !(البته یه آپشن اضافه بود که توضیح میدم.) گفتم که بیام این جا بیکار نمونه اسکریپت هایی که معرفی می کنم رو این جا هم شرح بدم . نوشتن خیلی ساده تر از توضیح دادنه🙂

این اسکریپت کارش اینه که به وسیله ی youtube-dl به صورت خودکار فقط کافیه که لینک رو بهش بدید تا خودش اتومات دانلود کنه و اون رو تبدیل به یه gif یعنی یه تصویر متحرک بکنه و بده دست شما🙂 و یه نکته ای این که منبع اسکریپت اینجا هستش .

که به ابزار هایی که احتیاج داره یکی youtube-dl هست که در پست قبلی معرفی کردم و دیگری mplayer هست که فکر کنم پیش‌فرض توی اکثر دیسترو ها نصب هست .ترمینال

bersamm@bersam-desktop:~$ url=http://www.youtube.com/watch?v=V5bYDhZBFLA; youtube-dl --max-quality=FORMAT $url; mplayer $(ls ${url##*=}*| tail -n1) -ss 00:57 -endpos 10 -vo gif89a:fps=5:output=output.gif -vf scale=400:300 -nosound

خب خب … اسکریپت نسبتا ساده ای هستش ولی کارش درسته🙂 .

خب از اول شروع میکنیم . ابتدا می اد و یک متغیر محیطی به اسم url تعریف می کنه … تمام کاری که شما باید انجام بدید اینه که لینک آدرس مورد نظرتون رو به url بدید … مثل نمونه بعد از این با ; سراغ دستور بعدی می ریم .

بعد می اد و با دستور youtube-dl و اپشن –max-quality=FORMAT (توی نسخه ی قبلی -b بود ولی توی اسکریپت جدید تغییر کرده.) بهترین کیفیت از کلیپ رو از متغیر $url (که همون لینک ما باشه می گیره) تا این جا ما نسخه ی flv مون رو از سایت یوتیوب دانلود کردیم . سپس نوبت به mplayer میرسه .خب حالا باید اسم کلیپ اول رو بدیم بهش … این جا از یک طرفند زیبا استفاده کرده «${url##*=}» این قسمت از کد کارش اینه که بیاد و هر چی بعد از علامت = دید رو نگه داره و بقیه رو برش بزنه . اگه دقت کرده باشید لینک های یوتیوب از یک الگوی خاصی بهره‌مند هستن . و اسم کلیپ دانلودی شما با youtube-dl دقیقا همونی هست که بعد از علامت = هست با فرمت flv .اگه می خواهید در مورد این نوع برش توی ترمینال بیشتر بدونید به این جا مراجعه کنید .

بعد از این که فایل flv رو تحویل mplayer داد نوبت به اپشن ها میرسه تا اون رو تبدیل به gif بکنه ابتدا با اپشن -ss زمان شروع برای تبدیل رو می گیره … در این جا ۵۷ ثانیه رو در نظر گرفته و با -endpos زمان انتها رو می گیره … در این ۱۰ ثانیه بعد تعریف شده . یعنی تا ۱۰ ثانیه بعد رو تبدیل میکنه بعد هم fps یعنی تعداد فریم در هر ثانیه رو تنظیم می کنیم تا فریم های اضافی رو استفاده نکنیم … این جا ۵ رو انتخاب کرده (اضافه کنم که برای مثال اکثر فیلم هایی که ما میبینیم روی ۲۴ فریم بر ثانیه هستند . بنابر این ۵ فریم بر ثانیه مقاداری کند می کنه سرعت نمایش رو … ولی توی حجم بسیار تاثیر داره) و بعد هم output که بشه نام خروجی gif .

در قسمت بعد با scale اندازه ی تصویر رو کوتاه کرد و به ۴۰۰ در ۳۰۰ پیکسل تغییر داده و در آخر هم یک آپشن -nosound تعریف کرده تا کمترین حجم ممکن رو داشته باشید .

پ‌.ن۱:اسکریپت خیلی جالبیه و حتی اگه مثلا برای من چندان استفاده نداشته باشه … حداقل یاد گرفتم که چه طوری اندازه ی تصاویر رو با mplayer تغییر بدم !!! و یا اون قسمت برش واقعا جالب بود .