بایگانی

Posts Tagged ‘youtube’

چ‌چ‌چ (۹): چطور به صورت فله‌ای لینک‌های یوتیوب را از وب‌سایتی استخراج و دانلود کنیم‌!

دسامبر 17, 2011 2 دیدگاه

ببخشید که تیتری از این ساده‌تر و گو‌یاتر پیدا نکردم‌. ولی خوب اصل موضوع خیلی قشنگ چالش بر‌انگیز است‌. مساله این است‌:

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

کار عادی‌اش به این صورت است که بنشینیم و با حوصله تک تک لینک‌ها را کپی پیست کرده و جایی ذخیره کنیم‌. ولی با وجود دویست صفحه و لینک‌، کمی (‌خیلی‌) خسته کننده (‌خریت‌ به معنای واقعی کلمه‌، البته ببخشید ;-)) است. خوب جواب مساله را خودم هم نمی‌دانستم‌، ولی مطمئن بودم‌، با ابزار‌های گنو‌/‌لینوکسی‌، نتیجه‌ی خیلی خوبی خواهم گرفت‌. اولین کاری که به فکرم رسید‌، دانلود صفحه‌ی اصلی و صفحه‌های پیوند شده به هر لینک بود که با wget خیلی خوب بلد بودم! به این صورت‌:
[bash]
wget -rl1 http://thenewboston.org/list.php?cat=11
[/bash]
خوب نتیجه‌ مجموعه‌ای از فایل‌ها بود که با اسم‌هایی شبیه به آدرس‌شان در پوشه‌ی جاری ذخیره شده بود. با استفاده از آرگومان‌های rl1 به wget فهماندم که صفحه‌ی حاضر را به عمق یک صفحه رو به جلو دانلود کند‌. حالا مساله‌ی سخت این‌جا بود که چطور به grep بفهمانیم که چه چیزی را (‌در این‌جا لینک ویدیو در یوتیوب‌) برایمان جدا کند‌. دستوری که با دفعات زیادی آزمون و خطا نتیجه داد‌، به این صورت بود‌: (‌برای دیدن دستور کامل‌تر به آخر مطلب رجوع کنید‌، ویرایش۱)
[bash]
grep -ohE «http://www.youtube.com/watch?v=%5B%5B:alnum:%5D-%5D{11}» * > list
[/bash]
کار این دستور این است که یک لیست از الگوی داده شده را ایجاد و در فایل list ذخیره کند‌. آرگومان‌های ohE به طور خلاصه به grep می‌فهمانند‌ که فقط عبارت داخل پرانتز را در فایل‌ها پیدا کند و در خروجی نمایش دهد‌. قسمت جالب قضیه که بیشتر از همه وقتم را گرفت بخش زیر بود‌:
[bash]
[[:alnum:]-]{11}
[/bash]
که به grep می‌گفت ترکیبی از حروف و ارقام را به تعداد یازده عدد قبول کند‌. در مورد این عبارت‌ها در آینده‌ای نزدیک پستی در شاهینیسم خواهیم داشت.
برای دانلود لینک‌ها هم می‌توانید همان فایل خروجی را به صورت زیر به youtube-dl بدهید‌:
[bash]
youtube-dl -ta list
[/bash]
البته سرعت دانلود youtube-dl واقعا پایین است‌. روی سروری با دانلود عادی ده مگ‌، سرعت به زور می‌توانست به چهل کیلوبایت برسد‌. پیشنهاد من به شما‌، نصب یک نسخه از RapidLeech است‌. سرعت و کاربرد بسیار بهتری دارد 😉

ویرایش ۱: بعد از مدتی استفاده از این دستور‌، فهمیدم که از اونجایی که توی آدرس‌های Youtube امکان وجود آندرلاین هم هست‌، تعدادی از لینک‌ها رو با دستور بالا از دست می‌دیم‌. به همین دلیل دنبال یه راه دیگه گشتم‌، و سر‌انجام به دستور زیر رسیدم که نتیجه‌ی خیلی قابل قبول‌تری می‌ده‌:
[bash]
grep -ohE «http://www.youtube.com/watch?v=%5B%5B:alnum:%5D(-|_)]{11}» * | uniq > list2
[/bash]
همچنین توی این دستور با استفاده از uniq از تکرار لینک‌ها در صفحه خروجی جلوگیری می‌شه 😉

Advertisements

یوتیوب‌؟ یا دانشگاه‌؟ پرده اول

ژوئیه 11, 2011 2 دیدگاه

یه استادی داریم‌، که یه روز یه حرف خوبی زد (‌فکر کنم‌، اولین و آخرین بارش بود‌). گفتش که: اینترنت خیلی بزرگه و خیلی چیز‌ها می‌شه ازش یاد گرفت‌، ولی مهم‌ترین نکته‌اش اینجاست که خیلی راحت‌تر می‌شه توش وقت تلف کرد. منم که بچه حرف گوش کن‌، این حرفش رو هیچ‌وقت یادم نرفت‌!

حالا من می‌گم تو دانشگاه‌ها (‌حد‌اقل تو ایرانش‌) هم بیشتر از اون چیزی که یاد می‌گیری وقت تلف می‌کنی‌؟ پس چی کار کنیم‌؟ آره درسته‌، باس خودمون آستینا رو بالا بزنیم‌. رو همین حساب از این به بعد توی پست‌هایی با این عنوان منابع آموزشی خوبی که روی Youtube پیدا می‌کنم معرفی می‌کنم تا شما هم استفاده ببرین‌. این‌جوری حداقل تونستم دین خودم رو به تولید‌کننده‌های این آموزش‌ها ادا کنم‌.

تو این قسمت قصد معرفی کانال VoidRealm’s رو دارم. توی این کانال که مدیریتش رو آقای برایان بر عهده دارن‌، آموزش‌های برنامه نویسی در محیط‌هایی نظیر Visual Studio و Qt و زبان‌های مختلف نظیر C++، Java، C# ارائه می‌شه که با توجه به تصویری بودن آموزش‌ها و توضیحات خوب جناب برایان‌، به منابع خیلی به درد بخوری برای یاد‌گیری این زبان‌ها تبدیل شده‌.

این آقا برایان قبلا یه شرکت برنامه نویسی داشتن‌، که توسط یه کمپانی بزرگ‌تر خریداری شد‌، حالا ایشون هم قصد دارن که یه زندگی بی‌دغدغه رو تجربه کنن و سعی دارن که به چنین آموزش‌هایی ادامه بدن‌.

آموزش‌هایی که بیشتر از همه توجه من رو به خودشون جلب کردن‌، بیست و خرده‌ای آموزش زبان C++ بود که من در محیط لینوکس (‌متفاوت با آقای برایان‌) از اون‌ها خیلی استفاده بردم‌، و آموزش Qt C++ که با رسیدن شماره قسمت‌هاش به ۷۸ نوید یه آموزش کامل و خوب رو برای این محیط توسعه به آدم می‌ده‌. من هنوز دارم روی یاد گرفتن C++ تمرکز می‌کنم‌، و قصد دارم بعد از اون به سراغ Qt برم‌.

حجم آموزش‌ها به طور متوسط چیزی در حدود ده مگ هست‌، پس پیشنهاد می‌کنم‌، حتما اون‌ها رو دانلود و آرشیو کنید که بتونید در موقع نیاز بهشون برگردید‌. روون بودن آموزش‌ها و مثال‌های کاربردی‌ای که زده می‌شه به شما به درک مفاهیم مختلف کمک می‌کنم‌.

فقط به ایننکته توجه داشته باشید‌، اگر هنوز به هیچ زبان دیگه‌ای برنامه نویسی نکردین و یا با مفاهیم اولیه برنامه نویسی‌، نظیر شروط‌، حلقه‌ها و غیره آشنا نیستین‌، آموزش‌های C++ این مجموعه به درد شما نمی‌خوره‌. بهتره یا از یه منبع دیگه استفاده کنید‌، و یا یه زبان دیگه مثل جاوا رو یاد بگیرید‌.

وقتی هم که زبان مورد علاقتون رو یاد گرفتید می‌تونید از سایت voidrealms.com به تعدادی سورس و نرم‌افزار که جناب برایان آماده کردن دسترسی داشته باشید که می‌تونه کمک خوبی به یاد‌گیری‌تون باشه‌.

دسته‌ها:معرفی منبع, برنامه نویسی, دوره برچسب‌ها: , , ,