2008年10月17日金曜日

JavaでYouTubeにアップロード

スズキです。

まずは、下記よりクライアントIDとデベロッパーキーを
取得します 。
http://code.google.com/apis/youtube/dashboard/

次に、下記よりgdata-samples.java-x.x.x.java.zipを
ダウンロードします。
http://code.google.com/p/gdata-java-client/

そして、下記のjarファイルをライブラリフォルダにコピーします。
gdata-client-1.0.jar
gdata-client-meta-1.0.jar
gdata-core-1.0.jar
gdata-media-1.0.jar
gdata-youtube-1.0.jar

最後にこんなコード書くと、指定したユーザーで、
対象の動画ファイルをYouTubeにアップロードできます。
--------
import java.io.File;
import java.net.URL;
import com.google.gdata.client.youtube.YouTubeService;
import com.google.gdata.data.media.MediaFileSource;
import com.google.gdata.data.media.mediarss.MediaCategory;
import com.google.gdata.data.media.mediarss.MediaDescription;
import com.google.gdata.data.media.mediarss.MediaKeywords;
import com.google.gdata.data.media.mediarss.MediaTitle;
import com.google.gdata.data.youtube.VideoEntry;
import com.google.gdata.data.youtube.YouTubeMediaGroup;
import com.google.gdata.data.youtube.YouTubeNamespace;

public class YouTubeMain {
  private static final String CLIENT_ID
      = "CLIENT_ID";
  private static final String DEVELOPER_KEY
      = "DEVELOPER_KEY";
  public static final String UPLOAD_URL
      = "http://uploads.gdata.youtube.com/feeds/api/users/";

  public static void main(String[] args) {
    String username = "username";
    String password = "password";
    String file = "sample.mov";

    YouTubeService service = new YouTubeService(
      CLIENT_ID, DEVELOPER_KEY
    );
    VideoEntry entry = new VideoEntry();
    YouTubeMediaGroup group = entry.getOrCreateMediaGroup();
    group.addCategory(new MediaCategory(
      YouTubeNamespace.CATEGORY_SCHEME, "Tech"
    ));
    group.setTitle(new MediaTitle());
    group.getTitle().setPlainTextContent("test");
    group.setKeywords(new MediaKeywords());
    group.getKeywords().addKeyword("gdata-test");
    group.setDescription(new MediaDescription());
    group.getDescription().setPlainTextContent("test");
    MediaFileSource source = new MediaFileSource(
      new File(file), "video/quicktime"
    );
    entry.setMediaSource(source);

    try {
      service.setUserCredentials(username, password);
      service.insert(
        new URL(UPLOAD_URL + username + "/uploads"), entry
      );
    } catch(Exception e) {
      System.out.println(e.getMessage());
      e.printStackTrace();
    }
  }
}

"Google App Engine"でもできるのかなー?

--
http://suz-lab.blogspot.com/

0 コメント: