開源並嵌入CC授權選項的多媒體分享平台 - MediaGoblin

王家薰 / 文

近年在數位化浪潮下,使用者已經習慣透過數位相簿系統,來儲存與分類自己的影音和照片,而聯網分享更是線上建立這些相簿的主要目的。而最普遍的這類服務,一般都會聯想到用 YouTube、Flickr 等受大眾喜愛的多媒體服務平台。但,畢竟這些平台是基於商業利益來提供服務,在其營運利益的思維下,迭有使用上限制的地方,例如容量上的限制,或是圖片授權上選項的限制,也就是說,這些平台的使用模式,沒有辦法讓使用者有太多客製化調整的空間。因此,在自由開源軟體社群中,漸漸有一股聲音,討論是否有其他的多媒體分享軟體,能提供給想要以創用CC 授權條款 (Creative Commons License),或其他公眾授權條款釋出素材的組織或個人來使用。因應這樣的需求,台灣創用CC 計畫評比分析了相關套件,最後選擇了以開源授權方式進行協作的多媒體分享平台-Mediagoblin 為基準,並與其核心開發團隊合作調校了一些功能,希望能幫助更多人,能善用這套軟體,來釋出創用CC 或歸於公眾領域 (Public Domain) 的素材,並進一步活化公眾共享的創作世界。

什麼是 MediaGoblin ?

MediaGoblin 是一套可由使用者自行架設 (self-hosting) 的多媒體分享平台。您可以把它想像成是分散式的 Flickr,併入 YouTube 與 Sound Cloud 的功能。簡言之,使用者可以自行架設專案平台之後,於其上存放照片、影像、音訊、文件,甚至是 3D 設計的 stl 檔案格式,此種程度的全方位多媒體支援,與當前市售的其他軟體專案相較,可說頗為少見,並且,由於 MediaGoblin 為開放源碼軟體 (Free and Open Source Software),使用 GNU AGPL-3.0 授權釋出,程式語言方面則是採用 Python 來撰寫,故使用者除了可以很輕易的取得它的程式源碼 (Source Code) 之外,若本身具有程式撰寫能力的話,亦可隨意的調整它的功能,客製出各項需求的模組!而對一般單純使用者來說,在程式應用上若有任何的問題,亦可於 MediaGoblin 的官方網站找到詳細的支援指南 (MediaGoblin wiki: https://wiki.mediagoblin.org/Main_Page)。可說,這樣豐富的應用資源,已經能夠滿足任何想要永續經營多媒體分享平台的必備條件,故以下,筆者將簡要的為讀者介紹,推薦使用 MediaGoblin 做為素材 (Material) 釋出平台的理由,以及如何簡單的將它架設起來進行運用!

為何選擇 MediaGoblin 呢?

  • 該專案隸屬於 GNU Project 群體下,這表示它是一個具有發展潛質的開源軟體專案,不易發生專案日後無人維護的狀況。
  • 由於其開放源碼之故,使用者可以查看軟體本身的程式源碼,只要具有該領域的軟體撰寫能力,後續便可以依己意自由地修改及客製化想要的功能。
  • 對平台上的素材,提供完整的創用CC 授權及其他公眾授權方式的設置選項。
  • 建置後設資料 (metadata) 的方式,與其他軟體相較頗為簡便與容易。
  • 支援非常多的多媒體及文件檔案格式,如下表所列。
Image 'png', 'gif', 'jpg', 'jpeg', 'tiff'
Video 'mp4', 'mov', 'webm', 'avi', '3gp', '3gpp', 'mkv', 'ogv', 'm4v'
ASCII 'txt', 'asc', ‘info'
Other PDF、Stl (3D model)、Audio

那麼,若是使用者想要自行架設 MediaGoblin 的話,應該如何進行呢?為了協助大家讓安裝過程更簡易可親,降低自行架設及後續客製化的門檻,台灣創用CC 計畫在去年度 (2013) 開始,洽詢了 MediaGoblin 團隊的核心開發者,在共同討論與共工努力之後,協力改善了該專案的一些功能,包括:

  • 懶人安裝包 (easy install):透過安裝互動介面問與答的方式,讓安裝過程更簡便。
  • 批次上傳 (batch upload):讓 MediaGoblin 能更穩定地批次上傳多筆圖檔,並包含圖檔的 Metadata 等內容描述,也可以在一個步驟的操作裡被更新。
  • 簡易首頁設計 (feature management):簡易的首頁設置,使用者可指定幾張上傳的圖片,作為首頁圖示,以達到首頁展示上更佳的視覺化效果。

接下來就讓我們來進行如何安裝架設 MediaGoblin 吧! 本期專文先介紹安裝的部份,至於批次上權及簡易首頁設計的部份,筆者會在另文介紹。

如何架設 MediaGoblin?

以下安裝展示,是在作業系統 Ubuntu Linux 12.04 下進行示範,故透過終端機視窗下輸入指令的方式來進行。您可以從本文所附的安裝檔,直接下載已客製化過的檔案進行安裝,或亦可從 MediaGoblin 官方網站提供的下載連結,來得到安裝檔案。

###

Step 1:將 mediagoblin_easy_install.tar.gz 解壓縮之後進入資料夾。


tar zxvf mediagoblin_easy_install.tar.gz  
cd mediagoblin_easy_install-0.7/
於此資料夾目錄下輸入下列指令,以執行安裝檔:

sudo ./run_easy_install  

Step 2:此步驟會先問您,需不需要使用 nginx (web server) 來架設服務。


How would you like to serve your website?
  0    Locally, (Choose this if you just want to view the website yourself, such as for testing or development)
  1    Using nginx (Choose this if you want your website to be accessible to users outside your network)
> 1

若您要架設的 MediaGoblin 平台要提供對外服務,請選擇 nginx,輸入 1,若只是本機端自行建置測試使用,則選擇0。
而本範例選擇1執行。

Step 3:接著問您的電腦系統是屬於下面哪一類。


What linux distribution are you using?
  0    A Debian-Based Distribution (ie. Ubuntu, LinuxMint, Debian)
  1    A Redhat-Based Distribution (ie. Fedora, CentOS)
  2    I'm using an OS other than linux
> 0
此處的範例為 Ubuntu 12.04,故選擇 0

Step 4:如果您所架設的服務是要對外開放,請在此輸入您要使用的網域名稱,若是在近端機器進行測試,則直接輸入 localhost。


What will you use as the domain name of the website you are setting up? For
instance you may enter:
> mediagoblin.thisisanexample.org. 

Please enter the domain name and the suffix (.com, .org, etc) but leave out the "www." and the "http://"
>yourdomainname.tw 

Step 5:這部分是要問您,想把 MediaGoblin 安裝在哪一個資料夾。


In what directory will you place your mediagoblin server?
Examples: /srv/ or /home//
  0    /srv/
  1    /home/mediagoblin/
  2    I want to choose a different directory location
> 1
若您輸入 2 選擇自設路徑的話,它會問:

Where will you place this directory?  
此時再將您想安裝的絕對路徑貼上去。
在此範例中,筆者以安裝至家目錄,也就是選擇1。

Step 6:接著安裝程式,會問您想用哪一類型的資料庫系統,來輔助 MediaGoblin 的運作。

如果您預計會許多的使用者,共同使用存取這個多媒體平台,那請選擇 1 - 安裝 PostGreSQL 這套以 BSD-like 授權方式提供的開源資料庫;反之,若是輕簡並不會有太多使用者的平台,則可選擇 0 - 安裝 SQLite 這套開源,並將著作權貢獻給公眾領域的輕簡資料庫程式。

We're deciding what type of database to use. Will your server be a small server or will it be often used by many users?
  0    A Small Server that recieves little traffic (This will install SQLite3 as
       your database management system)
  1    Large or Medium server often viewed by many visitors (This will install PostGreSQL as your database management system)
> 1
接下來會安裝你所選擇的資料庫系統,過程中會有一些系統詢問是否要確定安裝的問題,請直接回答 Y

...
After this operation, 63.2 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Step 7:前面幾個問題都輸入完之後,便會開始進入安裝階段,若一切資料皆輸入正確的話,應會出現下列畫面。


...  
Cleaning up... -> Initializing main mediagoblin tables... done. + Laying foundations for Privilege table -> Initializing plugin "mediagoblin.media_types.image"... done. Database set up successfully!

Step 8:開啟啟動服務

完成上列的步驟之後,在您選擇安裝的路徑下,會多出一個以您輸入域名為檔名的資料夾,在此範例之中筆者在Step5時,選擇使用1家目錄的部份,故直接以 cd 指令進入該資料夾。

cd  /home/mediagoblin/yourdomainname.tw/

進入資料夾後,若是在一開始的 Step 2 設定步驟,選擇使用本機端 (Locally),沒有指定要用 nginx,則輸入:


sudo -u mediagoblin ./lazyserver.sh  

而若是在 Step2 選擇1使用 nginx的話,則輸入下列兩行指令:啟用 nginx 及跑 nginx Server。


sudo /etc/init.d/nginx restart
sudo -u mediagoblin ./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543

一切順利的話,應該會顯示如下的資訊: (以下為使用 nginx 的啟動訊息)


Using paster config: paste.ini  
Using ./bin/paster
+ export CELERY_ALWAYS_EAGER=true
+ ./bin/paster serve paste.ini --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 --reload
Starting subprocess with file monitor
2014-07-29 14:43:59,467 INFO [mediagoblin.app] GNU MediaGoblin 0.6.2.dev main server starting
2014-07-29 14:43:59,540 INFO [mediagoblin.app] Setting up plugins.
2014-07-29 14:43:59,540 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.geolocation
2014-07-29 14:43:59,540 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.basic_auth
2014-07-29 14:43:59,540 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.media_types.image
2014-07-29 14:43:59,683 INFO [mediagoblin.init.celery] Setting celery configuration from object "mediagoblin.init.celery.dummy_settings_module"
Starting server in PID 4439.

Step 9:開啟瀏覽器,準備操作 Mediagoblin。

在這個步驟,請打開任何一款瀏覽器軟體,並在網址列輸入您在安裝過程中個別指定的域名,在本範例為 yourdomainname.tw ,則您所自行架設的 MediaGoblin 系統便會顯示出來了。

而假若您在 Step 2 的步驟是選擇使用本機端 (Locally) ,本機端的測試使用的話,則在 Step 8 的成功訊息最底下會顯示本機端的路徑(URL) 。通常若未特別改設定的話,為 http://127.0.0.1:6543 ,直接複制此路徑至瀏覽器即可。

###

以上,就是使用 MediaGoblin easy install 的安裝流程,此安裝完後的 Mediagoblin 具基本的圖片及地理位置定位 (Geolocation) 的功能,若讀者想要再加入其他的功能包含影音、3D模組等,需另外再設定,筆者後續會在另文介紹。由於在安裝過程中,依照不同的作業系統環境會有些許的差異,若讀者安裝過程不是這麼順利,歡迎寄信至本文筆者的信箱:allywang AT iis.sinica.edu.tw,我們共同來討論研究。。

整體來說,當前的 MediaGoblin 的架設與運用,對於一般完全不懂 Linux 技術詞彙及架設步驟的使用者來說,確實有些門檻。但是,若為一般組織,或是有一點開源軟體技術背景的使用者,則 MediaGoblin 所能帶來的支援功能,實在是相當吸引人!故若使用者不想要受限於,完全無客製可能性的商用多媒體平台的話,那麼 MediaGoblin 正是一個趁手可用的代換選項,對於一般使用者來說,其可以儲放個人家庭所有的影音及照片,並能很方便的分享給家庭成員;而對於個別組織來說,甚至是文件,都可以利用它來進行內部或外部分享。

此外,因應今年的「公眾領域之實務與藏庫」計畫 ( Practices and Depositories for The Public Domain, 簡稱 PD4PD ) 成果釋出,台灣創用CC 計畫有幸參與近期與 MediaGoblin 專案的功能協作,我們也架設了一個以 MediaGoblin 為基礎的公眾領域釋出平台 - http://publicdomain.tw 。目前已放置日據時代的台灣堡圖,我們也誠摯的歡迎大家若擁有想要釋出的公眾領域素材, 亦可與我們聯繫,放置於這個平台上。

對於一個自由軟體來說,需要有更多社群開發者的力量投入,未來發展才能平步青雲,若讀者對於這個專案有興趣的話,歡迎自主加入共工的行列,以讓這樣富延展性,並給予使用者最大自主權限的開源專案,能一步一步發展出更多更好更完善的功能!

若讀者想要了解或支持 MediaGoblin 專案的話,可參考以下網址:
  • MediaGoblin 官方網站: http://mediagoblin.org/
  • 贊助 MediaGoblin :http://mediagoblin.org/pages/campaign.html
  • LINUX Magazine: MediaGoblin: Saving the Internet Through Federation
  • (GNU MediaGoblin Post Card (CC-BY-SA 3.0 Unported licensed)