2013年05月17日

SoundCloud において CC で曲を公開されているおススメの Artist (Label) さん

同じアーティストさんでも曲ごとにライセンスが違うので、個別にチェックして使用してください

Rameses B


CloZee (商用不可のものも多い)


breakzlinkz


killthenoise
posted by k_yama at 16:57 | Comment(0) | 備忘録

SoundCloud API を使って streaming 再生をする

基本的には以下の二つのページを参考のこと。
http://developers.soundcloud.com/docs/api/sdks#javascript
http://developers.soundcloud.com/docs


1.クライアントID等を設定して(クライアントIDの取得には、ユーザー登録、アプリの登録が必要 リンク ) SoundCloud にアクセスする。
2.SC.stream( トラックのパス , コールバック関数 ) を呼び出し、コールバック関数から渡された Sound Object の play() を呼び出す。


注意点
・セキュリティの制限からか、ローカルの HTML から呼び出すことはできない。テストするときは自前で Web サーバーを用意しなければならない。
・SoundCloud の API の使用にはいろいろ制限があるのでチェックしておく

例 (赤字の部分は個人で変更の必要があります。)
<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js"></script>

<script type="application/x-javascript">
var trackList =[
//パスは 曲の個別ページの Share ボタンの Wiget コードなどから取得できる。
"/tracks/23445579",
"/tracks/55141652",
"/tracks/24035137",
"/tracks/56710548",
"/tracks/71417118",
"/tracks/22491458"
];
function init(){
SC.initialize({
client_id: "Client_ID",
redirect_uri: "http://example.com/callback.html"});
playNext();
};

function setTrackInfo(trackurl){//トラックの情報を取得する。CC ライセンスでは、作者名表示が必要な場合が多いため。
//また、作者がライセンスを変更した時のために license をチェックしてプレイするかどうかを決めるべき。
SC.get(trackurl, {limit: 1}, function(t){
console.log(t.title);
console.log(t.permalink_url);
console.log(t.license);
console.log(t.artwork_url);
console.log(t.user.username);
console.log(t.user.permalink_url);
document.getElementById("trackinfodiv").innerHTML = "Music : <a href='"+t.permalink_url+"'>" + t.title+" by "+t.user.username+"</a>";
});
}

function playNext(){
var nextSound = trackList.shift();
playSound(nextSound);
setTrackInfo(nextSound);

};
function playSound(trackurl){
SC.stream(trackurl,function(sound){//ここは SoundManager2 の領分なので、SoundManager2 の API を参照のこと。
sound.play({
volume:50,
onsuspend: function() {
playNext();
},
onload: function() {
if(sound.readyState == 2){//曲が消えていた場合は 2 が返ってくるので次の曲に移る。
playNext();
}
},
onfinish: function() {//曲が終わったら次の曲を流す。
playNext();
}
});

});
};
</script>

</head>
<body onload="init()" style="overflow:hidden;">
<a href="https://soundcloud.com/"><img alt="soundcloud logo icon"></a>API の使用には SoundCloud のロゴとリンクが必要なのでダウンロードして貼り付けること。
<div id="trackinfodiv">
</div>
</body>
</html>


CreativeCommons で曲を公開してくれているアーティストさんのうち個人的にいいね!と思った人達をまとめています。>> http://ktz.sblo.jp/article/67841835.html
posted by k_yama at 16:49 | Comment(0) | 備忘録

2013年05月07日

Net::Twitter::Lite で search を使う (API1.1)

このサイト様

http://shoheik.hatenablog.com/entry/2013/01/13/133830

を参考に書いていたのだけれども、Perl のディストリが違うのか、なんだかうまくいかなかったので。
環境は windows 7 Ultimate, Active perl v 5.14.2 です。


アカウントの設定や Key の取得、パッケージのインストールは他サイト様を参照してください(ヽ´ω`)
具体的には

use Net::Twitter::Lite::WithAPIv1_1;


と、パッケージを指定しなければならないみたい。
1.1が主流になったら変更されそうですね。


サンプルコード

use utf8;
use strict;
use warnings;
use Net::Twitter::Lite::WithAPIv1_1;
use URI::Escape;

my $consumer_key = '';
my $consumer_secret = '';
my $token = '';
my $token_secret = '';


my $nt = Net::Twitter::Lite->new(
consumer_key => $consumer_key,
consumer_secret => $consumer_secret,
apiurl => 'https://api.twitter.com/1.1',
legacy_lists_api => 0
);

$nt->access_token($token);
$nt->access_token_secret($token_secret);
my $res;
my $targetquery = "http://www.yahoo.co.jp";
$res = $nt->search({q=>$targetquery,count => 100, lang => 'ja'});

# print response
my %hs = %{$res};
foreach my $kk(keys %hs){
print $kk."\t".$hs{$kk}."\n";
}

my @search_res = @{$hs{'results'}};
foreach my $rr(@search_res){
print $rr."\n";
foreach my $kkk(keys %{$rr}){
if(defined ${$rr}{$kkk}){
print $kkk."\t".${$rr}{$kkk}."\n";
}
}
}


できた?
タグ:Twitter Perl
posted by k_yama at 14:22 | Comment(0) | 備忘録