2014-04-02 127 views
3

我有YouTube链接“https://www.youtube.com/watch?v=ySuYTKkgIvg如何下载YouTube视频的Android SD卡programaticaly

如何,我可以从YouTube视频存储到我的SD卡?

我可以使用YouTube播放器通过android YouTube DATA API播放视频,但不知道如何下载 是任何可以帮助我做到这一点的API /代码?

+1

http://stackoverflow.com/a/9497608 – Sree

+0

谢谢@Sreekanthss我会检查出来 –

+0

https://www.youtube.com/watch?v=ySuYTKkgIvg 这个链接可以使用下载在代码中,你通过我的链接@Sreekanthss代码显示如何下载我的问题是我不知道如何从上面提到的链接获取流媒体链接 –

回答

1

我迟到了,但这个解决方案是最适合我只是试试这个。

方法1

添加到您的gradle这个文件

allprojects { 
     repositories { 
      maven { url "https://jitpack.io" } 
     } 
    } 

和依赖

compile 'com.github.Commit451.YouTubeExtractor:youtubeextractor:2.1.0' 

添加这个小的代码和你做。 Demo HERE

public class MainActivity extends AppCompatActivity { 

    private static final String YOUTUBE_ID = "ea4-5mrpGfE"; 

    private final YouTubeExtractor mExtractor = YouTubeExtractor.create(); 


    private Callback<YouTubeExtractionResult> mExtractionCallback = new Callback<YouTubeExtractionResult>() { 
     @Override 
     public void onResponse(Call<YouTubeExtractionResult> call, Response<YouTubeExtractionResult> response) { 
      bindVideoResult(response.body()); 
     } 

     @Override 
     public void onFailure(Call<YouTubeExtractionResult> call, Throwable t) { 
      onError(t); 
     } 
    }; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


//  For android youtube extractor library com.github.Commit451.YouTubeExtractor:youtubeextractor:2.1.0' 
     mExtractor.extract(YOUTUBE_ID).enqueue(mExtractionCallback); 

    } 


    private void onError(Throwable t) { 
     t.printStackTrace(); 
     Toast.makeText(MainActivity.this, "It failed to extract. So sad", Toast.LENGTH_SHORT).show(); 
    } 


    private void bindVideoResult(YouTubeExtractionResult result) { 

//  Here you can get download url link 
     Log.d("OnSuccess", "Got a result with the best url: " + result.getBestAvailableQualityVideoUri()); 

     Toast.makeText(this, "result : " + result.getSd360VideoUri(), Toast.LENGTH_SHORT).show(); 
    } 
} 

你可以在bindVideoResult()方法下载链接。

方法2

使用这个库android-youtubeExtractor

添加到文件的gradle

repositories { 
    maven { url "https://jitpack.io" } 
} 

compile 'com.github.HaarigerHarald:android-youtubeExtractor:master-SNAPSHOT' 

这里是获取下载网址的代码。

 String youtubeLink = "http://youtube.com/watch?v=xxxx"; 

    YouTubeUriExtractor ytEx = new YouTubeUriExtractor(this) { 
     @Override 
     public void onUrisAvailable(String videoId, String videoTitle, SparseArray<YtFile> ytFiles) { 
      if (ytFiles != null) { 
       int itag = 22; 
// Here you can get download url 
       String downloadUrl = ytFiles.get(itag).getUrl(); 
      } 
     } 
    }; 

    ytEx.execute(youtubeLink);