Youtube以编程方式上传视频



我已经在过去的4天里尝试上传视频到YouTube,但我失败了,请帮助我。

package com.example.testyoutube;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
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;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;
public class MainActivity extends Activity {
private Button button;
private YouTubeService service;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            submitVideo("/storage/emulated/0/Pictures/Hello Camera/VID_20140523_204750.mp4",
                    "i have done it ", "Yooooooooo , it works", "fun");
        }
    });
}
public void submitVideo(String vName, String vTitle, String vDesc, String vCate) {
    String developer_key = "api key"; // Registered developer key
    String clientID = "gmailaccount"; // Server's Youtube account
    String password = "passwordofgmailaccount"; // Server's Youtube password
    service = new YouTubeService(clientID, developer_key); // YouTube Object, we take action by this.
    try {
        service.setUserCredentials(clientID,password);
    } catch (AuthenticationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    File videoFile = new File( vName ); // The video local file prepare to upload
    String VIDEO_UPLOAD_FEED = "http://uploads.gdata.youtube.com/feeds/api/users/default/uploads";
    String mediaType = "video/*"; // Serach .flv MIME type may found more
    String vKey1 = vCate; // Use same category and keyword
    VideoEntry newEntry = new VideoEntry(); // YouTube video object type, they will return this after uploaded
    YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup(); // Collect all of the video information
    mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, vCate));
    mg.setTitle(new MediaTitle());
    mg.getTitle().setPlainTextContent(vTitle);
    mg.setDescription(new MediaDescription());
    mg.getDescription().setPlainTextContent(vDesc);
    mg.setKeywords(new MediaKeywords());
    mg.getKeywords().addKeyword(vKey1);
    MediaFileSource ms = new MediaFileSource(videoFile, mediaType);
    newEntry.setMediaSource(ms);
    VideoEntry ve = null;
    try {
        ve = service.insert(new URL(VIDEO_UPLOAD_FEED), newEntry);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ServiceException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if(ve == null){
        System.out.println("Submit to youtube fail.");
        return ;
    }
}
}

它说这个"service = new YouTubeService(clientID, developer_key);"有错误,但没有解释原因,请帮助(或建议另一个代码请)

你可以使用Intent

ContentValues content = new ContentValues(4);
content.put(Video.VideoColumns.DATE_ADDED,
System.currentTimeMillis() / 1000);
content.put(Video.Media.MIME_TYPE, "video/mp4");
content.put(MediaStore.Video.Media.DATA, "video_path");
ContentResolver resolver = getBaseContext().getContentResolver();
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"share:")); 

相关内容

  • 没有找到相关文章

最新更新