Streaming Youtube Videos

46,949

Solution 1

If you're willing to do the work in a new activity, the following will work on a device but not on the emulator:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

Solution 2

Sometimes Uri.parse return "null" because cant parse an rtsp protocol instead of http protocol.

Look it with an Log in logcat Uri.parse(rtspURL).toString() and you will see nothing written. or only make Log.d("tag", Uri.parse); and the same will be return.

Try to find another way to parse (create) an Uri.

I'd try with that and run:

String urlVideo = <your rtspURL>
VideoView video = (VideoView)findViewById(R.id.VideoView01);
Log.d(tag , urlVideo);
video.setVideoURI(Uri.parse(urlVideo));
MediaController mc = new MediaController(this);
video.setMediaController(mc);
video.requestFocus();
video.start();
mc.show();

Solution 3

I'm impressed that the dirty way works at all! If you've got a working solution, go with it. I don't think there's a clean way to get RTSP streaming working in the SDK yet.

Solution 4

we faced a very similar problem.

At the moment I'm at the first step of my project and I'm trying to make the videoview simply works. I'm taking data from here: http://gdata.youtube.com/demo/ and I'm testing all the videos links.

RTSP 3GP videos are really really really low quality video.... and there is no way to access to mp4 (good quality) videos. I really don't know how to make it works because I think that MP4 streams are available only to premium devs....

Solution 5

Throw eye over Youtube API

I think this also use youtube app(Which you don't want)

But just refer may be you will find some key to solve it

Share:
46,949
Vinay
Author by

Vinay

Good C++ and COM Developer

Updated on January 01, 2020

Comments

  • Vinay
    Vinay over 4 years

    I am writing an application to play youtube videos using streaming.

    First method:

    I am getting the RTSP URL to the video using GData APIs. Here is the code to play the RTSP url.

       VideoView mVideoView = new VideoView(this);
       setContentView(mVideoView);
       mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"));
       mVideoView.start();
    

    But it throws error on both G1 device and emulator (Emulator has some firewall problem as per mailing list) Here is the error message

    ERROR/PlayerDriver(35): Command PLAYER_INIT completed with an error or info PVMFFailure

    Second method:

    A hack way to get the path of 3gp file from http://www.youtube.com/get_video?v=&t=<>&<>.. After getting the file path and I can call setVideoURI and it plays fine. But it is a hack way to achieve the requirement. I have checked the Youtube App also, it also does the hack way to play the youtube url.(Checked with logcat)

    I have tried changing from VideoView to MediaPlayer but no change in the error.

    Is there a "Clean" way to do this?

    Please let me know your thoughts.