Wednesday, July 30, 2014

Raspberry Pi - Dropbox-Uploader

今日はRaspberry PiでDropboxにアクセスできるようにしていく。

Raspberry x Dropbox

Dropbox-Uploader。既に何人かの方が言及している通り、DropboxはARMで動くRaspberryではビルドできない。(参考

そんな訳で代替案。今回使うDropbox-UploaderはBASHで実装されていてcurlさえあれば動くらしい。Dropboxがサードアプリ向けのインターフェース(REST?)を提供していて、それをbash - curlコマンドで叩くスクリプトって事なのかな。

インストール

早速インストールしていく。OSXからraspberry piにsshログインして作業。

pi@raspberrypi ~ $ mkdir projects
pi@raspberrypi ~ $ cd projects/
pi@raspberrypi ~/projects $ git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
Cloning into 'Dropbox-Uploader'...
remote: Counting objects: 633, done.
remote: Total 633 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (633/633), 185.43 KiB | 83 KiB/s, done.
Resolving deltas: 100% (315/315), done.
pi@raspberrypi ~/projects $ cd Dropbox-Uploader/
pi@raspberrypi ~/projects/Dropbox-Uploader $ ./dropbox_uploader.sh 

 This is the first time you run this script.

 1) Open the following URL in your Browser, and log in using your account: https://www2.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Select "Files and datastores"
 4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 5) Enter the "App Name" that you prefer (e.g. MyUploader290472397515860)

 Now, click on the "Create App" button.

 When your new App is successfully created, please type the
 App Key, App Secret and the Permission type shown in the confirmation page:

 # App key: XXXXXXXXXXXX
 # App secret: XXXXXXXXXXXX
 # Permission type, App folder or Full Dropbox [a/f]: X

 > App key is XXXXXXXXXXXX, App secret is XXXXXXXXXXXX and Access level is XXX Dropbox. Looks ok? [y/n]: y

 > Token request... OK

 Please open the following URL in your browser, and allow Dropbox Uploader
 to access your DropBox folder:

 --> https://www2.dropbox.com/1/oauth/authorize?oauth_token=XXXXXXXXXX

Press enter when done...

 > Access Token request... OK

 Setup completed!

./dropbox_uploader.shでは、ブラウザ(Dropbox開発者向けサイト)とコンソールを交互に行き来して設定を行う。指示通りにやっていけばまず迷わない。OAuth認証をやってるみたい。

インストール後、どこからでもdropbox_uploaderを実行できるようパスを通す。

pi@raspberrypi ~/dropbox/Voice $ vim /home/pi/.profile 
...
PATH="$PATH:$HOME/projects/Dropbox-Uploader"
pi@raspberrypi ~/dropbox/Voice $ source ~/.profile

さて、ここでDropboxの中身を覗いてみる。

pi@raspberrypi ~/dropbox/Voice $ dropbox_uploader.sh list
 > Listing "/"... DONE
 [D] 0      Music
 [D] 0      Voice
 [D] 0      カメラアップロード
 [D] 0      スクリーンショット
 [F] 223753 はじめに.pdf
 [D] 0      素材

リストアップできたぞ。続いてVoiceディレクトリだけをダウンロードしてみる。

pi@raspberrypi ~/dropbox $ dropbox_uploader.sh download /Voice ./
 > Downloading "/Voice" to "/home/pi/dropbox/Voice"... 
 > Creating local directory "/home/pi/dropbox/Voice"... DONE
 > Downloading "/Voice/makimaki-icoming.txt" to "/home/pi/dropbox/Voice/makimaki-icoming.txt"... DONE
 > Downloading "/Voice/makimaki-icoming.wav" to "/home/pi/dropbox/Voice/makimaki-icoming.wav"... DONE
 > Downloading "/Voice/yuakaary-invading.txt" to "/home/pi/dropbox/Voice/yuakaary-invading.txt"... DONE
 > Downloading "/Voice/yuakaary-invading.wav" to "/home/pi/dropbox/Voice/yuakaary-invading.wav"... DONE
 > Downloading "/Voice/zun-invading.txt" to "/home/pi/dropbox/Voice/zun-invading.txt"... DONE
 > Downloading "/Voice/zun-invading.wav" to "/home/pi/dropbox/Voice/zun-invading.wav"... DONE

ダウンロード成功。Windowsでボイスロイド3人娘のwavを作ってDropboxに上げ、それをDropbox-Uploaderでダウンロード(OSX ssh経由)という回りくどいことをしてみた。

余談

aplayしたらRaspberry Pi上でしゃべってくれたよ。デフォルトはHDMIに音声出力優先。将来的にスピーカに繋いだりする場合はアナログ出力優先とかにするのかな? (参考…ちょっと情報は古いね。もうDVI出力は無いし。)

pi@raspberrypi ~/dropbox $ aplay Voice/yuakaary-invading.wav 
Playing WAVE 'Voice/yuakaary-invading.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

音声出力の優先設定。

#アナログ出力を優先する場合
$ amixer cset numid=3 1
#HDMI を優先する場合
$ amixer cset numid=3 2

Written with StackEdit.

No comments:

Post a Comment