2014-04-02 4 views
3

내가 유튜브 링크가 안드로이드 SD 카드에 유튜브 동영상을 다운로드하는 "https://www.youtube.com/watch?v=ySuYTKkgIvg"어떻게 programaticaly

어떻게 내 SD 카드에 YouTube의 동영상을 저장할 수 있습니까?

android YouTube DATA API로 YouTube 플레이어를 사용하여 동영상을 재생할 수 있지만 다운로드 방법을 모르겠 음 이 작업을 수행하는 데 도움이되는 API/코드입니다. 당신이 당신의 웹 페이지 내에서 비디오을 재생할 수 있도록

+1

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

+0

덕분에 내가 그것을 확인합니다 @Sreekanthss –

+0

가 https://www.youtube.com/watch?v=ySuYTKkgIvg 이 링크 다운로드 사용 할 수 있습니다 코드에서 유 ur 링크 @ Sreekanthss ur 코드를 보여줍니다 내 문제 dowload하는 방법을 보여줍니다 나는 위에서 언급 한 링크에서 스트리밍 링크를 얻으려면 어떻게 해야할지 모르겠다. –

답변

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() 방법 다운로드 링크를 얻을 수 있습니다. Gradle을 파일 여기

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

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

에이 라이브러리 android-youtubeExtractor

추가 사용

는 방법이

다운로드 URL을 가져 오는 코드입니다.

 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); 
관련 문제