android-youtubeextrator: java.io.FileNotFoundException Error



I am getting java.io.FileNotFoundException error while trying to download video from youtube using android-youtubeextrator lib. Full error code:

2021-05-21 19:44:19.342 5544-5694/com.example.SampleApp W/System.err: java.io.FileNotFoundException: https://www.youtube.com/get_video_info?video_id=GJVrna5Rm5U&eurl=https%3A%2F%2Fyoutube.googleapis.com%2Fv%2FGJVrna5Rm5U
2021-05-21 19:44:19.343 5544-5694/com.example.SampleApp W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:251)
2021-05-21 19:44:19.343 5544-5694/com.example.SampleApp W/System.err:     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
2021-05-21 19:44:19.345 5544-5694/com.example.SampleApp W/System.err:     at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:26)
2021-05-21 19:44:19.346 5544-5694/com.example.SampleApp W/System.err:     at at.huber.youtubeExtractor.YouTubeExtractor.getStreamUrls(YouTubeExtractor.java:220)
2021-05-21 19:44:19.346 5544-5694/com.example.SampleApp W/System.err:     at at.huber.youtubeExtractor.YouTubeExtractor.doInBackground(YouTubeExtractor.java:196)
2021-05-21 19:44:19.346 5544-5694/com.example.SampleApp W/System.err:     at at.huber.youtubeExtractor.YouTubeExtractor.doInBackground(YouTubeExtractor.java:34)
2021-05-21 19:44:19.346 5544-5694/com.example.SampleApp W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:333)
2021-05-21 19:44:19.346 5544-5694/com.example.SampleApp W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2021-05-21 19:44:19.347 5544-5694/com.example.SampleApp W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
2021-05-21 19:44:19.347 5544-5694/com.example.SampleApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2021-05-21 19:44:19.347 5544-5694/com.example.SampleApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2021-05-21 19:44:19.347 5544-5694/com.example.SampleApp W/System.err:     at java.lang.Thread.run(Thread.java:764)

My Download Function:

    public static void download_youtube_video(Activity activity) {

        String youtubeLink = "https://www.youtube.com/watch?v=cMhbUWFJqzU";


        YouTubeExtractor ytEx = new YouTubeExtractor(activity) {

            @Override
            protected void onExtractionComplete(SparseArray<YtFile> files, VideoMeta videoMeta) {
                if (files != null) {


                    // 720, 1080, 480
                    List<Integer> iTags = Arrays.asList(22, 137, 18);

                    for (Integer iTag : iTags) {


                        YtFile ytFile = files.get(iTag);

                        if (ytFile != null) {
                            String downloadUrl = ytFile.getUrl();

                            if (downloadUrl != null && !downloadUrl.isEmpty()) {


                                Uri youtubeUri = Uri.parse(downloadUrl);
                                DownloadManager.Request request = new DownloadManager.Request(youtubeUri);
                                String title = "test";
                                request.setTitle(title);
                                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, title + ".mp4");
                                @SuppressLint("ServiceCast") DownloadManager downloadManager = (DownloadManager) activity.getSystemService(Context.DISPLAY_SERVICE);
                                request.allowScanningByMediaScanner();
                                request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
                                downloadManager.enqueue(request);


                            }

                        }

                    }

                }

            }

        };

        ytEx.execute(youtubeLink);

    }

I tried changing the version of android-youtubeextrator. Still it is giving same error. Please help.

Answer

you can track the same issue on the Lib From Github

for sample answer from there:

    add html5=1 in your link. Sample:
https://www.youtube.com/get_video_info?video_id=Ls-blYpVgwE&html5=1&eurl=https%3A%2F%2Fyoutube.googleapis.com%2Fv%2FLs-blYpVgwE


Source: stackoverflow