【问题标题】:direct url to download youtube videos- Android下载 youtube 视频的直接网址 - Android
【发布时间】:2012-11-18 08:30:13
【问题描述】:

我在 Android 中做一个需要直接下载 YouTube 视频的项目 (无需任何第三方网站或软件或任何其他安卓应用程序的帮助)。

我已经尝试了该论坛上发布的几乎所有技术,但没有任何效果。 我使用get_video_info 获取网址并解析它们,但它们不起作用。

谁能帮助我,目前的技术是什么。将不胜感激。

【问题讨论】:

  • 我认为这种情况没有任何可能的方法。
  • 我在 YouTube 上看到了一些视频,他们使用 get_video_info 检索了一些结果,然后解析它们......后来使用他们能够下载视频的 url。但是当我尝试相同的时候它没有用。原因可能是 youtube 经常更改它的 api 或源代码格式。

标签: java android youtube download


【解决方案1】:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;

import com.commit451.youtubeextractor.YouTubeExtractionResult;
import com.commit451.youtubeextractor.YouTubeExtractor;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

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();
     }
}

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2013-09-10
    • 2019-03-06
    相关资源
    最近更新 更多