فکر می کنی برای ساخت یک دانلودر ویدیو با سی شارپ باید صدها خط کد بنویسی؟ نه
با کتابخانه YoutubeExplode چه کار هایی می تونه برای شما انجام بده
dotnet add package YoutubeExplode
حالا یک پروژه ویندوز فرم ایجاد کنید و یک TextBox و یک دکمه Button به همراه یک Progressbar و یک Label به فرم اضافه کنید و حالا می تونید از کد زیر استفاده کنید
using YoutubeExplode;
using YoutubeExplode.Videos.Streams;
namespace YoutubeDownload
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.Value = 0;
}
private async void button1_Click(object sender, EventArgs e)
{
try
{
button1.Enabled = false;
progressBar1.Value = 0;
var youtube = new YoutubeClient();
var videoUrl = textBox1.Text.Trim();
if (string.IsNullOrWhiteSpace(videoUrl))
{
MessageBox.Show("لینک ویدیو را وارد کنید");
return;
}
var video = await youtube.Videos.GetAsync(videoUrl);
var manifest = await youtube.Videos.Streams.GetManifestAsync(video.Id);
var streamInfo = manifest.GetMuxedStreams().GetWithHighestVideoQuality();
if (streamInfo == null)
{
MessageBox.Show("برای این ویدیو استریم Muxed پیدا نشد");
return;
}
using var dialog = new SaveFileDialog
{
Filter = "MP4 Video (*.mp4)|*.mp4",
FileName = $"{video.Title}.mp4"
};
if (dialog.ShowDialog() != DialogResult.OK)
return;
progressBar1.Value = 0;
lblProgress.Text = "0%";
MessageBox.Show(
$"⬇️ دانلود شروع شد...\n\n" +
$"🎬 {video.Title}\n" +
$"📺 {video.Author.ChannelTitle}\n" +
$"📦 کیفیت: {streamInfo.VideoQuality.Label}"
);
var progress = new Progress<double>(value =>
{
int percent = (int)(value * 100);
percent = Math.Clamp(percent, 0, 100);
progressBar1.Value = percent;
lblProgress.Text = $"{percent}%";
});
await youtube.Videos.Streams.DownloadAsync(streamInfo, dialog.FileName, progress);
progressBar1.Value = 100;
lblProgress.Text = "100%";
MessageBox.Show($"دانلود با موفقیت انجام شد\n\n" + $"فایل:\n{dialog.FileName}", "دانلود موفق");
}
catch (Exception ex)
{
MessageBox.Show($"Error:\n\n{ex.Message}", "Error");
}
finally
{
button1.Enabled = true;
}
}
}
}
همه ی ویدیو ها یک استریم ترکیبی صدا + تصویر ندارند. اگر
GetMuxedStreams() چیزی برنگرداند، باید صدا و تصویر جداگانه دریافت و سپس با ابزاری مثل FFmpeg ترکیب شوند.➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3
YoutubeDownload.zip
817.4 KB
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥2
اگه برنامه نویسی می کنی، احتمالاً هر روز ساعت ها توی مرورگر هستی
مستندات، Stack Overflow، GitHub، آموزش ها، دانلود ها و کلی سایت دیگه...
حالا تصور کن وسط همه این ها، هر چند ثانیه یک تبلیغ مزاحم بپره جلوت!
اینجاست که Adblock Plus وارد میشه.
تبلیغات متحرک، Popup ها و بنر های چشمک زن کمتر میشن و صفحه خلوت تر میشه
وقتی فقط دنبال مستندات یک API هستی، لازم نیست بین ۱۰ تا بنر دنبال متن اصلی بگردی
بعضی سایت ها به محض کلیک کردن، چند پنجره تبلیغاتی باز می کنن. Adblock می تونه بسیاری از این موارد رو مسدود کنه
وقتی داری یک سایت رو بررسی می کنی، حذف عناصر تبلیغاتی و برخی اسکریپت های مزاحم می تونه محیط تست رو مرتب تر کنه
برخی Filter List ها برای جلوگیری از درخواست های مرتبط با Tracking هم استفاده میشن
می تونی تنظیمات فیلترها رو تغییر بدی و حتی برای سایت های خاص Adblock رو غیرفعال کنی
لازم نیست یک نرم افزار سنگین نصب کنی، به عنوان افزونه مرورگر نصب میشه و خیلی سریع قابل استفاده است
افزونه Adblock Plus قابلیتی به نام Acceptable Ads داره که به صورت پیش فرض اجازه نمایش بعضی تبلیغات غیرمزاحم رو میده
اگر می خوای تبلیغات بیشتری مسدود بشن، می تونی این گزینه رو از تنظیمات غیرفعال کنی
مرورگر = یکی از مهم ترین ابزار های کاری تو
پس چرا محیط کارت رو شلوغ و پر از مزاحمت نگه داری؟
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
اگه سی شارپ بلدی ولی هنوز نمی دونی چی بسازی که بشه فروخت، این لیست رو ذخیره کن
مناسب فروشگاه ها، شرکت ها و کسب و کار های کوچک
ثبت کالا، موجودی، فاکتور، مشتری و گزارش گیری
سفارش گیری، میز ها، صندوق و چاپ فاکتور
برای مطب، آرایشگاه، کلینیک و خدمات مختلف
دانش آموز، استاد، شهریه، کلاس و حضور و غیاب
مدیریت مشتری، پیگیری تماس ها و فروش
ثبت ملک، مشتری، قرارداد و جستجوی فایل ها
یک پروژه ساده اما قابل فروش به تعداد زیادی کسب و کار
نمایش فروش، درآمد، هزینه، موجودی و گزارش های مدیریتی
به جای ساخت یک نرم افزار عمومی، یک مشکل واقعی را برای یک شرکت حل کن و بابتش پول بگیر
💡 نکته مهم:
لازم نیست از روز اول یک پروژه فوق العاده پیچیده بسازی
یک پروژه کوچک
یک مشتری واقعی
اولین درآمد
نمونه کار
مشتری بعدی💰
اگر سی شارپ کار می کنی، پروژه ای بساز که یک نفر حاضر باشد بابتش پول بدهد.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤2
Media is too big
VIEW IN TELEGRAM
از جایی شروع می کنی که حتی نمی دونی کدت چطور کار می کنه
اما می تونی قدم به قدم جلو بری:
هر مرحله فقط پول بیشتر نیست مسئولیت، مهارت و تجربه بیشتریه.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤2
احتمالاً هنگام کار با API ها، وب سایت ها یا مرورگر، با اعدادی مثل 200، 404 یا 500 رو به رو شده ای
اما هر کدام دقیقاً چه معنی ای دارند؟
این کدها یعنی درخواست دریافت شده و هنوز در حال پردازش است.
سرور می گوید: ادامه بده، درخواستت را دریافت کردم
همه چیز طبق انتظار انجام شده است
درخواست با موفقیت انجام شد.
یک منبع جدید با موفقیت ساخته شد. مثلاً ثبت یک کاربر جدید.
درخواست موفق بوده، اما چیزی برای برگرداندن وجود ندارد.
برای دریافت نتیجه باید به آدرس دیگری بروی.
آدرس برای همیشه تغییر کرده است.
انتقال موقت به یک آدرس دیگر.
فایل تغییری نکرده و از نسخه کش (Cache) استفاده میشود.
مشکل از درخواست ارسال شده توسط کاربر است.
درخواست نامعتبر است.
برای دسترسی باید احراز هویت شوی.
سرور درخواست را فهمیده، اما اجازه دسترسی نمی دهد.
منبع یا صفحه مورد نظر پیدا نشد.
متد HTTP مجاز نیست. مثلاً به جای POST از GET استفاده شده است.
در مدت کوتاهی درخواست های زیادی ارسال شده است.
مشکل از سرور است، نه کاربر.
یک خطای داخلی در سرور رخ داده است.
سرور واسط پاسخ معتبری از سرور اصلی دریافت نکرده است.
سرور موقتاً در دسترس نیست. مثلاً هنگام تعمیرات یا ترافیک بالا.
سرور واسط منتظر پاسخ ماند، اما زمان انتظار تمام شد.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
یه سایت هست که وقتی دنبال یک کتاب تخصصی برنامه نویسی می گردی، ممکنه دقیقاً همون چیزی باشه که دنبالش بودی...
اسمش؟
و کلی موضوع تخصصی دیگه رو به رو بشی
اما چیزی که جذابه اینه که فقط دنبال کتاب های عمومی نیستی، منابع تخصصی و فنی هم پیدا می شن که شاید جست و جوی معمولی برای پیدا کردنشون حسابی وقتت رو بگیره.
🔍 ترفند پیشنهادی:
قبل از اینکه ساعت ها توی گوگل دنبال یک کتاب بگردی، اسم کتاب یا موضوع مورد نظرت رو اینجا هم جست و جو کن.
چون احتمالاً یه روز دنبال یک کتاب خاص می گردی و یادت میاد این سایت کجا بود
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5
Media is too big
VIEW IN TELEGRAM
فیلم Snowden محصول ۲۰۱۶، داستان ادوارد اسنودن و اتفاقاتی را روایت می کند که باعث شد اطلاعات گسترده ای درباره برنامه های نظارتی و جاسوسی دولت آمریکا افشا شود.
چون فیلم به موضوعاتی مثل:
میپردازد.
یکی از جذاب ترین بخش های فیلم اینه که نشون میده فناوری فقط برای ساختن نرم افزار های بهتر نیست، نحوه استفاده از این فناوری می تونه تأثیر بسیار بزرگی روی زندگی انسان ها داشته باشه.
🎯 اگر به برنامه نویسی، امنیت، شبکه یا دنیای فناوری علاقه داری، این فیلم می تونه دید متفاوتی نسبت به مفهوم Privacy و Security بهت بده.
اگر یک برنامه نویس متوجه بشه نرمافزاری که ساخته برای نقض حریم خصوصی مردم استفاده میشه، به نظرت باید سکوت کنه یا موضوع رو افشا کنه؟
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
کدام یک از موارد زیر یک روش برای به روزرسانی پایگاه داده در Entity Framework است؟
Anonymous Quiz
37%
41%
17%
5%
5❤2
اگر برای تست API هنوز از
نرم افزار Bruno یک ابزار مدرن برای تست و مدیریت API هاست که برخلاف بسیاری از ابزار های مشابه، اطلاعات پروژه را به صورت فایل های متنی داخل پروژه ذخیره می کند. یعنی همه چیز را می توانی کنار کدها در Git نگه داری و بدون دردسر با تیم به اشتراک بگذاری.
برخلاف Postman، فایل های Collection در قالب فایل های متنی ذخیره می شوند بنابراین:
اگر قرار باشد فقط یکی را انتخاب کنید، کدام را ترجیح میدهید؟
🐶 Bruno
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
اگر تا حالا برات سؤال شده که یک سایت با ASP .NET Core ساخته شده یا Laravel، از React استفاده می کنه یا Vue، دیتابیسش چیه یا پشتش Cloudflare هست یا نه، وقتشه با Wappalyzer آشنا بشی.
یک افزونه فوق العاده برای مرورگر که با باز کردن هر سایت، تکنولوژی های استفاده شده در آن را نمایش می دهد.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
گاهی برای بررسی
null بودن یک مقدار، لازم نیست چند خط if بنویسیماینجا Null-Coalescing Operator (
??) خیلی به کارمون میاد string name = null;
string displayName = name ?? "کاربر ناشناس";
یعنی:
name مقدار داشته باشه name برابر null باشه "کاربر ناشناس" قرار می گیرهکد کوتاه تر، خواناتر و تمیزتر میشه
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
احتمالاً اسم Claude رو شنیدین، ولی میدونستید از اسم یک دانشمند معروف گرفته شده ؟
آقای Claude Shannon یکی از بزرگ ترین دانشمندان دنیای کامپیوتر و اطلاعات بود، کسی که بهش میگن پدر نظریه اطلاعات
اون در سال ۱۹۴۸ مفهوم Entropy رو معرفی کرد، مفهومی که بعدها پایهی خیلی از چیزهایی شد که امروز در هوش مصنوعی و مدل های زبانی استفاده می کنیم
پس هر بار گفتین Claude، یادتون باشه اسمش از یک دانشمند بزرگ اومده
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3💯1
اگر با پروژه های برنامه نویسی کار می کنی، این ۱۲ دستور Git جزو مهم ترین دستور هایی هستن که تقریباً همیشه بهشون نیاز پیدا می کنی.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Media is too big
VIEW IN TELEGRAM
تا حالا فکر کردی یک نفر با استفاده از ریاضیات و منطق، چطور می تونه مسیر یک جنگ رو تغییر بده؟
فیلم The Imitation Game محصول ۲۰۱۴ داستان واقعی آلن تورینگ، ریاضی دان و دانشمند برجسته بریتانیایی رو روایت میکنه، کسی که در جریان جنگ جهانی دوم تلاش میکنه رمز پیچیده ماشین Enigma آلمان نازی رو بشکنه
اگر به برنامه نویسی، رمزنگاری، کامپیوتر و تاریخ تکنولوژی علاقه داری، این فیلم یکی از گزینه های جذابه که ارزش دیدن داره
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
بیشتر برنامه نویس ها فکر می کنند مشکلشان کمبود مهارت است، اما واقعیت این است که اولین مشتری، بیشتر از مهارت، به اعتماد نیاز دارد.
اگر هنوز هیچ پروژه ای نگرفته ای، این مسیر را امتحان کن:
لازم نیست مشتری داشته باشی، یک پروژه کامل مثل فروشگاه، سیستم مدیریت، پنل ادمین یا وب اپلیکیشن طراحی کن و آن را به عنوان نمونه کار منتشر کن.
به جای اینکه بگویی هر پروژه ای انجام میدهم، دقیق بگو:
توسعه نرم افزار های گرافیکی با WinForms
طراحی وب سایت با Blazor
توسعه API با ASP .NET Core
به سؤالات برنامه نویسی پاسخ بده، تجربه هایت را منتشر کن و راه حل مشکلات رایج را به اشتراک بگذار. اعتماد، قبل از پروژه ساخته میشود.
اولین مشتری همیشه از اینترنت نمی آید. دوستان، آشنایان، شرکت های کوچک یا کسب و کار های محلی می توانند نقطه شروع خوبی باشند.
وقتی با مشتری صحبت می کنی، توضیح بده که پروژه چه مشکلی را حل می کند و چه ارزشی برای او ایجاد می کند، نه اینکه فقط درباره تعداد خط کد یا تکنولوژی ها حرف بزنی.
اگر کسی ازت پرسید قبلاً چه کار هایی انجام داده ای؟ باید بتوانی در چند ثانیه لینک یا تصاویر پروژه هایت را ارسال کنی.
اولین مشتری معمولاً سخت ترین مشتری است. اما بعد از آن، گرفتن پروژه های بعدی بسیار ساده تر می شود، چون نمونه کار، تجربه و اعتماد ساخته ای.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
💯3
تا حالا خواستی داخل Blazor Server فایل های چند گیگابایتی آپلود کنی؟
در این نمونه یک سیستم آپلود فایل با قابلیت های زیر پیاده سازی شده:
CancellationTokenاگر با Blazor Server / .NET کار میکنی، این نمونه می تونه پایه خوبی برای ساخت سیستم آپلود فایل های حجیم باشه
کد کامل:
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Blozer-Upload-File.zip
11.3 MB
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
با Freedium می تونی بعضی از مقالات پولی و محدود شدهی سایت های معروف رو بدون خرید اشتراک مطالعه کنی
اگر اهل برنامه نویسی، تکنولوژی، هک و امنیت، کسب و کار یا مطالعه مقالات تخصصی هستی، این ابزار می تونه خیلی کاربردی باشه
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
از دیدن رنگ های تکراری VS Code خسته شدی؟ 😎
با VS Code Themes می تونی بین مجموعه ای از تم های مختلف برای Visual Studio Code بگردی و ظاهر محیط کد نویسی ات رو دقیقاً مطابق سلیقه خودت شخصی سازی کنی.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
اگر واقعاً می خوای برنامه نویس حرفه ای بشی، فقط آموزش دیدن کافی نیست، باید چیزی بسازی
پروژه شخصی بهت اجازه میده:
چند ایده ساده:
مهم نیست پروژه ت ۱۰۰ خط کد داشته باشه یا ۱۰۰ هزار خط
مهم اینه که خودت ساختیش، خودت خرابش کردی و خودت درستش کردی
چون گاهی بهترین چیزی که می تونه بهت برنامه نویسی یاد بده، نه یک دوره آموزشی، نه یک کتاب...
بلکه پروژه ایه که خودت ساختی
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5