ʻO ClipBucket, he kumu wehe YouTube clone hiki ke hoʻokomo ʻia ma kāu kikowaena ponoʻī
ʻO ka mea mua aʻu i hoʻāʻo ai ClipBucket, ka mea i kapa iā ia iho he open-source YouTube clone hiki iā ʻoe ke hoʻouka ma kāu kikowaena.
ʻO ka mea kupanaha, ʻaʻohe ʻōlelo kuhikuhi hoʻonohonoho ʻo ClipBucket. Mahalo iā i ka hooponopono o waho я 'akomi i ke ka'ina ho'okomo me ke kōkuaʻana o ʻO ke kūpono, he mea paahana hoʻonohonoho hoʻonohonoho kikowaena.
ʻO kahi o ka paʻakikī ʻo ia ka haki ʻana o nā palapala hoʻonohonoho ClipBucket. I kēlā manawa hana ma Google a e like me nā ʻōlelo o ka ʻaelike, ʻaʻohe oʻu kuleana e hāʻawi i ka clone YouTube open source, akā ʻo wau hoʻopuka i kahi hōʻike kuhi, kahi e hiki ai ke hana maʻalahi nā hoʻoponopono e pono ai. Ua hala na mahina, aole nae lakou i maopopo i ke ano o ka pilikia. Ua hoʻohui lākou i nā mea a pau nui aʻe nā hewa i kēlā me kēia hoʻokuʻu.
Ua hoʻohana ʻo ClipBucket i kahi hoʻohālike kūkākūkā—ua hoʻokuʻu lākou i kā lākou code no ka manuahi a uku ʻia no ke kōkua hoʻolaha. Ua ʻike mālie iaʻu ʻaʻole makemake nui kahi hui e loaʻa kālā mai ke kākoʻo i uku ʻia i ka hoʻokomo ʻana o nā mea kūʻai i ka huahana iā lākou iho.
ʻO MediaGoblin, kahi koho hou aʻe
Ma hope o nā mahina o ka huhū me ClipBucket, ua nānā au i nā koho i loaʻa a loaʻa ʻO MediaGoblin.
He nui nā mea maikaʻi a MediaGoblin. ʻAʻole like me ClipBucket ma PHP maikaʻi ʻole, ua kākau ʻia ʻo MediaGoblin ma Python, he ʻōlelo aʻu i ʻike nui ai i ka coding. ʻAi laina kauoha, hiki iā ʻoe ke hoʻoiho maʻalahi i ka hoʻoiho wikiō. ʻO ka mea nui loa, hele mai ʻo MediaGoblin me Kiʻi Docker, ka mea e hoʻopau i nā pilikia hoʻokomo.
Docker he ʻenehana ia e hoʻokumu i kahi kaiapuni kūʻokoʻa no kahi noi e holo ma nā wahi āpau. Hoʻohana wau iā Docker i loko ka nui o kāna mau papahana.
ʻO ka paʻakikī kamahaʻo o ka hana hou ʻana iā MediaGoblin
Ua manaʻo wau he hana koʻikoʻi ka lawe ʻana i ke kiʻi docker MediaGoblin. ʻAe, ʻaʻole i holo maikaʻi kēlā ala.
ʻAʻole i loaʻa i ke kiʻi i hoʻopau ʻia nā hana pono ʻelua:
Kalaukina
Hoʻokumu ʻo MediaGoblin i kahi puka pāpaʻi lehulehu ma ke ʻano maʻamau, a makemake wau i kahi ala e kaohi ai i ke komo ʻana i nā poʻe o waho.
Hoʻololi hoʻololi
I kēlā me kēia manawa āu e hoʻoiho ai i kahi wikiō, hoʻāʻo ʻo MediaGoblin e transcode ia no ke kahe ʻana maikaʻi loa. Inā mākaukau mua ka wikiō no ke kahe ʻana, hoʻohaʻahaʻa ka transcoding i ka maikaʻi.
ʻO ka mea pōʻino, ʻaʻole i kūkulu hou ʻia ke kiʻi Docker mai kēia manawa. waihona waihona MediaGoblin. Ua ho'āʻo wau e hoʻohui pū me ia me ka mana mai ke kūkulu kūleʻa hope loa, akā ua hāʻule nō hoʻi. ʻOiai ua hoʻohana wau i ke code like, ua loli nā mea hilinaʻi waho o MediaGoblin, e wāwahi ana i ke kūkulu. Ma hope o nā hola he nui, ua holo au i ke kaʻina hana MediaGoblin he 10-15 mau minuke a hiki i ka hopena.
He mau mahina ma hope mai, ua like ka mea. ʻO ka huina, ua uhaʻi ke kaulahao hilinaʻi MediaGoblin i kaʻu kūkulu ʻana i nā makahiki ʻelua i hala iho nei, a ʻo ka manawa hope loa i hana ʻia ʻo ia wale nō i koʻu kākau ʻana i kēia ʻatikala. Ua paʻi hope wau pono'ī o MediaGoblin c nā hilinaʻi paʻakikī a me nā mana o nā hale waihona puke. I nā huaʻōlelo ʻē aʻe, ma kahi o ka ʻōlelo kānalua e hana ʻo MediaGoblin me kekahi ʻano kaulana > = 3.0, ua kau wau i kahi hilinaʻi kikoʻī ʻolihi 4.2.1no ka mea, ua hoʻāʻo au iā MediaGoblin me kēia mana. Me he mea lā e pono ai ka huahana hana hana hou, akā ʻaʻole au i hana.
No ka mea e holo ana ʻo MediaGoblin iā Docker ma kaʻu kamepiula kūloko, ʻo ka hana aʻe ʻo ia ke kau ʻana iā ia i kahi kikowaena kapua i hiki i ka ʻohana ke nānā i ke wikiō.
ʻO MediaGoblin a me ka pilikia mālama wikiō
Nui nā paepae e lawe i kahi kiʻi Docker a hoʻokipa iā ia ma kahi URL ākea. ʻO ka hopu ʻana, ʻo ka hoʻohui ʻana i ka app ponoʻī, pono e paʻi ʻia 33 GB o nā faila wikiō. Hiki ke hoʻopaʻa inoa iā lākou i kahi kiʻi Docker, akā paʻakikī a paʻakikī hoʻi. ʻO ka hoʻololi ʻana i hoʻokahi laina o ka hoʻonohonoho ʻana e koi hou i ka 33 GB o ka ʻikepili.
I koʻu hoʻohana ʻana iā ClipBucket ua hoʻoholo wau i ka pilikia me gcsfuse - he mea pono e hiki ai i ka ʻōnaehana hana ke hoʻouka i nā papa kuhikuhi i Google Cloud cloud storage ma ke ʻano he ala maʻamau i ka ʻōnaehana faila. Hoʻokipa au i nā faila wikiō ma Google Cloud a hoʻohana i ka gcsfuse e hōʻike iā lākou ma ClipBucket e like me nā faila kūloko.
ʻO ka ʻokoʻa, ua holo ʻo ClipBucket i kahi mīkini virtual maoli, ʻoiai ʻo MediaGoblin i holo i kahi pahu Docker. Ma ʻaneʻi, ʻoi aku ka paʻakikī o ka hoʻouka ʻana i nā faila mai ka waihona kapuaʻi. Ua hoʻohana au i mau hola he nui e hoʻoponopono i nā pilikia āpau a kākau wau e pili ana moʻomanaʻo moʻomanaʻo holoʻokoʻa.
ʻO ka hoʻohui mua ʻana o MediaGoblin me Google Cloud storage, kaʻu e kamaʻilio nei i ʻōlelo ʻia ma 2018
Ma hope o kekahi mau pule o ka hoʻoponopono ʻana i nā ʻāpana āpau, ua hana nā mea a pau. Me ka ʻole o ka hoʻololi ʻana i ke code a MediaGoblin, ua hoʻopunipuni au iā ia i ka heluhelu ʻana a me ke kākau ʻana i nā faila media i Google cloud storage.
ʻO ka pilikia wale nō, ua lohi ʻo MediaGoblin. He 20 kekona piha no ka hoʻouka ʻana i nā kiʻi liʻiliʻi wikiō ma ka ʻaoʻao home. Inā ʻoe e lele i mua i ka nānā ʻana i ke wikiō, hoʻomaha ʻo MediaGoblin no 10 kekona pau ʻole ma mua o ka hoʻomaka ʻana i ka pāʻani.
ʻO ka pilikia nui ʻo ia ka lawe ʻana o nā wikiō a me nā kiʻi i kahi ala lōʻihi a puni i ka mea hoʻohana. Pono lākou e hele mai Google cloud storage ma o gcsfuse i MediaGoblin, Nginx - a laila wale nō lākou i hele ai i ka polokalamu kele pūnaewele. ʻO ka bottleneck nui ka gcsfuse, ʻaʻole i hoʻopaʻa ʻia no ka wikiwiki. Hoʻomaopopo nā mea hoʻomohala e pili ana i nā lohi nui i ka hana o ka pono ma ka ʻaoʻao nui o ka papahana:
ʻO ke kūpono, pono e kiʻi pololei ka polokalamu kele i nā faila mai Google Cloud, me ka ʻalo ʻana i nā papa waena. Pehea e hiki ai iā ʻoe ke hana i kēia me ka luʻu ʻole i ka codebase MediaGoblin a i ʻole ka hoʻohui ʻana i ka loiloi hoʻohui Google Cloud paʻakikī?
Hoʻopunipuni sub_filter ma nginx
ʻO ka pōmaikaʻi, ua loaʻa iaʻu kahi hopena maʻalahi, ʻoiai i kahi liʻiliʻi ʻinoʻino. Ua hoʻohui au i ka hoʻonohonoho default.conf ma Nginx he kānana:
I kaʻu hoʻonohonoho, ua hana ʻo Nginx ma ke ʻano he koho ma waena o MediaGoblin a me ka mea hoʻohana hope. ʻO ke kuhikuhi ma luna nei e kuhikuhi iā Nginx e ʻimi a hoʻololi i nā pane HTML MediaGoblin āpau ma mua o ka lawelawe ʻana iā lākou i ka mea hoʻohana hope. Hoʻololi ʻo Nginx i nā ala pili āpau i nā faila MediaGoblin me nā URL mai Google cloud storage.
No ka laʻana, hana ʻo MediaGoblin i HTML e like me kēia:
I kēia manawa ua holo nā mea a pau e like me ka mea i manaʻo ʻia:
Hoʻopuka hou ʻo Nginx i nā pane mai MediaGoblin i hiki i nā mea kūʻai ke noi pololei i nā faila media mai Google cloud storage
ʻO ka mea maikaʻi loa e pili ana i kaʻu hoʻonā, ʻaʻole ia e koi i nā loli i ka code MediaGoblin. Hoʻohui maikaʻi ʻia nā kuhikuhi ʻelua laina a Nginx iā MediaGoblin a me Google Cloud, ʻoiai ʻaʻole ʻike kēia mau lawelawe i kekahi i kekahi.
i hoʻopuka: Pono kēia hoʻonā e hiki ke heluhelu ʻia nā faila ma Google cloud storage e nā mea a pau. No ka hōʻemi ʻana i ka pilikia o ke komo ʻana me ka ʻae ʻole, hoʻohana wau i kahi inoa bākeke lōʻihi (e.g. mediagoblin-39dpduhfz1wstbprmyk5ak29) a hōʻoia ʻaʻole ʻae ke kulekele hoʻokele komo o ka bākeke i nā mea hoʻohana ʻole e hōʻike i nā mea o ka papa kuhikuhi.
Huahana hope
I kēia manawa ua loaʻa iaʻu kahi hopena hana piha. Ua holo ʻoliʻoli ʻo MediaGoblin i kāna pahu ponoʻī ma ka paepae kapuaʻi o Google, no laila ʻaʻole pono e hoʻopili ʻia a hoʻonui pinepine ʻia. ʻO nā mea a pau i loko o kaʻu kaʻina hana i hana ʻia a hiki ke hana hou ʻia, e ʻae ana i nā hoʻoponopono maʻalahi a i ʻole nā rollbacks i nā mana o mua.
Ua makemake nui koʻu ʻohana i ka maʻalahi o ka nānā ʻana i nā wikiō. Me ke kōkua o ka hack Nginx i hōʻike ʻia ma luna nei, ua wikiwiki ka hana ʻana me nā wikiō e like me YouTube.
Penei ke ano o ka pale nana.
Nā maʻiʻo o ka waihona wikiō ʻohana ma ka tag "Best"
Ke kaomi ʻana i ka liʻiliʻi liʻiliʻi e lawe mai i kahi pale e like me kēia:
Ke nānā ʻana i hoʻokahi kiʻi ma kahi kikowaena media
Ma hope o nā makahiki o ka hana, he mea maikaʻi loa ka hāʻawi ʻana i nā lālā o ka ʻohana i ka manawa e nānā i kā mākou wikiō ma ka hoʻohana like ʻana me YouTube-like interface aʻu i makemake mua ai.
Bonus: E ho'ēmi i nā kumukūʻai ma lalo o $ 1 i kēlā me kēia mahina
ʻAʻole ʻoe e nānā pinepine i nā wikiō home, i kēlā me kēia mahina wale nō. Ua hui pū koʻu ʻohana ma kahi o 20 mau hola o ke kaʻa i hoʻokahi makahiki, akā e holo ana ke kikowaena 15/99,7. Ua uku au i $XNUMX i kēlā me kēia mahina no kahi kikowaena i emi iho ma XNUMX% o ka manawa.
I ka hopena o 2018, ua hoʻokuʻu ʻo Google i ka huahana Holo Kapua. Ke holo wikiwiki nei ka hiʻohiʻona pepehi i nā pahu Docker i hiki i ka noi ke pane i nā noi HTTP. ʻO ia hoʻi, hiki i ke kikowaena ke noho ma ke ʻano standby a hoʻomaka wale i ka wā e makemake ai kekahi e komo. No ka hoʻohana pinepine ʻana i nā noi e like me kaʻu, ua emi ke kumukūʻai mai $15 i kēlā me kēia mahina a i kekahi mau keneta o ka makahiki.
No nā kumu ʻaʻole wau e hoʻomanaʻo hou, ʻaʻole i hana ʻo Cloud Run me kaʻu kiʻi MediaGoblin. Akā me ka hiki ʻana mai o Cloud Run ua hoʻomanaʻo wau i kēlā ʻO Heroku hāʻawi i ka lawelawe like no ka manuahi, a ʻoi aku ka maikaʻi o kā lākou mau mea hana ma mua o kā Google.
Me kahi kikowaena noi manuahi, ʻo ke kumukūʻai wale nō ka mālama ʻikepili. He 2,3 keneta/GB ke kumu kūʻai maʻamau a Google. Lawe ka waihona wikiō i 33 GB, no laila ke uku wale nei au i 77 keneta i ka mahina.
He $0,77 wale nō ke kumukūʻai o kēia hoʻonā
Manaʻo kōkua no ka poʻe hoʻolālā e hoʻāʻo
ʻIke loa ua lōʻihi ka lōʻihi o ke kaʻina hana. Akā, manaʻolana wau e kōkua kēia ʻatikala iā ʻoe e mālama i ka 80-90% o ka hoʻoikaika ʻana i ka helu helu a me ka hoʻolaha ʻana i kāu wikiō home. Ma kahi ʻāpana ʻokoʻa hiki iā ʻoe ke loaʻa kuhikuhi ʻanuʻu aʻe i loko o ke kaʻina hana, akā eia kekahi mau ʻōlelo aʻoaʻo maʻamau:
I ka wā o ka helu helu a me ka hoʻoponopono ʻana, mālama i nā metadata e like me ka hiki.
Hoʻopaʻa pinepine ʻia ka ʻike koʻikoʻi ma nā lepili cassette wikiō.
E mālama pono i ke kiʻi i paʻi ʻia mai ka lipine hea a ma ke ʻano he aha.
Kākau i lalo i ka lā o ka pana ʻana, i ʻike ʻia ma ke wikiō.
E noʻonoʻo e uku no nā lawelawe hoʻopaʻa inoa ʻoihana.
E hana ʻoe nui he paʻakikī a he pipiʻi ke hoʻohālikelike iā lākou ma ke ʻano o ka maikaʻi o ka digitization.
Akā e haʻalele i kahi hui i kapa ʻia ʻo EverPresent (e leka mai iaʻu inā makemake ʻoe i nā kikoʻī).
Inā ʻoe e hoʻopili iā ʻoe iho, kūʻai i kahi HDD.
He 100-200 MB ka wikiō wehewehe maʻamau i hoʻopaʻa ʻole ʻia.
E hoʻopaʻa i ka metadata ma kekahi ʻano maʻamau i pili ʻole i kahi noi kikoʻī.
Nā wehewehe kiʻi, nā code manawa, nā lā, etc.
Inā mālama ʻoe i ka metadata ma kahi ʻano kikoʻī noiʻi (a ʻoi aku ka maikaʻi, mai mālama ʻoe iā ia), ʻaʻole hiki iā ʻoe ke hana hou i ka hana inā hoʻoholo ʻoe e hoʻohana i kahi hopena ʻē aʻe.
Ke hoʻoponopono nei ʻoe, ʻike ʻoe i ka nui o nā metadata pono ma ke wikiō. E lilo ana iā ʻoe inā ʻaʻole ʻoe e mālama iā lākou.
He aha ka hana ma ke wikiō?
ʻO wai ka mea i kākau inoa ma laila?
I ka manawa hea i hoʻopaʻa ʻia ai kēia?
E kaha i kāu mau wikiō punahele.
ʻO kaʻoiaʻiʻo, ʻoluʻolu loa ka hapa nui o nā wikiō home.
Hoʻopili wau i ka inoa "maikaʻi loa" i kaʻu mau kiʻi punahele a wehe iā lākou ke makemake au e nānā i nā wikiō ʻakaʻaka.
E hoʻonohonoho i kahi hoʻonā piha i ka hikiwawe i hele pololei ke kaʻina hana mai ka hoʻomaka a i ka pau ʻana.
Ua hoʻāʻo au e hoʻolima mua i nā lipine a pau, a laila hoʻoponopono i nā lipine a pau, etc.
Makemake wau i hoʻomaka me hoʻokahi lipine a hana i nā hana a pau me ia. A laila e maopopo iaʻu nā hoʻoholo a me nā pae e pili ana i ka hopena hope.
E hoʻomau i ka hoʻopaʻa ʻana i ka liʻiliʻi.
I kēlā me kēia manawa āu e hoʻoponopono ai a hoʻopaʻa hou paha i kahi clip, hoʻemi ʻoe i kona maikaʻi.
E hoʻokaʻawale i kāu kiʻi kiʻi i ka maikaʻi loa, a laila e hoʻololi i kēlā me kēia kiʻi i hoʻokahi manawa i loko o ke ʻano i hana maoli ʻia e nā mea nānā.
E hoʻohana i ka hopena maʻalahi loa e hoʻopuka i nā kiʻi wikiō.
I ka nānā hou ʻana, ʻike ʻia ʻo MediaGoblin he mea paʻakikī loa no ke ʻano maʻalahi o ka hana ʻana i nā ʻaoʻao pūnaewele me kahi hoʻonohonoho paʻa o nā faila wikiō.
Inā wau e hoʻomaka hou ana, e hoʻohana wau i kahi mea hoʻoheheʻe pūnaewele static e like me Hugo, ʻO Iekyll ai ole ia, ʻAhaʻi.
Hana i ka hoʻokomo.
ʻO ka hoʻoponopono wikiō he ala leʻaleʻa e hoʻohui i nā manawa maikaʻi loa mai nā wikiō he nui.
ʻO ka mea nui i ka hoʻoponopono ʻana i ke mele. Eia kekahi laʻana, he mea kupaianaha ke kumuhana Hau lohi mai The National, ʻo kēia kaʻu ʻike pilikino.