Quantcast
Channel: Active questions tagged youtube-api - Stack Overflow
Viewing all articles
Browse latest Browse all 3718

I`m Trying To Create YouTube Video Downloader App in android using java [closed]

$
0
0

When I click a download button my app will be crashed, I have no idea why app is crashed.Screen Is Complete load and everything is work fine but when I paste YouTube video link and hit the download button app is crashing.I also Doubt when add dependency in build. gradles file is something will be wrong but I didn't get where I do the mistake.

 package com.codeseasy.youtubedownloader;    import android.Manifest;    import android.annotation.SuppressLint;    import android.app.DownloadManager;    import android.content.BroadcastReceiver;    import android.content.Context;    import android.content.Intent;    import android.content.IntentFilter;    import android.content.pm.PackageManager;    import android.net.Uri;    import android.os.Environment;    import androidx.annotation.NonNull;    import androidx.core.app.ActivityCompat;    import androidx.appcompat.app.AppCompatActivity;    import android.os.Bundle;    import androidx.appcompat.app.AppCompatDelegate;    import android.util.Log;    import android.util.SparseArray;    import android.view.Menu;    import android.view.MenuItem;    import android.view.View;    import android.widget.Button;    import android.widget.EditText;    import android.widget.LinearLayout;    import android.widget.ProgressBar;    import android.widget.TextView;    import android.widget.Toast;    import com.google.android.gms.auth.api.signin.GoogleSignIn;    import com.google.android.gms.auth.api.signin.GoogleSignInAccount;    import com.google.android.gms.auth.api.signin.GoogleSignInClient;    import com.google.android.gms.auth.api.signin.GoogleSignInOptions;    import com.google.android.gms.common.SignInButton;    import com.google.android.gms.common.api.ApiException;    import com.google.android.gms.tasks.OnCompleteListener;    import com.google.android.gms.tasks.Task;    import com.google.firebase.auth.AuthCredential;    import com.google.firebase.auth.AuthResult;    import com.google.firebase.auth.FirebaseAuth;    import com.google.firebase.auth.FirebaseUser;    import com.google.firebase.auth.GoogleAuthProvider;    import at.huber.youtubeExtractor.YouTubeUriExtractor;    import at.huber.youtubeExtractor.YtFile;    public class MainActivity extends AppCompatActivity {        EditText editText;        String youTubeURL = null;        String WritePermission = Manifest.permission.WRITE_EXTERNAL_STORAGE;        String ReadPermission = Manifest.permission.READ_EXTERNAL_STORAGE;        private SharedPref sharedpref;        @Override        protected void onCreate(Bundle savedInstanceState) {            AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);            sharedpref = new SharedPref(this);            if(sharedpref.loadNightModeState()==true) {                setTheme(R.style.darktheme);            }            super.onCreate(savedInstanceState);            setContentView(R.layout.activity_main);            if (ActivityCompat.checkSelfPermission(this, WritePermission) != PackageManager.PERMISSION_GRANTED ||                    ActivityCompat.checkSelfPermission(this, ReadPermission) != PackageManager.PERMISSION_GRANTED) {                ActivityCompat.requestPermissions(this, new String[]{WritePermission, ReadPermission}, 1);            }            editText = findViewById(R.id.youtubevideourlenter);        }        // main funcation works here        public void openFolder()        {            startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));        }        public void YouTubeVideoDownloadF(int iTag){            if (ActivityCompat.checkSelfPermission(this, WritePermission) != PackageManager.PERMISSION_GRANTED ||                    ActivityCompat.checkSelfPermission(this, ReadPermission) != PackageManager.PERMISSION_GRANTED) {                ActivityCompat.requestPermissions(this, new String[]{WritePermission, ReadPermission}, 1);            } else {                    YTDownload(iTag);            }        }        public void YTDownload(final int itag) {            String VideoURLDownload = youTubeURL;            @SuppressLint("StaticFieldLeak") YouTubeUriExtractor youTubeUriExtractor = new YouTubeUriExtractor(this) {                @Override                public void onUrisAvailable(String videoId, final String videoTitle, SparseArray<YtFile> ytFiles) {                    if ((ytFiles != null)) {                        String downloadURL = ytFiles.get(itag).getUrl();                        Log.e("Download URL: ", downloadURL);                        if(itag==18 || itag == 22) {                            String mp4=".mp4";                            DownloadManagingF(downloadURL, videoTitle,mp4);                        }else if (itag == 251){                            String mp3=".mp3";                            DownloadManagingF(downloadURL,videoTitle,mp3);                        }                    } else Toast.makeText(MainActivity.this, "Error With URL", Toast.LENGTH_LONG).show();                }            };            youTubeUriExtractor.execute(VideoURLDownload);        }        public void DownloadManagingF(String downloadURL, String videoTitle,String extentiondwn){            if (downloadURL != null) {                DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);                DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadURL));                request.setTitle(videoTitle);                request.setDestinationInExternalPublicDir("/Download/YouTube-Downloader/", videoTitle + extentiondwn);                if (downloadManager != null) {                    Toast.makeText(getApplicationContext(),"Downloading...",Toast.LENGTH_SHORT).show();                    downloadManager.enqueue(request);                }                BroadcastReceiver onComplete = new BroadcastReceiver() {                    public void onReceive(Context ctxt, Intent intent) {                        Toast.makeText(getApplicationContext(),"Download Completed",Toast.LENGTH_SHORT).show();                        Uri selectedUri = Uri.parse(Environment.getExternalStorageDirectory() +"/Download/YouTube-Downloader/");                        Intent intentop = new Intent(Intent.ACTION_VIEW);                        intentop.setDataAndType(selectedUri, "resource/folder");                        if (intentop.resolveActivityInfo(getPackageManager(), 0) != null)                        {                            startActivity(intentop);                        }                        else                        {                            Toast.makeText(getApplicationContext(),"Saved on: Download/YouTube-Downloader",Toast.LENGTH_LONG).show();                            restartApp();                        }                        unregisterReceiver(this);                        finish();                    }                };                registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));            }        }        public void viewdownloadsbtn(View view) {            openFolder();        }        public void ytvdownload(View view) {            youTubeURL = editText.getText().toString();            if (youTubeURL.contains("http")) {                YouTubeVideoDownloadF(18);            }            else Toast.makeText(this,"Enter URL First",Toast.LENGTH_LONG).show();        }        public void ytvdownloadhd(View view) {            youTubeURL = editText.getText().toString();            if(mAuth.getCurrentUser() == null) {                if (youTubeURL.contains("http"))                    YouTubeVideoDownloadF(22);                else Toast.makeText(this, "Enter URL First", Toast.LENGTH_LONG).show();            }            else {                Toast.makeText(this, "Upgrade To Pro", Toast.LENGTH_LONG).show();            }        }        public void ytvdownloadhdp(View view) {            youTubeURL = editText.getText().toString();            if (youTubeURL.contains("http")) {                YouTubeVideoDownloadF(140);            }            else Toast.makeText(this,"Enter URL First",Toast.LENGTH_LONG).show();        }        public void ytvdownloadaudio(View view) {            youTubeURL = editText.getText().toString();            if (youTubeURL.contains("http"))                YouTubeVideoDownloadF(251);            else Toast.makeText(this,"Enter URL First",Toast.LENGTH_LONG).show();        }    } 

Viewing all articles
Browse latest Browse all 3718

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>