Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

CreativeCommonsの素材について(Google編)

素材収集の際にそれがCreativeCommonsかどうか簡単に調べられるのか気になったので調べてみた。

google画像検索でライセンスごとに絞り込む

Google検索APIにrestAPIがあり、JSONで結果を返してくれる。詳細はここ
公式のドキュメントにはないが、画像検索もあるようだ。


RestAPIはドキュメントにはないが通常の検索に使うクエリーを受け入れているようなので、ライセンスで絞り込むクエリーを投げれば期待する動きになる。

ちなみに画像を検索するURLは

http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=icon

になる。


39.Google画像検索のクエリを解析するより

再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial|cc_nonderived)
営利目的での再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_nonderived).-(cc_noncommercial)
改変後の再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial).-(cc_nonderived)
改変後の営利目的での再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike).-(cc_noncommercial|cc_nonderived)

ということなので使いたい条件のクエリを追加する(動作確認済み)


ついでに色検索のクエリーもあるようなので色で検索したい場合は

ちなみに、フルカラーは結果だけお伝えするとimgcにcolorが代入されていました

ということなのでimgcに適当なパラメータを設定すれば動くはず(こちらは未確認)

画像を取ってきて表示するサンプルを最後につけましたので興味のある方は動かしてみるといいでしょう。
クエリーが変わるとダメなのであまり安定したAPIではないような気がしていますが・・・
便利なのでよしということに。

最後に

クリエイティブ・コモンズのライセンスをWeblogツールで使うことの危険性より

クリエイティブ・コモンズのライセンスをWeblogツールで使っているとする。 Weblogの作者が自分に著作権がない画像を掲載してしまったとき、ライセンスに従えばその画像を自由に使えると第三者が誤解してしまう危険性が高い、という話。そもそも自分に権利がない画像を掲載してはいけない、という結論。

CreativeCommonsのデータだから必ず大丈夫ということではないことを留意しておいたほうがいいようです。元々のデータが肖像権違反であったりする場合訴えられることもあるようです。

*2010-11-30追記

指定できるクエリ一覧
q=検索キーワード
検索キーワードを指定します。
v=バージョン
APIのバージョンを指定します。現在は1.0しかバージョンがありません。
rsz=small
小さい結果セット(4件)を返します。(デフォルト)
rsz=large
大きい結果セット(8件)を返します。
hl=ホスト言語
ホスト言語を指定します。日本はjaと指定するようです。
start=開始インデックス
いくつ目の検索結果から表示するかを指定します
safe=active
セーフサーチ フィルタリング(強)を有効にします。
safe=moderate
セーフサーチ フィルタリング(中)を有効にします(デフォルト)。
safe=off
セーフサーチ フィルタリングを無効にします。
imgsz=icon
画像サイズを小に制限します。
imgsz=small|medium|large|xlarge
画像サイズを中に制限します
imgsz=xxlarge
画像サイズを大に制限します。
imgsz=huge
画像サイズを特大に制限します。
imgc=mono
白黒(モノクロ)の画像に制限します。
imgc=gray
グレースケールの画像に制限します。
imgc=color
カラーの画像に制限します。
imgtype=face
顔の画像に制限します。
imgtype=photo
写真に制限します。
imgtype=clipart
クリップアート画像に制限します
imgtype=lineart
線描画画像に制限します
as_filetype=jpg
画像を jpg のみに制限します
as_filetype=png
画像を png のみに制限します
as_filetype=gif
画像を gif のみに制限します
as_filetype=bmp
画像を bmp のみに制限します
as_sitesearch=ドメイン
指定されたドメインの画像のみ検索するようにします。(例:as_sitesearch=photobucket.com)

パラメータのまとめがあったので追記しました。
43.Google画像検索API。クエリを作って欲しい情報をゲットより



参考:Geekなぺーじ:Creative Commons社がFlickr画像騒動で訴えられる

サンプル

iconでぐぐって、クリエイティブコモンズの商用利用可の画像を表示するサンプル。

(q=iconのところを編集すれば好きな検索クエリーにできる)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="ja">
<head>
  <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
  <title>image search</title>
  <meta http-equiv="content-style-type" content="text/css">
  <link rel="stylesheet" type="text/css" href="style.css">
  <meta http-equiv="content-script-type" content="text/javascript">
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
  <script type="text/javascript">
  //<![CDATA[

	$.ajax({
		type:"GET",
		url:"http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=icon&rsz=8&as_rights=%28cc_publicdomain|cc_attribute|cc_sharealike|cc_nonderived%29.-%28cc_noncommercial%29",
        dataType : 'jsonp',
        jsonp : 'callback',
		success:function(data){

		    if ( !data.responseData.results || data.responseData.results.length <= 0) {
		    	return;
		    }
			var imgResults = data.responseData.results;

            for (var i = 0; i < imgResults.length; i++) {
                var result = imgResults[i];
                result.content; // 画像名(HTML)
                result.contentNoFormatting; // 画像名(HTMLなし)
                result.height;	// 元画像の高さ
                result.width;		// 元画像の幅
                result.title;					// 画像のあったサイトタイトル
                result.originalContextUrl;	// 画像のあったサイトURL
                result.url;					// 画像のURL
                result.unescapedUrl;			// 画像のURL(エスケープ前)
                result.tbHeitght;				// 検索結果のサムネイル高さ
                result.tbWidth;				// 検索結果のサムネイル幅
                result.tbUrl;					// 検索結果のサムネイルURL
             
                //$("#result").append("<img src='"+result.url+"'>");
                $("#result").append("<img src='"+result.tbUrl+"'>");
            }
		}
	});
  //]]>
  </script>
</head>
<body>
  search result...
  <div id="result">
  </div>
</body>
</html>