سلام
سال نو مبارک! به امید سالی بهتر از پارسال!
این روزها با هزینهای معادل هزینهی تهیهی یک هاست اشتراکی سالیانه برای بالاگذاری یک سایت معمولی در 5 سال قبل، میتوان یک VPS تهیه کرد و به این صورت قفل و کلید یک نیمچه سرور را (با 200 و خردهای مگ رم، 30 گیگ فضا، سرعت CPU نزدیک به 700 MHz و ویندوز سرور 2003 یا 2008) در اختیار شما قرار میدهند (البته به قول معروف هر چقدر پول بدهید همانقدر هم سخت افزار در اختیار شما قرار میدهند) بجای صرفا یک دایرکتوری مجازی محدود با 100 مگ فضای هاست که هر احدی در آن هاست اشتراکی میتواند سر مبارک را اندکی چرخانده و تمام زندگی شما را مرور کند و غیره!
استفادهی مفیدی هم که این VPS برای من داشته، ترنس لود کردن یک سری فایل است (با توجه به سرعتهای نجومی دریافت فایل این سرورها). برای مثال دریافت فایل از یوتیوب و انتقال به یک هاست دیگر برای دریافت سادهتر خودم و یا دیگران.
برای نمونه سایت dotnet-tv.com را در نظر بگیرید. تعدادی از ویدیوهای این سایت در یوتیوب هاست شده و از این دست زیاد هستند. خیلیها برای فرار از مشکلات کمبود پهنای باند از یوتیوب استفاده میکنند. یوتیوب هم که از این طرف بسته است. خوب، من الان میخواهم ویدیوی مربوط به ASP.Net MVC آن را مشاهده کنم، چکار باید کرد؟!
یک برنامهی سادهی کنسول را تهیه کردهام که این کار را برای VPS داران تسهیل میکند.
- دریافت فایل از یوتیوب
- آپلود خودکار آن به رپیدشیر
یک نمونه خروجی آن: (فایلهای یوتیوب سایت ذکر شده که به رپیدشیر منتقل شده)
دریافت
در سورس این برنامه موارد زیر پیاده سازی شده است:
- یافتن لینکهای یوتیوب سایت dotnet-tv.com با استفاده از regular expressions
- یافتن لینک دانلود مستقیم این فایلها از سایت یوتیوب که شامل استفاده از regular expressions برای استخراج قسمتهای مفید از صفحات و همچنین استفاده از امکانات Json دات نت فریم ورک سه و نیم برای parse قسمتهای استخراج شده است.
- ایجاد یک thread pool سفارشی که هر بار 7 لینک مستقیم را به صورت همزمان از یوتیوب دریافت میکند. (thread pool پیش فرض دات نت تمام تردها را به یکباره شروع میکند که برای اینکار مفید نیست. به همین جهت از این thread pool سفارشی شده استفاده شد)
پیش فرض فایلی که از سایت یوتیوب دریافت میشود MP4 با کیفیت بالا است که با fmt=18 در فایل Youtube.cs مشخص شده. فرمتهای دیگر را میتوانید از این فایل ایده بگیرید.
- آپلود فایل دریافتی از یوتیوب به یک اکانت رایگان کالکتور در رپیدشیر. (ماخذ این مورد در سایت code projects)
مشخصات این اکانت رایگان کالکتور در فایل app.config باید ذکر شود.
این سورس میتونه ایدهی ابتدایی بسیاری از کارهای مشابه باشد. برای مثال ایجاد یک وب سرویس، یک وب سایت، یک سرویس ایمیلی و غیره.
پ.ن.
کار انجام شده فعالیت وارز محسوب نمیشود زیرا مجوز ویدیوهای سایت یوتیوب این امکان توزیع (و بسیاری موارد دیگر) را به شما میدهد.