Ustream 配信ステータスを確認する

ツールを作った。

GitHub - utahta/ustream-live-status: Get live status of channel on Ustream

コマンドを叩くと Ustream API からチャンネルの配信ステータスを取ってくる。

$ go get github.com/utahta/ustream-live-status/cmd/uststat
... 略 ...
$ uststat -name momoclotv
offline

live が返ってきたら配信中で、 offline が返ってきたらオフライン。

Go言語から使うことも出来る。

import "github.com/utahta/ustream-live-status"

c, err := uststat.New()

flag, err := c.IsLive("iss-hdev-payload") // http://www.ustream.tv/channel/iss-hdev-payload を確認

前に Ruby で似たようなもの作ったけど、Go でも作ってみた。

Go + anaconda でツイッターにビデオをアップロード

メモ。

github.com/ChimeraCoder/anaconda は、media_category に現時点では対応していない。
仮にこのパラメーターを指定すると、アップロードが非同期になる。docs/upload-finalize

append は1つ5MBに制限されているので、大きなビデオファイルを取り扱うときは5MB毎に分割してあげる必要がある。 docs/upload-append

// e.g.
mediaMaxLen := 5 * 1024 * 1024 // 5MB
segment := 0
for i := 0; i < totalBytes; i += mediaMaxLen {
    var mediaData string
    if i+mediaMaxLen < totalBytes {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i : i+mediaMaxLen])
    } else {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i:])
    }
    if err = api.UploadVideoAppend(media.MediaIDString, segment, mediaData); err != nil {
        break
    }
    segment += 1
}
if err != nil {
    log.Fatal("Failed to UploadVideoAppend")
}

サンプル

Google OAuth2 トークンを取得する with Go

GAE/Go をちょいちょい触っている。
その中の Pull queue を試そうとしたとき、OAuth2 のトークンが必要になったので取得したメモ。

手順

[utahta@mbp google-oauth2]% go run oauth2_token.go
Input ClientID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
Input Secret: XXXX-XXXXXXXXXXXXXXXXXXXXXX
Input Scopes: https://www.googleapis.com/auth/taskqueue,https://www.googleapis.com/auth/taskqueue.consumer
Start Execute API
ブラウザで以下のURLにアクセスし、認証して下さい。
https://accounts.google.com/o/oauth2/authxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Input auth code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
token is saved to token.json
[utahta@mbp google-oauth2]% cat token.json
{"access_token":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","token_type":"Bearer","refresh_token":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","expiry":"2016-08-16T21:46:52.012038137+09:00"}

ソースコード

トークンめも

リフレッシュトークンは 1 クライアント 25 個まで。それ以上は古いものから消えていく。

Using OAuth 2.0 to Access Google APIs  |  Google Identity Platform  |  Google Developers

参考

GolangでGoogle Driveにアクセスするためのトークンを取得 - Qiita
OAuth2.0によるGoogle+ APIのアクセス方法
Google APIのAccess Tokenをお手軽に取得する - Qiita