使用youtube java客户端库api在youtube上上传视频

时间:2011-09-18 11:50:00

标签: video upload youtube-api google-api-java-client gdata-java-client

以下是错误:

抱歉,您的上传无效:

<?xml version='1.0' encoding='UTF-8'?>
<errors>
<error>
<domain>yt:validation</domain>
<code>invalid_value</code>
<locationtype='xpath'>media:group/media:category[@scheme='http://gdata.youtube.com/schemas/2007/categories.cat']/text()</location>
</error>
</errors>

以下是我的视频上传代码:

public class YtUpload {

        public YtUpload() {

        try {

        String client_id = "abcd";
        String developer_key = "AI39si6Nb_onkYi1b7...";
    YouTubeService service = new YouTubeService(client_id,developer_key);
    service.setUserCredentials("xyz@gmail.com", "password");
    VideoEntry newEntry = new VideoEntry();

        YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
    mg.setTitle(new MediaTitle());
    mg.getTitle().setPlainTextContent("My Test Game");
    mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "tech"));
    mg.setKeywords(new MediaKeywords());
    mg.getKeywords().addKeyword("conference");
    mg.setDescription(new MediaDescription());
    mg.getDescription().setPlainTextContent("My description");
    mg.setPrivate(false);
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag"));
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag"));

    newEntry.setGeoCoordinates(new GeoRssWhere(37.0,-122.0));
    //alternatively, one could specify just a descriptive string
    newEntry.setLocation("Mountain View, CA");

        MediaFileSource ms = new MediaFileSource(new File("c:\\largeV_smallA.mp4"), "video/quicktime");
    newEntry.setMediaSource(ms);
    String uploadUrl = "http://uploads.gdata.youtube.com/feeds/api/users/default/uploads";
    service.insert(new URL(uploadUrl), newEntry);
    } 
        catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
            e.printStackTrace();
    } catch (ServiceException se) {
        System.out.println("Sorry, your upload was invalid:");
        System.out.println(se.getResponseBody());
        return;
    }
    System.out.println("Video uploaded successfully!");
    }

    public static void main(String[] args) {
        new YtUpload();
    }}

1 个答案:

答案 0 :(得分:0)

MediaFileSource(new File("c:\\largeV_smallA.**mp4**"), "video/**quicktime**");

mp4和quicktime不匹配