میوزیریا - وکندریقرت موسیقی اسٹوریج

میوزیریا - وکندریقرت موسیقی اسٹوریج

ایک دن میں نے اپنے لیے موسیقی منتخب کرنے کے لیے ایک درخواست لکھنے کا فیصلہ کیا اور اسے گھر پر/سڑک پر/ورک آؤٹ وغیرہ میں سننے کا فیصلہ کیا۔ اور تاکہ یہ سب میری طرف سے کم سے کم شرکت کے ساتھ ایک بہاؤ میں کام کرے۔ میں ایک فن تعمیر کے ساتھ آیا، ایک پروٹوٹائپ کا خاکہ بنایا، اور آخر کار ایک "چھوٹی سی پریشانی" میں پڑ گیا۔

اور یہ واضح نہیں ہے کہ گانے کی فائلیں خود کہاں سے حاصل کی جائیں۔ اس وقت تک، VKontakte نے پہلے ہی api بند کر دیا تھا، بڑے میوزک پورٹلز پر سب کچھ بھی خاموش تھا، یہاں تک کہ گانوں کو بھی ٹکڑوں میں دے دیا گیا تھا تاکہ پارس نہ ہو۔ جو کچھ باقی رہ گیا وہ کچھ انفرادی فلائی بائی نائٹ سائٹیں تھیں جن میں ایک ٹن اشتہارات اور ہر طرح کا کوڑا کرکٹ، ہر طرح کے مشکوک گرابر پروگرام اور دوسرے "گندے" اختیارات تھے۔ عام طور پر، ایک بھی واقعی اچھا حل نہیں ہے. آپ یقیناً کچھ Yandex موسیقی یا اس طرح کی سبسکرپشن خرید سکتے ہیں۔ لیکن ایک بار پھر، کہیں بھی کوئی کھلا عوامی API نہیں ہے اور آپ کو پروگرام کے لحاظ سے موسیقی تک رسائی نہیں ہے۔ کئی بڑی کمپنیوں نے لازمی طور پر دوسروں کی موسیقی تک رسائی کو محدود کر دیا ہے۔ آخر ایسا کیوں ہوا؟ گہرائی میں کھودنے سے یہ واضح ہو گیا کہ اصل مسئلہ کاپی رائٹ کا تھا۔ سبسکرپشنز کی شکل میں موجودہ حل بہت سے تجارتی میوزک مصنفین اور انہی کمپنیوں کے لیے موزوں ہے۔ ایک ہی وقت میں، غیر تجارتی اور نیم تجارتی موسیقی بھی عام فہرست میں آتا ہے. آپ یا تو ہر چیز کی ادائیگی کرتے ہیں یا کچھ بھی نہیں سنتے ہیں۔

اور سوچنے لگا کہ اس سب کا کیا کروں؟ ہم موسیقی کی مفت تقسیم کو کیسے منظم کر سکتے ہیں؟ اگر میں خود موسیقی بنا رہا ہوں اور اس سے پیسہ کمانا چاہتا ہوں تو میں کیا کروں گا؟ اگر میرے گانوں کو پائریٹ کیا گیا تو کیا میں اسے پسند کروں گا؟ ویسے بھی متبادل حل کیا ہے؟

نتیجے کے طور پر، دو اہم مسائل ہیں جن کو حل کرنے کی ضرورت ہے:

  • سافٹ ویئر سمیت زیادہ تر لوگوں کے لیے آسان طریقوں کا استعمال کرتے ہوئے موسیقی کی مفت تقسیم کی تنظیم۔
  • موسیقی کے تخلیق کاروں کو پیسہ کمانے کے لیے متبادل پیش کرنا

عالمی وکندریقرت موسیقی اسٹوریج

ابتدائی طور پر، میں نے موجودہ حل تلاش کرنے اور اس کی بنیاد پر سب کچھ بنانے کی کوشش کی۔ کچھ دیر کی تلاش کے بعد، پہلا مجھے پسند آیا ipfs. میں نے اپنے خیال کو نافذ کرنا شروع کیا، لیکن تھوڑی دیر بعد میں نے اس حل میں کئی اہم مسائل دریافت کیے:

  • IPfs - ہر چیز اور سب کے لیے اسٹوریج۔ یہاں تصاویر اور موسیقی اور ویڈیوز اور وہ سب کچھ ہے جو آپ چاہتے ہیں۔ عام طور پر، اتنا بڑا سیارہ "ڈسٹ بن"۔ لہذا، جب آپ اپنا نوڈ لانچ کرتے ہیں، تو آپ کو فوری طور پر ایک بہت بڑا بوجھ ملتا ہے۔ کار بس درد سے کراہ رہی ہے۔
  • کچھ قسم کا نامکمل "کچرا" جمع کرنے کا طریقہ کار۔ مجھے نہیں معلوم کہ اب یہ کیسا ہے، لیکن اس وقت، اگر آپ نے کنفیگریشن میں لکھا کہ آپ اسٹوریج کو دس گیگا بائٹس تک محدود کرنا چاہتے ہیں، تو اس کا کوئی مطلب نہیں تھا۔ بہت سے کنفیگریشن پیرامیٹرز کو نظر انداز کرتے ہوئے اسٹوریج میں اضافہ ہوا۔ نتیجے کے طور پر، ہارڈ ڈسک کا ایک بہت بڑا ذخیرہ ہونا ضروری تھا جب تک کہ ipfs غیر ضروری کو دوبارہ ترتیب دینے کا طریقہ نہ سمجھے۔
  • لائبریری کے استعمال کے وقت (مجھے نہیں معلوم کہ اب یہ کیسا ہے)، کلائنٹ کے پاس ٹائم آؤٹ لاگو نہیں ہوا تھا۔ آپ فائل وصول کرنے کی درخواست بھیجتے ہیں، اور اگر یہ موجود نہیں ہے، تو آپ بس لٹک جاتے ہیں۔ بلاشبہ، لوگ ہر طرح کے کام کے ساتھ آئے جس سے مسئلہ جزوی طور پر حل ہو گیا، لیکن یہ بیساکھی تھیں۔ ان چیزوں کو ڈبے سے باہر آنا چاہیے۔

اب بھی بہت سے چھوٹے مسائل تھے، اور تاثر واضح تھا: اس منصوبے کے لیے استعمال نہیں کیا جا سکتا۔ میں نے سٹوریج کی سہولت کی تلاش جاری رکھی، مختلف آپشنز کی تلاش کی، لیکن کبھی کوئی مناسب چیز نہیں ملی۔

آخر میں، میں نے فیصلہ کیا کہ یہ خود ایک وکندریقرت اسٹوریج لکھنے کی کوشش کرنے کے قابل ہے۔ یہاں تک کہ اگر یہ بین سیارے ہونے کا بہانہ نہیں کرتا ہے، تو یہ ایک خاص مسئلہ حل کرے گا۔

اور اس طرح یہ نکلا۔ پھیلاؤ, ذخیرہ, metastocle, میوزیریا, museria-global.

پھیلاؤ - یہ مرکزی، سب سے کم پرت ہے جو آپ کو نوڈس کو نیٹ ورک میں جوڑنے کی اجازت دیتی ہے۔ اس میں ایک الگورتھم ہے، جسے میں نے اب تک تقریباً 10000 سرورز کی بنیاد پر جزوی طور پر نافذ کیا ہے۔ الگورتھم کا مکمل ورژن لاگو کرنا بہت زیادہ مشکل ہے اور اسے کئی اضافی مہینے (شاید مزید) درکار ہوں گے۔

میں اس مضمون میں اسپریڈ ایبل کو تفصیل سے بیان نہیں کروں گا؛ بہتر ہے کہ کسی دن الگ سے لکھیں۔ یہاں میں صرف کچھ خصوصیات کو نوٹ کروں گا:

  • http/https کے ذریعے کام کرتا ہے۔
  • آپ کسی مخصوص کام کے لیے ایک علیحدہ نیٹ ورک بنا سکتے ہیں، جو ہر ایک پروجیکٹ پر بوجھ کو نمایاں طور پر کم کر دے گا اس کے مقابلے میں کہ اگر وہ سب ایک ہی نیٹ ورک پر ہوں۔
  • ٹائم آؤٹ اور دیگر چھوٹی چیزوں کے ساتھ ایک طریقہ کار ابتدائی طور پر سوچا گیا تھا۔ اور یہ کلائنٹ اور نوڈ دونوں میں تمام طریقوں کے لیے کام کرتا ہے۔ آپ اپنی درخواست کے اندر سے ترتیبات کو لچکدار طریقے سے منظم کر سکتے ہیں۔
  • لائبریری نوڈج میں لکھی گئی ہے۔ اسٹیک کی کارکردگی کے مسائل اس کی وکندریقرت نوعیت کے مطابق ہوتے ہیں۔ نوڈس کی تعداد میں اضافہ کرکے بوجھ کو "پھیلایا" جا سکتا ہے۔ اس کے بدلے میں، بہت سے فوائد ہیں: ایک بہت بڑی کمیونٹی، سادگی اور استعمال میں آسانی، ایک isomorphic کلائنٹ، کوئی بیرونی انحصار نہیں، وغیرہ۔

ذخیرہ ایک پرت ہے جو اسپریڈ ایبل سے وراثت میں ملی ہے جو آپ کو نیٹ ورک پر فائلوں کو اسٹور کرنے کی اجازت دیتی ہے۔ ہر فائل کے مندرجات کی اپنی ہیش ہوتی ہے، جسے بعد میں بازیافت کرنے کے لیے استعمال کیا جا سکتا ہے۔ فائلوں کو بلاکس میں تقسیم نہیں کیا جاتا ہے، بلکہ مکمل طور پر محفوظ کیا جاتا ہے۔

metastocle - اسپریڈ ایبل سے وراثت میں ملی ایک پرت، جو آپ کو نیٹ ورک پر ڈیٹا ذخیرہ کرنے کی اجازت دیتی ہے، لیکن فائلوں پر نہیں۔ انٹرفیس Nosql ڈیٹا بیس کی طرح ہے۔ مثال کے طور پر، آپ اسٹوریکل میں فائل شامل کرسکتے ہیں، اس کی ہیش حاصل کرسکتے ہیں اور کسی چیز کے لنک کے ساتھ اسے میٹاسٹوکل پر لکھ سکتے ہیں۔

میوزیریا - سٹوریکل اور میٹاسٹوکل سے وراثت میں ملا۔ یہ پرت موسیقی کو ذخیرہ کرنے کے لیے براہ راست ذمہ دار ہے۔ اسٹوریج صرف mp3 فائلوں اور id3 ٹیگز کے ساتھ کام کرتا ہے۔

گانے کی "کلید" کے طور پر، اس کا پورا نام فارم میں استعمال ہوتا ہے۔ آرٹسٹ (TPE1) - عنوان (TIT2). مثال کے طور پر:

  • گندھک - بوجھ
  • ہائی ریز - لوسٹ مائی وے (کارنامہ ایمیلیو روزاس، دانی ڈیونچی)

آپ زیادہ سے زیادہ تفصیل سے یہ جان سکتے ہیں کہ گانے کے عنوان کیسے بنتے ہیں۔ یہاں. آپ کو فنکشن کو دیکھنے کی ضرورت ہے۔ utils.beautifySongTitle().

نوڈ کی ترتیبات میں بیان کردہ میچوں کی فیصد کو میچ سمجھا جاتا ہے۔ مثال کے طور پر، 0.85 کی قدر کا مطلب ہے کہ اگر کلیدی موازنہ فنکشن (گانے کے نام) میں 85% سے زیادہ کی مماثلت پائی جاتی ہے، تو یہ وہی گانا ہے۔

مماثلت کا تعین کرنے کے لیے الگورتھم فنکشن میں موجود ہے۔ utils.getSongSimilarity().

گانے کا احاطہ، بعد میں رسید کے لیے، ٹیگز کے ذریعے بھی منسلک کیا جا سکتا ہے (اے پی آئی سی)۔ یوٹیلٹیز کے پاس ٹیگ وصول کرنے اور اس پر کارروائی کرنے کے تمام ضروری طریقے ہیں۔

ایک کلائنٹ کے ذریعے سٹوریج کے ساتھ کام کرنے کی ایک مثال میں پایا جا سکتا ہے پڑھنا.

مندرجہ بالا تمام پرتیں خود ساختہ ہیں اور دوسرے منصوبوں کے لیے نچلی تہوں کے طور پر الگ سے استعمال کی جا سکتی ہیں۔ مثال کے طور پر، کتابوں کو ذخیرہ کرنے کے لیے ایک پرت بنانے کا خیال پہلے ہی موجود ہے۔

museria-global گلوبل میوزک نیٹ ورک میں آپ کے اپنے نوڈ کو لانچ کرنے کے لیے پہلے سے تشکیل شدہ گٹ ریپوزٹری ہے۔ کلوننگ npm i && npm شروع کریں اور یہ بنیادی طور پر ہے. آپ اسے مزید تفصیل سے ترتیب دے سکتے ہیں، اسے ڈوکر وغیرہ میں چلا سکتے ہیں۔ تفصیلی معلومات پر دستیاب ہے۔ گیتھب.

جب ریپوزٹری کو اپ ڈیٹ کیا جاتا ہے، تو آپ کو اپنے نوڈ کو اپ ڈیٹ کرنے کی ضرورت ہوتی ہے۔ اگر بڑا یا معمولی ورژن نمبر تبدیل ہوتا ہے، تو یہ عمل لازمی ہے، ورنہ نیٹ ورک کی طرف سے پرانے نوڈس کو نظر انداز کر دیا جائے گا۔

آپ گانے کے ساتھ دستی اور پروگرام کے ساتھ کام کر سکتے ہیں۔ ہر نوڈ مختلف کاموں کے لیے ایک سرور چلاتا ہے۔ بشمول، جب آپ ڈیفالٹ اینڈ پوائنٹ پر جائیں گے، تو آپ کو موسیقی کے ساتھ کام کرنے کے لیے ایک انٹرفیس ملے گا۔ مثال کے طور پر، آپ جا سکتے ہیں۔ جڑ نوڈ (شاید لنک بعد میں متعلقہ نہ ہو، ان پٹ نوڈس بھی حاصل کیے جا سکتے ہیں۔ ٹیلیگرام، یا Github پر اپ ڈیٹس تلاش کریں)۔

اس طرح آپ سٹوریج میں گانے تلاش اور اپ لوڈ کر سکتے ہیں۔ گانوں کو اپ لوڈ کرنا دو طریقوں میں ہو سکتا ہے: عام اور معتدل۔ دوسرے موڈ کا مطلب یہ ہے کہ یہ کام ایک شخص کرتا ہے، پروگرام نہیں۔ اور اگر آپ شامل کرتے وقت اس باکس کو چیک کرتے ہیں، تو آپ کو کیپچا حل کرنے کی ضرورت ہوگی۔ ترجیحات -1، 0 یا 1 کے ساتھ گانے شامل کیے جا سکتے ہیں۔ ترجیح 1 صرف معتدل وضع میں سیٹ کی جا سکتی ہے۔ ترجیحات کی ضرورت ہے تاکہ اسٹوریج زیادہ مؤثر طریقے سے فیصلہ کر سکے کہ جب آپ کسی موجودہ گانے کو نئے گانے سے بدلنے کی کوشش کرتے ہیں تو کیا کرنا ہے۔ ترجیح جتنی زیادہ ہوگی، آپ کی موجودہ فائل کو اوور رائٹ کرنے کا امکان اتنا ہی زیادہ ہوگا۔ یہ سپیم سے لڑنے میں مدد کرتا ہے اور ڈاؤن لوڈ کردہ گانوں کے معیار کو بڑھاتا ہے۔

اگر آپ اپنے سٹوریج میں گانے شامل کرنا شروع کرتے ہیں، تو تصاویر (کور) کو منسلک کرنے کی کوشش کریں، حالانکہ اس فیلڈ کی ضرورت نہیں ہے۔ 99% معاملات میں، گانے کے عنوان پر مبنی گوگل پر پہلی تصاویر البم کور ہیں۔

تکنیکی طور پر فائلوں کا اضافہ کیسے ہوتا ہے، مختصراً:

  • کلائنٹ کو ایک مفت نوڈ کا پتہ ملتا ہے، جو تھوڑی دیر کے لیے کوآرڈینیٹر بن جائے گا۔
  • گانا شامل کرنے کا کام شروع کیا جاتا ہے (کسی شخص یا کوڈ کے ذریعہ)، اور ایک کوآرڈینیٹر کو اختتامی نقطہ میں شامل کرنے کی درخواست کی جاتی ہے۔
  • کوآرڈینیٹر حساب لگاتا ہے کہ کتنے ڈپلیکیٹس کو اسٹور کیا جانا چاہیے (کنفیگر ایبل پیرامیٹر)۔
  • محفوظ کرنے کے لیے موزوں ترین نوڈس تلاش کیے جاتے ہیں۔
  • فائل براہ راست ان نوڈس پر جاتی ہے۔

تکنیکی طور پر فائلیں کیسے موصول ہوتی ہیں:

  • کلائنٹ کو ایک مفت نوڈ کا پتہ ملتا ہے، جو تھوڑی دیر کے لیے کوآرڈینیٹر بن جائے گا۔
  • گانا وصول کرنے کا فنکشن (کسی شخص یا کوڈ کے ذریعہ) کو متحرک کیا جاتا ہے، اور کوآرڈینیٹر کے اختتامی نقطہ پر اسے وصول کرنے کی درخواست کی جاتی ہے۔
  • کوآرڈینیٹر کیشے میں لنک کی موجودگی کی جانچ کرتا ہے۔ اگر کوئی ہے اور یہ کام کر رہا ہے، تو اسے فوری طور پر کلائنٹ کو واپس کر دیا جاتا ہے، بصورت دیگر نوڈس دستیابی کے لیے پول کیے جاتے ہیں۔
  • اگر کوئی مل جائے تو فائل لنک سے موصول ہو جاتی ہے۔

میوزک تخلیق کاروں کے متبادل

مجھے ہمیشہ سے اس سوال میں دلچسپی رہی ہے کہ کوئی بہت سے تخلیقی کاموں کی قدر کو معروضی طور پر کیسے جانچ سکتا ہے؟ مثال کے طور پر، کوئی شخص اپنے میوزک البم کو $10 میں کیوں پیش کرتا ہے؟ یا تو $20 یا $100 میں۔ الگورتھم کہاں ہے؟ جب، مثال کے طور پر، ہم کسی فزیکل پروڈکٹ، یا یہاں تک کہ کئی قسم کی خدمات کے بارے میں بات کر رہے ہوں، تو ہم کم از کم لاگت کا حساب لگا سکتے ہیں اور اس سے آگے بڑھ سکتے ہیں۔

ٹھیک ہے، ہم کہتے ہیں کہ ہم $10 پر شرط لگاتے ہیں۔ کیا یہ بہت موثر ہے؟ ہم کہتے ہیں کہ میں نے کہیں سے کوئی البم یا گانا سنا اور اپنا شکریہ ادا کرنے کا فیصلہ کیا۔ لیکن میرے احساسات اور میری اپنی صلاحیتوں کے مطابق، $3 میری حد ہے۔ تو ہمیں کیا کرنا چاہیے؟ زیادہ تر لوگوں کی طرح میں شاید کچھ نہیں کروں گا۔

تخلیقی کام کے لیے کسی قسم کی مقررہ قیمت مقرر کر کے، آپ صرف اپنے آپ کو محدود کر لیتے ہیں، لوگوں کی ایک بڑی تعداد کو آپ کو کم رقم بھیجنے سے روکتے ہیں، جو مجموعی طور پر ان لوگوں سے زیادہ متاثر کن ہو سکتا ہے جو آپ کی مقرر کردہ قیمت پر خریدیں گے۔ مجھے ایسا لگتا ہے کہ تخلیقی صلاحیت بالکل وہی ہے جہاں عطیات کو پہلے حکمرانی کرنی چاہیے۔ ایسا کرنے کے لیے آپ کو ضرورت ہے:

  • لوگوں کو اس طرح شکر ادا کرنا سکھائیں۔ تخلیق کاروں کو خود واضح طور پر ظاہر کرنا چاہیے کہ وہ عطیات وصول کرنا چاہتے ہیں، ہر جگہ ادائیگی کے مختلف طریقوں کے لنکس شامل کرنا چاہتے ہیں، وغیرہ۔
  • ان عملوں کو آسان اور مضبوط بنانے کے لیے مزید میکانزم کی ضرورت ہے۔ مثال کے طور پر، کوئی ایسی عالمی ویب سائٹ بنائیں جہاں آپ کاپی رائٹ لنکس کا استعمال کرتے ہوئے تخلیقی صلاحیتوں کے لیے عطیہ کر سکیں۔

    آئیے کہتے ہیں کہ لنک کچھ اس طرح ہے:

    http://someartistsdonationsite.site/category/artist?external-info

    اگر ہم اسے موسیقاروں تک محدود کرتے ہیں، تو:

    http://someartistsdonationsite.com/music/miyagi?song=blabla

    اداکار کو اپنے عرفی نام کی تصدیق کرنے اور اس کے ساتھ منسلک کرنے کی ضرورت ہے۔

    ہم میوزیریا کلائنٹ کے لیے اس طرح کا لنک تیار کرنے کے لیے ایک فنکشن شامل کر رہے ہیں، اور ریپوزٹری استعمال کرنے والے تمام پروجیکٹس اپنی ویب سائٹس/ایپلی کیشنز پر گانوں کے آگے ان لنکس کے ساتھ ڈونیشن بٹن لگا سکتے ہیں۔ صارفین کو بہت جلد اور آسانی سے عطیہ کرنے کا موقع ملتا ہے۔ قدرتی طور پر، اس نقطہ نظر کو کسی بھی پروجیکٹ اور تخلیقی صلاحیتوں کے زمرے میں استعمال کیا جا سکتا ہے، نہ کہ صرف اسٹوریج کے ذریعے۔

آپ کو میوزک اسٹوریج کی سہولت کی ضرورت کیوں ہے، اور آپ اس میں کیسے حصہ لے سکتے ہیں؟

  • اگر آپ موسیقی سے متعلق کسی پروجیکٹ پر کام کر رہے ہیں، یا ایک بنانے کا ارادہ کر رہے ہیں، تو یہ وہی ہے جس کا مقصد تھا۔ آپ گانوں کو ذخیرہ کرنے اور بازیافت کرنے کے لیے میوزیریا کا استعمال کر سکتے ہیں، آن لائن گانوں کے بہاؤ کو بڑھا سکتے ہیں۔ اگر، ایک ہی وقت میں، آپ کے پاس کم از کم اپنے ایک نوڈ کو بڑھانے اور رکھنے کی صلاحیت ہے، تو یہ نیٹ ورک کی ترقی میں بہترین تعاون ہوگا۔
  • شاید آپ کوئی اور کردار ادا کرنے کے لیے تیار ہیں: کوڈ کے ساتھ مدد کریں، یا ڈیٹا بیس کو پُر کریں اور اسے معتدل کریں، پروجیکٹ کے بارے میں معلومات اپنے دوستوں میں تقسیم کریں، وغیرہ۔
  • ہوسکتا ہے کہ آپ کو یہ خیال پسند آیا ہو اور آپ مالی مدد کرنے کے لیے تیار ہیں تاکہ یہ سب زندہ رہے اور ترقی کرے۔ جتنے زیادہ نوڈز، اتنے ہی گانے۔
  • یا آپ کو کسی وقت ایک گانا تلاش کرنے اور ڈاؤن لوڈ کرنے کی ضرورت ہے۔ آپ یہ بہت آسانی سے کر سکتے ہیں، مثال کے طور پر، کے ذریعے ٹیلیگرام بوٹ.

یہ منصوبہ اب بالکل ابتدائی مرحلے میں ہے۔ ایک ٹیسٹ نیٹ ورک شروع کر دیا گیا ہے، نوڈس کثرت سے ریبوٹ ہو سکتے ہیں، اپ ڈیٹس کی ضرورت ہے، وغیرہ۔ اگر تشخیص کی مدت کے دوران کوئی اہم مسئلہ نہیں ہے، تو یہی نیٹ ورک اہم میں تبدیل ہو جاتا ہے۔

آپ باہر سے نوڈ کے بارے میں معلومات دیکھ سکتے ہیں: گانے کی تعداد، خالی جگہ وغیرہ، جیسے لنک کا استعمال کرتے ہوئے http://node-address/status یا http://node-address/status?pretty

میرے رابطے:

ماخذ: www.habr.com

نیا تبصرہ شامل کریں