د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

پیژندنه لنډه ده: زه غواړم د ځایی پلی لیستونو ، چینلونو او وړاندیزونو سره د Android لپاره د یوټیوب آنلاین پلیر په اړه وغږیږم.

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

پراخه پیژندنه:
یو څه وخت دمخه زه د ورته ستونزې سره مخ شوم لکه څنګه چې د عالي غوښتنلیک لیکوال د چینل سپین لیست، او د ځان لپاره یې ورته ورته چلند ټاکلی: زه غواړم وکولی شم خپل ماشوم ته وخت په وخت د کارټونونو سره ټابلیټ یا سمارټ فون ورکړم ، مګر زه د 2-3 کلیکونو وروسته له کوم ځای څخه خوښ نه یم. په معیاري غوښتنلیکونو کې سپارښتنې - د یوټیوب پیرودونکي - ماشوم اخلي.

بدبختانه ، د چینل وایټ لیست اپلیکیشن نصبولو وروسته ، یو بل ډیر پراسیک ، مګر لاهم وژونکي نیمګړتیا وموندل شوه - NIH I (او خورا مهم ، زما زوی) د دې انٹرفیس خورا اسانه ندی موندلی ، په ځانګړي توګه د یوټیوب ماشومانو پلیر کارولو عادت وروسته.

په عموم کې، یو څه وخت وروسته زه چمتو وم چې خپل ځان پلي کړم. د یو څه وخت وروسته، دا ممکنه شوه چې په لومړي ریلیز کې ټګ واچول شي.

کلیدي ځانګړتیاوې:

  • خپل غوره چینلونه او پلی لیستونه اضافه کړئ - دوی به په محلي ډیټابیس کې خوندي او لیست شي
  • په اضافه شوي پلی لیستونو کې ، غیر ضروري ویډیوګانې بند کړئ که تاسو ورته اړتیا نلرئ
  • د سپارښتنو لیست په تصادفي ډول یوازې د چینلونو او پلی لیستونو څخه رامینځته شوی چې غوښتنلیک کې اضافه شوي

خلاص سرچینه، د GPLv3 جواز: https://github.com/sadr0b0t/yashlang/

لاندې په تفصیل سره د اصلي ب featuresو یوه عمومي کتنه ده ، په بیله بیا د ګوګل API او ویب ریپرونو کارولو پرته ستاسو په Android غوښتنلیک کې د یوټیوب ویډیو لوبولو څرنګوالي په اړه ځینې تخنیکي توضیحات.

په اصلي سکرین او د پلیر سکرین کې: د غیر تصادفي چینلونو څخه تصادفي وړاندیزونه

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

په محلي ډیټابیس کې فوري لټون

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) => د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

یو نوی چینل یا پلی لیست اضافه کړئ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د آنلاین نوم په واسطه لټون وکړئ یا یو پیژندل شوی پته داخل کړئ. د چینل یا پلی لیست ویډیوګانو لیست ځایی ډیټابیس کې خوندي شوی؛ شبیهونه نه ساتل کیږي.

متحرک پلی لیست - د لټون پایلې پلی کړئ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) => د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د ویډیو وړاندیزونو کې به یوازې ویډیوګانې وي چې د لټون پوښتنې پوره کړي.

په ورته ډول ، که تاسو د پلی لیست تنظیماتو څخه ویډیو خلاص کړئ ، یوازې د ورته پلی لیست څخه ویډیوګانې به د وړاندیزونو لیست کې څرګند شي.

پلی لیستونه او چینلونه په لنډمهاله توګه بند او بیا فعال کیدی شي

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

مهرباني وکړئ په یاد ولرئ: د معلول شوي پلی لیست څخه ویډیوګانې به د لټون پایلو ، لید تاریخ او د خوښې لیست څخه هم ورک شي. مګر اندیښنه مه کوئ ، دوی به سمدلاسه وروسته له هغه چې د پلی لیست بیا فعال شي هلته به بیا څرګند شي.

په تور لیست کې ویډیو اضافه کړئ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

یو بلاک شوی ویډیو به په وړاندیزونو ، د لټون پایلو کې نه ښودل کیږي ، او د خوښې لیست او د لید تاریخ څخه به ورک شي. ویډیو به لاهم د پلی لیست تنظیماتو کې لیدل کیږي.

تور لیست وګورئ او په غلطۍ سره بند شوي توکي بیا فعال کړئ:
ترتیبات> سرلیک مینو> تور لیست

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د خوښې ویډیوګانې او د لیدو تاریخ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د پلیر په سکرین کې غوره ویډیوګانې په پورتنۍ ښیې کونج کې د ستوري سره نښه شوي.

د سکرین سرلیک کې د متن مینو او په ګالري او لیستونو کې اوږد کلیک وکړئ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

د لیدلو په سکرین یا کوم لیست کې د ویډیو یا پلی لیست نوم یا پته کاپي کړئ.

ګړندی پیل - وړاندیز شوي چینلونه او پلی لیستونه اضافه کړئ

د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟) => د کوشچي مړینه د سپارښتنو په لیست کې ده (ایا دا ممکنه ده چې یوټیوب آرام او خوندي کړي؟)

غوښتنلیک به سمدلاسه د پورته سکرین شاټونو په څیر ښکاري.

غیر ضروري چینلونه او پلی لیستونه په تنظیماتو کې بند یا حذف کیدی شي.

د جوړولو

د پروژې پاڼه: https://github.com/sadr0b0t/yashlang/
په انګلیسی کي: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
خپرونه: https://github.com/sadr0b0t/yashlang/releases

په یاد ولرئ چې په ورته وسیله کې د مختلف سرچینو څخه د مختلف نسخو ترمینځ سویچ کول به د apk فایل مختلف لاسلیکونو له امله کار ونکړي؛ مخکې لدې چې له نوې سرچینې څخه نسخه نصب کړئ ، تاسو باید لومړی د ډیټا سره نصب شوی نسخه حذف کړئ - د پلی لیست کیچ او د لټون کولو تاریخ (یا معلوم کړئ چې څنګه د ډیټا لیږدولو لپاره).

تخنیکي توضیحات

د ګوګل/یوټیوب حساب ته اړتیا نلري، تاسو یوازې انټرنیټ ته اړتیا لرئ، لاندې کتابتونونه کاروي:

خلاص سرچینه، وړیا GPLv3 جواز.

پوښتنه: ایا دا عموما قانوني دی چې د لیکوالانو له اجازې پرته (یا د څرګند بندیز سره) ویب پاڼې سکریپ کړئ؟ ګوګل د ګوګل پلی څخه اطلاقات لرې کوي، کوم چې د دوی API نه کاروي، مګر د دوی سایټونه پارس کوي، ځکه دوی د خپل کارونکي تړون څخه سرغړونه کوي.
ځواب: البته، دا قانوني ده، دا تاسو پورې اړه لري چې د عامه معلوماتو د لوستلو لپاره کومه وسیله وکاروئ. سربیره پردې: د متحده ایالاتو یوې محکمې د ویب پاڼې سکریپ کول په بشپړ ډول قانوني کړي او تخنیکي لاسوهنه یې منع کړې ده.خو ګل ښايي بل نظر ولري؛ په شخصي توګه، زه تر اوسه د امریکا یوې محکمې ته د هغوی د قانع کولو لیوالتیا نه لرم.

ځینې ​​​​کوډ

کړی نوی پایپ استخراجونکی - د لوبغاړو ملاتړ پروژه نوی پایپ، تاسو ته اجازه درکوي د ځانګړي چینل یا پلی لیست لپاره د ویډیوګانو لیست ډاونلوډ کړئ ، د مشهور ویډیو په اړه مفصل معلومات ډاونلوډ کړئ (هغه څه چې د ویډیو په ویب پا onه کې لیدل کیږي) ، د ویډیو آیکون پته ترلاسه کړئ ، او د ویډیو پته هم ترلاسه کړئ. جریان

د پلی لیست پورته کولو لپاره کوډ یو څه پیچلی دی ، نو زه به یې دلته نه ورکوم ، د علاقمندانو لپاره ، د سرچینې کوډ ته یو نظر وګورئ ، دا اساسا یو ټولګی دی د منځپانګې لوډر.

راځئ وګورو چې څنګه د عامه ویډیو پاڼې پته څخه د ویډیو جریان پته ترلاسه کړئ او په پلیر کې یې پلی کړئ.

کتابتون سره وصل کړئ
app/build.gradle

dependencies {
...
    // NewPipe: youtube parser
    // https://github.com/TeamNewPipe/NewPipeExtractor
    implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}

دا په زړه پوري ده چې له دې وروسته تاسو لاهم نشئ کولی دا وکاروئ ، ځکه ... مثالونه به د ورک شوي ډاونلوډر ټولګي په اړه شکایت وکړي. دا د اتوماتیک ازموینې لارښود څخه پروژې ته کاپي کیدی شي NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - د 0.17.4 نسخه لپاره کار کوي (داسې بریښي چې دا برخه د کتابتون په نوې نسخه کې له سره جوړه شوې ، مګر موږ لاهم اړتیا لرو چیک کړو).

په یوټیوب ویب پاڼه کې د ویډیو پاڼې پته د ویډیو جریان پته ترلاسه کړئ:

app/src/main/java/su/sadrobot/yashlang/controller/ContentLoader.java

    public String extractYtStreamUrl(final String ytVidUrl) throws ExtractionException, IOException {
        // https://github.com/TeamNewPipe/NewPipeExtractor/blob/dev/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java
        NewPipe.init(Downloader.getInstance(), new Localization("GB", "en"));
        final YoutubeStreamExtractor extractor = (YoutubeStreamExtractor) YouTube
                .getStreamExtractor(ytVidUrl);
        extractor.fetchPage();
        final String streamUrl = extractor.getVideoStreams().size() > 0 ? extractor.getVideoStreams().get(0).getUrl() : null;
//        for (final VideoStream stream : extractor.getVideoStreams()) {
//            stream.getUrl();
//        }
        return streamUrl;
    }

د ویډیو پته ytVidUrl کیدای شي د یوټیوب ویب پاڼه کې د هرې ویډیو پاڼې عامه پته وي، د بیلګې په توګه https://www.youtube.com/watch?v=pd2RlatmNRk

لوبغاړی به وي exoplayer پخپله د ګوګل څخه. دا په یوټیوب کې ویب ریپر ندی ، مګر د هرې ویډیو لوبولو لپاره ریښتیني ایمبیډ شوی پلیر دی ، خورا انعطاف وړ او دودیز کیدونکی. دا کولی شي له یوټیوب څخه د ویډیو جریان هم پلی کړي که تاسو دا سم پته چمتو کړئ. موږ یوازې د جریان ادرس ترلاسه کړ، نو راځئ وګورو چې دا څنګه لوبغاړي ته واستوو.

کتابتون له پروژې سره وصل کړئ app/build.gradle:

dependencies {
...
    // google Exoplayer
    // https://github.com/google/ExoPlayer
    // https://exoplayer.dev/
    implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}

موږ به د غوښتنلیک په سکرین کې د پلیر برخې ځای په ځای کولو ټول باریکي په پام کې ونیسو (تاسو کولی شئ د پروژې ویب پا orې یا کوډ کې مثالونه وګورئ) ، موږ به یوازې وګورو چې څنګه په پلیر کې د یوټیوب څخه ویډیو پیل کړئ. پورته ترلاسه شوی پته:

app/src/main/java/su/sadrobot/yashlang/WatchVideoActivity.java

private void playVideoStream(final String streamUrl, final long seekTo) {
    if (streamUrl == null) {
        // остановить проигрывание текущего ролика, если был загружен
        videoPlayerView.getPlayer().stop(true);
    } else {
        // https://exoplayer.dev/
        // https://github.com/google/ExoPlayer

        final Uri mp4VideoUri = Uri.parse(streamUrl);
        final MediaSource videoSource = new ProgressiveMediaSource.Factory(videoDataSourceFactory)
                .createMediaSource(mp4VideoUri);

        // Поставим на паузу старое видео, пока готовим новое
        if (videoPlayerView.getPlayer().getPlaybackState() != Player.STATE_ENDED) {
            // Если ставить на паузу здесь после того, как плеер встал на паузу сам, закончив
            // играть видео, получим здесь второе событие STATE_ENDED, поэтому нам нужна здесь
            // специальная проверка.
            // При этом значение getPlayWhenReady() останется true, поэтому проверяем именно состояние.
            // https://github.com/google/ExoPlayer/issues/2272
            videoPlayerView.getPlayer().setPlayWhenReady(false);
        }

        // Prepare the player with the source.
        ((SimpleExoPlayer) videoPlayerView.getPlayer()).prepare(videoSource);

        // Укажем текущую позицию сразу при загрузке видео
        // (в коментах что-то пишут что-то про датасорсы, которые поддерживают или не поддерживают
        // переходы seek при загрузке, похоже, что это фигня - просто делаем seek сразу после загрузки)
        // Exoplayer plays new Playlist from the beginning instead of provided position
        // https://github.com/google/ExoPlayer/issues/4375
        // How to load stream in the desired position? #2197
        // https://github.com/google/ExoPlayer/issues/2197
        // в этом месте нормлаьный duration еще не доступен, поэтому его не проверяем
        //if(seekTo > 0 && seekTo < videoPlayerView.getPlayer().getDuration()) {
        if (seekTo > 0) {
            // на 5 секунд раньше
            videoPlayerView.getPlayer().seekTo(seekTo - 5000 > 0 ? seekTo - 5000 : 0);
        }
        videoPlayerView.getPlayer().setPlayWhenReady(true);
    }
}

پیژندل شوي مسلې

  • د عمر محدودیتونو سره به ویډیو ونه لوبوي چې ستاسو ګوګل/یوټیوب حساب ته ننوتل ته اړتیا لري

د مثال په توګه: Ilya Muromets، د فلم سینما اندیښنه, د روسلان او لیوډمیلا فلم 1، د فلم فلم اندیښنه

مشوره: دا ډول ویډیوګانې په تور لیست کې اضافه کړئ یا د ویډیو له لیکوال څخه وغواړئ چې هغه محدودیت لرې کړي چې په غلطۍ سره ټاکل شوی.

  • ځینې ​​نشر شوي ویډیوګانې چې خدمت یې د صفر اوږدوالی بیرته راګرځوي هغه به پلی نشي (د داسې ویډیوګانو لپاره ، په لیستونو او ګالري کې موده د "[dur undef]" په توګه نښه شوې)

د مثال په توګه: انتظار وکړئ! د Soyuzmultfilm HD ټولې مسلې (د ماشومانو لپاره کارتونونه)، د سویزملټ فلم سټوډیو څخه کارتونونه, د سویزملټ فلم غوره کارتونونه، د سویزملټ فلم سټوډیو څخه کارتونونه

مشوره: دا ډول ویډیو په تور لیست کې اضافه کړئ.

  • هغه ویډیوګانې چې یوازې د مستقیم لینکونو له لارې شتون لري ممکن په محلي پلی لیست کې شامل نه شي، حتی که تاسو د کارونکي ټولې ویډیو ډاونلوډ کړئ

د مثال په توګه: د اور وژنې لومړۍ برخه، د موسفلم سینما اندیښنه

  • که تاسو د عامه ویډیو سره مخ شئ چې ننوتل ته اړتیا نلري ، په براوزر کې لوبیږي ، مګر په پلیر کې نه لوبیږي ، د بګ راپور واستوئ (دا خورا ممکنه ده چې ستونزه لا دمخه په نوي نسخه کې حل شوې وي. نوی پایپ استخراجونکی او تاسو به یوازې د دې نسخې سره مجلس تازه کولو ته اړتیا ولرئ، د مثال په توګه).

  • انٹرفیس ممکن ورو شي که انټرنیټ ورو وي (مګر بند شوی نه وي)

په پایله کې،

زما زوی له ټابلیټ څخه د سامسنګ سمارټ تلویزیون ته تللی ، کوم چې نشي کولی د Android غوښتنلیکونه پرمخ بوځي. له همدې امله، د والدینو غوره کنټرول لاهم شخصي دی.

مګر غوښتنلیک زما لپاره کافي اسانه وګرځید چې پخپله یې کارول پیل کړم. د لومړنیو کاري نسخو څخه لومړی تاثیر دا و چې زه په بله نړۍ کې وم. ټول منځپانګه له یوټیوب څخه ډاونلوډ کیږي، مګر دا نور یوټیوب نه دی، مګر یو بل څه، خوندي او کنټرول شوی، لکه څنګه چې تاسو د سترګو څخه سینټیپیډ واخلئ او په شیشې جار کې یې واچوئ. او دا ټول د سپارښتنو په اړه دي.

سرچینه: www.habr.com

Add a comment