使用java的google API實作youtube影片上傳by YouTubeService

文章推薦指數: 80 %
投票人數:10人

import java.util.regex.Pattern;. public class Youtubeupload { private String username = null;// 以youtube帳號申請的頻道名稱,非google帳號 魚魚的小水族箱 跳到主文 小小工程師的數位生活,stayhungry,stayfoolish 部落格全站分類:數位生活 相簿 部落格 留言 名片 Apr11Wed201216:59 使用java的googleAPI實作youtube影片上傳byYouTubeService 廢話不多說,請由程式碼學習,jar請自己去找google要 以下為程式碼 ---------------------------------------------------------------------------- importcom.google.gdata.client.Service;importcom.google.gdata.client.youtube.YouTubeService;importcom.google.gdata.data.PlainTextConstruct;importcom.google.gdata.data.TextConstruct;importcom.google.gdata.data.media.MediaFileSource;importcom.google.gdata.data.media.mediarss.MediaCategory;importcom.google.gdata.data.media.mediarss.MediaDescription;importcom.google.gdata.data.media.mediarss.MediaKeywords;importcom.google.gdata.data.media.mediarss.MediaPlayer;importcom.google.gdata.data.media.mediarss.MediaTitle;importcom.google.gdata.data.youtube.CommentEntry;importcom.google.gdata.data.youtube.PlaylistEntry;importcom.google.gdata.data.youtube.PlaylistFeed;importcom.google.gdata.data.youtube.PlaylistLinkEntry;importcom.google.gdata.data.youtube.PlaylistLinkFeed;importcom.google.gdata.data.youtube.UserEventEntry;importcom.google.gdata.data.youtube.UserEventFeed;importcom.google.gdata.data.youtube.VideoEntry;importcom.google.gdata.data.youtube.VideoFeed;importcom.google.gdata.data.youtube.YouTubeMediaGroup;importcom.google.gdata.data.youtube.YouTubeNamespace;importcom.google.gdata.data.youtube.YtPublicationState;importcom.google.gdata.util.AuthenticationException;importcom.google.gdata.util.ServiceException; importjava.io.BufferedReader;importjava.io.File;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.URL;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern; publicclassYoutubeupload{privateStringusername=null;//以youtube帳號申請的頻道名稱,非google帳號privateStringpassword=null;//google密碼privateStringdeveloperKey=null;//developer_key請向google申請privateStringfilePath=null;//欲上傳檔案路徑privateStringvideoTitle=null;//設定影片資訊-標題privateStringvideoKeyword="";//設定影片資訊-privateStringdescription="";//設定影片資訊-標題publicStringgetUsername(){returnusername;} publicvoidsetUsername(Stringusername){this.username=username;} publicStringgetPassword(){returnpassword;} publicvoidsetPassword(Stringpassword){this.password=password;} publicStringgetDeveloperKey(){returndeveloperKey;} publicvoidsetDeveloperKey(StringdeveloperKey){this.developerKey=developerKey;} publicStringgetFilePath(){returnfilePath;} publicvoidsetFilePath(StringfilePath){this.filePath=filePath;} publicStringgetVideoTitle(){returnvideoTitle;} publicvoidsetVideoTitle(StringvideoTitle){this.videoTitle=videoTitle;} publicStringgetVideoKeyword(){returnvideoKeyword;} publicvoidsetVideoKeyword(StringvideoKeyword){this.videoKeyword=videoKeyword;} publicStringgetDescription(){returndescription;} publicvoidsetDescription(Stringdescription){this.description=description;} publicvoidstart()throwsIOException,ServiceException{if(username==null||password==null||developerKey==null||filePath==null||videoTitle==null)//必要參數thrownewIllegalArgumentException("checkusername,password,developerKey,filePath,videoTitleagain,please");StringuploadUrl="http://uploads.gdata.youtube.com/feeds/api/users/"+username+"/uploads";//上傳位址 YouTubeServiceservice=newYouTubeService("gdataSample-YouTubeAuth-1",developerKey);try{service.setUserCredentials(username,password);}catch(AuthenticationExceptione){System.out.println("Invalidlogincredentials.");System.exit(1);} FilevideoFile=newFile(filePath);if(!videoFile.exists()){System.out.println("Sorry,thatvideodoesn'texist.");return;} StringmimeType="video/x-flv";if(filePath.toLowerCase().indexOf(".flv")!=-1)mimeType="video/x-flv";elseif(filePath.toLowerCase().indexOf(".mp4")!=-1)mimeType="video/mp4";elseif(filePath.toLowerCase().indexOf(".wmv")!=-1)mimeType="video/x-ms-wmv"; VideoEntrynewEntry=newVideoEntry(); YouTubeMediaGroupmg=newEntry.getOrCreateMediaGroup(); mg.addCategory(newMediaCategory(YouTubeNamespace.CATEGORY_SCHEME,"Nonprofit"));////設定影片資訊-類別:非營利組織與行動主義mg.setTitle(newMediaTitle());mg.getTitle().setPlainTextContent(videoTitle);mg.setKeywords(newMediaKeywords());mg.getKeywords().addKeyword(videoKeyword);//設定影片資訊-標籤,以「,」分隔mg.setDescription(newMediaDescription());mg.getDescription().setPlainTextContent(description);//設定影片資訊-說明MediaFileSourcems=newMediaFileSource(videoFile,mimeType);newEntry.setMediaSource(ms); VideoEntryentry=service.insert(newURL(uploadUrl),newEntry);if(entry.isDraft()){ System.out.println("Videoisnotlive"); YtPublicationStatepubState=entry.getPublicationState(); if(pubState.getState()==YtPublicationState.State.PROCESSING){System.out.println("Videoisstillbeingprocessed.");}elseif(pubState.getState()==YtPublicationState.State.REJECTED){ System.out.println("Videohasbeenrejectedbecause:"+pubState.getDescription());System.out.println("Forhelpvisit:"+pubState.getHelpUrl()); }elseif(pubState.getState()==YtPublicationState.State.FAILED){ System.out.println("Videofaileduploadingbecause:"+pubState.getDescription());System.out.println("Forhelpvisit:"+pubState.getHelpUrl());}}System.out.println("Videouploadedsuccessfully!");} publicstaticvoidmain(String[]args)throwsServiceException,IOException{Stringusername="username";//以youtube帳號申請的頻道名稱,非google帳號Stringpassword="password";//google密碼StringdeveloperKey="developerKey ";//向googleyoutube申請的keyStringfilePath="C:\\test\\test.mp4";StringvideoTitle="影片標題";//設定影片資訊-標題StringvideoKeyword="影片關鍵字一,影片關鍵字二";//以「,」號分隔設定的關鍵字Stringdescription="";//影片說明Youtubeuploadtestupload=newYoutubeupload();testupload.setUsername(username);testupload.setPassword(password);testupload.setDeveloperKey(developerKey);testupload.setFilePath(filePath);testupload.setVideoTitle(videoTitle);testupload.setVideoKeyword(videoKeyword);testupload.setDescription(description);testupload.start();} } 全站熱搜 創作者介紹 Will(小威) 魚魚的小水族箱 Will(小威)發表在痞客邦留言(1)人氣() E-mail轉寄 全站分類:數位生活個人分類:RD此分類上一篇:轉貼:rsh以root登入 此分類下一篇:[JAVA]List轉字串陣列 上一篇:轉貼:rsh以root登入 下一篇:[JAVA]List轉字串陣列 ▲top 留言列表 發表留言 站方公告 [公告]2022年度農曆春節期間服務公告[公告]MIB廣告分潤計劃、PIXwallet錢包帳戶條款異動通知[公告]2021年度農曆春節期間服務公告 活動快報 留言旅行地點領禮物 按讚並追蹤PIXstyleMe,於此貼文的留言處寫下「... 看更多活動好康 我的好友 熱門文章 文章分類 RD(33)未分類文章(8) 最新文章 最新留言 動態訂閱 文章精選 文章精選 2018三月(1) 2016七月(1) 2016一月(1) 2014七月(1) 2014一月(1) 2013七月(1) 2013五月(3) 2013四月(5) 2013三月(2) 2012十二月(2) 2012十月(1) 2012六月(3) 2012四月(1) 2012三月(5) 2012二月(2) 2011十二月(2) 2011十一月(9) 所有文章列表 文章搜尋 新聞交換(RSS) 誰來我家 參觀人氣 本日人氣: 累積人氣: QRCode POWEREDBY (登入) 回到頁首 回到主文 免費註冊 客服中心 痞客邦首頁 ©2003-2022PIXNET 關閉視窗



請為這篇文章評分?