2014-04-02 77 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);