Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Utangulizi ni mfupi: Ninataka kuzungumza kuhusu kichezaji mtandaoni cha YouTube cha Android na orodha za kucheza za ndani, vituo na mapendekezo.

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Utangulizi uliopanuliwa:
Wakati fulani uliopita nilikutana na shida sawa na mwandishi wa programu nzuri Orodha ya Idhini ya Kituo, na niliamua mwenyewe mtazamo sawa juu yake: Ninataka kuwa na uwezo wa kumpa mtoto wangu kibao au smartphone na katuni mara kwa mara, lakini sifurahii kabisa ambapo, baada ya kubofya 2-3, orodha. ya mapendekezo katika programu za kawaida - wateja wa YouTube - huchukua mtoto.

Kwa bahati mbaya, baada ya kusanikisha programu ya Orodha iliyoidhinishwa ya Channel, dosari nyingine zaidi ya prosaic, lakini bado mbaya iligunduliwa - NIH I (na, muhimu zaidi, mwanangu) ilipata kiolesura chake sio rahisi sana, haswa baada ya tabia ya kutumia kicheza YouTube Kids.

Kwa ujumla, baada ya muda fulani nilikuwa tayari kufanya utekelezaji wangu mwenyewe. Baada ya muda, iliwezekana kuweka lebo kwenye toleo la kwanza.

Vipengele muhimu:

  • Ongeza vituo na orodha zako za kucheza uzipendazo - zitahifadhiwa na kuorodheshwa katika hifadhidata ya karibu nawe
  • Ndani ya orodha za kucheza zilizoongezwa, zima video zisizo za lazima ikiwa huzihitaji
  • Orodha ya mapendekezo inatolewa bila mpangilio pekee kutoka kwa vituo na orodha za kucheza zilizoongezwa kwenye programu

Chanzo huria, leseni ya GPLv3: https://github.com/sadr0b0t/yashlang/

Ufuatao ni muhtasari wa vipengele vikuu kwa undani zaidi, pamoja na baadhi ya maelezo ya kiufundi kuhusu jinsi ya kucheza video za YouTube katika programu yako ya Android bila kutumia API ya Google na kanga za wavuti.

Kwenye skrini kuu na kwenye skrini ya mchezaji: mapendekezo ya nasibu kutoka kwa njia zisizo za nasibu

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Utafutaji wa papo hapo katika hifadhidata ya ndani

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) => Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Ongeza kituo kipya au orodha ya kucheza

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Tafuta kwa jina mtandaoni au weka anwani inayojulikana. Orodha ya video za kituo au orodha ya kucheza huhifadhiwa kwenye hifadhidata ya ndani; aikoni hazijahifadhiwa.

Orodha ya kucheza yenye nguvu - cheza matokeo ya utafutaji

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) => Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Katika mapendekezo ya video kutakuwa na video zinazokidhi hoja ya utafutaji pekee.

Vile vile, ukifungua video kutoka kwa mipangilio ya orodha ya kucheza, ni video tu kutoka kwa orodha moja ya kucheza zitaonekana kwenye orodha ya mapendekezo.

Orodha za kucheza na vituo vinaweza kuzimwa kwa muda na kuwashwa tena

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Tafadhali kumbuka: video kutoka kwa orodha ya kucheza iliyozimwa pia zitatoweka kutoka kwa matokeo ya utafutaji, historia ya kutazama na kutoka kwa orodha ya vipendwa. Lakini usijali, zitaonekana hapo tena mara baada ya orodha ya kucheza kuwashwa tena.

Ongeza video kwenye orodha iliyoidhinishwa

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Video iliyozuiwa haitaonyeshwa katika mapendekezo, katika matokeo ya utafutaji, na itatoweka kutoka kwenye orodha ya vipendwa na kutoka kwa historia ya kutazama. Video bado itaonekana katika mipangilio ya orodha ya kucheza.

Tazama orodha iliyoidhinishwa na uwashe tena vipengee vilivyozuiwa kimakosa:
Mipangilio > menyu ya vichwa > Orodha nyeusi

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Video unazopenda na historia ya kutazama

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Video unazopenda kwenye skrini ya kichezaji zimewekwa alama ya nyota kwenye kona ya juu kulia.

Menyu za muktadha katika kichwa cha skrini na ubofye kwa muda mrefu kwenye maghala na orodha

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Nakili jina au anwani ya video au orodha ya kucheza kwenye skrini ya kutazama au katika orodha yoyote.

Anza haraka - ongeza vituo na orodha za kucheza zinazopendekezwa

Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?) => Kifo cha Koshchei kiko kwenye orodha ya mapendekezo (je, inawezekana kufanya YouTube iwe ya kupendeza na salama?)

Programu itaonekana mara moja kama picha za skrini hapo juu.

Vituo na orodha za kucheza zisizohitajika zinaweza kuzimwa au kufutwa katika mipangilio.

Ufungaji

Ukurasa wa mradi: https://github.com/sadr0b0t/yashlang/
kwa Kingereza: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
matoleo: https://github.com/sadr0b0t/yashlang/releases

Kumbuka kwamba kubadilisha kati ya matoleo tofauti kutoka kwa vyanzo tofauti kwenye kifaa kimoja haitafanya kazi kwa sababu ya saini tofauti za faili ya apk; kabla ya kusakinisha toleo kutoka kwa chanzo kipya, itabidi kwanza ufute toleo lililosakinishwa pamoja na data - kache ya orodha ya kucheza na historia ya kuvinjari (au tambua jinsi ya kuhamisha data).

Maelezo ya kiufundi

Haihitaji akaunti ya Google/YouTube, unahitaji mtandao pekee, hutumia maktaba zifuatazo:

Chanzo huria, leseni ya GPLv3 ya bure.

swali: Je, ni halali kwa ujumla kufuta tovuti bila ruhusa (au kwa marufuku ya wazi) kutoka kwa waandishi? Google huondoa programu kutoka Google Play, ambazo hazitumii API zao, lakini huchanganua tovuti zao, kwa sababu wanakiuka makubaliano ya mtumiaji.
jibu: bila shaka, ni halali, ni juu yako ni chombo gani cha kutumia kusoma habari zinazopatikana kwa umma. Zaidi ya hayo: Mahakama ya Marekani imehalalisha kabisa uchakachuaji wa tovuti na imepiga marufuku kuingiliwa na kiufundi., lakini Gul anaweza kuwa na maoni tofauti; binafsi, bado sina hamu ya kwenda kwenye mahakama ya Marekani ili kuwashawishi.

Baadhi ya kanuni

maktaba NewPipeExtractor - Mradi wa usaidizi wa mchezaji Mpya, hukuruhusu kupakua orodha ya video kwa kituo maalum au orodha ya kucheza, pakua maelezo ya kina kuhusu video maarufu (inayoonekana kwenye ukurasa wa wavuti wa video), pata anwani ya ikoni ya video, na pia upate anwani ya video. mkondo.

Nambari ya kupakia orodha ya kucheza ni ngumu kidogo, kwa hivyo sitaitoa hapa, kwa wale wanaopenda, angalia msimbo wa chanzo, kimsingi ni darasa. ContentLoader.

Hebu tuone jinsi ya kupata anwani ya mtiririko wa video kutoka kwa anwani ya ukurasa wa video ya umma na kuicheza kwenye kichezaji.

Unganisha maktaba kwa
app/build.gradle

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

Inashangaza kwamba baada ya hii bado hautaweza kuitumia, kwa sababu ... mifano italalamika juu ya kukosa darasa la Upakuaji. Inaweza kunakiliwa kwa mradi kutoka kwa saraka ya majaribio ya kiotomatiki NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - inafanya kazi kwa toleo la 0.17.4 (inaonekana kwamba sehemu hii ilifanywa upya katika toleo jipya la maktaba, lakini bado tunahitaji kuangalia).

Pata anwani ya mtiririko wa video kwa anwani ya ukurasa wa video kwenye tovuti ya YouTube:

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

Anwani ya video ytVidUrl inaweza kuwa anwani ya umma ya ukurasa wa video yoyote kwenye tovuti ya YouTube, kwa mfano. https://www.youtube.com/watch?v=pd2RlatmNRk

Mchezaji atakuwa exoplayer kutoka kwa Google yenyewe. Hiki si kibandiko cha wavuti juu ya YouTube, lakini ni kichezaji halisi kilichopachikwa cha kucheza video zozote, kinachonyumbulika kabisa na kinachoweza kubinafsishwa. Inaweza pia kucheza mitiririko ya video kutoka YouTube ikiwa utaipa anwani sahihi. Tumepokea anwani ya mtiririko, kwa hivyo hebu tuone jinsi ya kuituma kwa kichezaji.

Unganisha maktaba kwenye mradi app/build.gradle:

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

Hatutazingatia nuances yote ya kuweka sehemu ya kicheza kwenye skrini ya programu (unaweza kuangalia mifano kwenye wavuti ya mradi au kwa nambari), tutaangalia tu jinsi ya kuanza kucheza video kutoka YouTube kwenye kicheza. anwani iliyopokelewa hapo juu:

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

Maswala Yanayojulikana

  • Haitacheza video zilizo na vikwazo vya umri vinavyohitaji kuingia kwenye akaunti yako ya Google/YouTube

kwa mfano: Ilya Muromets, Wasiwasi wa Sinema ya Mosfilm, Ruslan na Lyudmila filamu 1, Wasiwasi wa Filamu ya Mosfilm

ushauri: ongeza video kama hizi kwenye orodha iliyoidhinishwa au muulize mwandishi wa video hiyo kuondoa kizuizi ambacho kiliwekwa kimakosa.

  • Baadhi ya video za utangazaji ambazo huduma hurejesha urefu wa sifuri hazitacheza (kwa video kama hizo, muda katika orodha na ghala huwekwa alama kama “[dur undef]”)

kwa mfano: Subiri! Masuala Yote ya Soyuzmultfilm HD (Katuni kwa watoto), Katuni kutoka studio ya Soyuzmultfilm, Katuni maarufu za Soyuzmultfilm, Katuni kutoka studio ya Soyuzmultfilm

ushauri: ongeza video kama hizo kwenye orodha isiyoruhusiwa.

  • Video zinazopatikana kupitia viungo vya moja kwa moja pekee haziwezi kujumuishwa kwenye orodha ya kucheza ya ndani, hata kama utapakua video zote za mtumiaji.

kwa mfano: Ufugaji wa Moto Sehemu ya 1, Wasiwasi wa Sinema ya Mosfilm

  • Ukikutana na video ya umma ambayo haihitaji kuingia, inacheza kwenye kivinjari, lakini haichezi kwenye kichezaji, tuma ripoti ya hitilafu (inawezekana kabisa kwamba tatizo tayari limerekebishwa katika toleo jipya. NewPipeExtractor na utahitaji tu kusasisha kusanyiko na toleo hili, kwa mfano).

  • Kiolesura kinaweza kupunguza kasi ikiwa Mtandao ni wa polepole (lakini haujazimwa)

Mwishowe

Mwanangu alihama kutoka kompyuta kibao hadi Samsung smart TV, ambayo haiwezi kuendesha programu za Android. Kwa hiyo, udhibiti bora wa wazazi bado ni wa kibinafsi.

Lakini programu iligeuka kuwa rahisi kutosha kwangu kuanza kuitumia mwenyewe. Hisia ya kwanza kutoka kwa matoleo ya awali ya kazi ilikuwa kwamba nilikuwa katika ulimwengu mwingine. Maudhui yote yanapakuliwa kutoka YouTube, lakini hii si YouTube tena, bali ni kitu kingine, salama na kinachodhibitiwa, kana kwamba umetoa kipenyo kwenye jicho lako na kuiweka kwenye chupa ya glasi. Na yote ni kuhusu mapendekezo.

Chanzo: mapenzi.com

Kuongeza maoni