Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Nhanganyaya ipfupi: Ini ndinoda kutaura nezve YouTube online player ye Android ine emuno playlists, chiteshi uye kurudziro.

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Sumo yakawedzerwa:
Imwe nguva yapfuura ndakasangana nedambudziko rakafanana nemunyori wekushandisa kunoshamisa Channel Whitelist, uye ndakazvisarudzira maitiro akafanana pairi: Ini ndinoda kukwanisa kupa mwana wangu piritsi kana smartphone ine katuni nguva nenguva, asi ini handisi kufara zvachose nei, mushure mekudzvanya 2-3, rondedzero. yekurudziro mumashandisirwo akajairwa - YouTube vatengi - inotora mwana.

Nehurombo, mushure mekuisa iyo Channel Whitelist application, imwezve prosaic, asi ichiri inouraya chikanganiso chakawanikwa - NIH I (uye, zvinonyanya kukosha, mwanakomana wangu) yakaona chimiro chayo chisina kunyatsokunakira, kunyanya mushure metsika yekushandisa YouTube Vana mutambi.

Muzhinji, mushure menguva yakati ndakanga ndagadzirira kuita yangu yekuitwa. Mushure menguva yakati, zvakave zvinogoneka kuisa tag pakuburitswa kwekutanga.

Zvinhu zvakakosha:

  • Wedzera zviteshi zvako zvaunofarira uye zvinyorwa zvekutamba - zvichachengetwa uye kurongedzerwa mudura renzvimbo
  • Mukati mezvinyorwa zvekutamba zvakawedzerwa, dzima mavhidhiyo asina basa kana usingaade
  • Rondedzero yekurudziro inogadzirwa zvisina tsarukano kubva kumachaneli uye playlists akawedzerwa kune application

Open source, GPLv3 rezinesi: https://github.com/sadr0b0t/yashlang/

Pazasi pane mhedziso yeakakosha maficha mune zvakadzama, pamwe nehunyanzvi hwekuita ekutamba mavhidhiyo eYouTube mune yako Android application pasina kushandisa Google API nemawebhu wrappers.

Pachidzitiro chikuru uye pachiratidziro chevatambi: kurudziro isina kurongeka kubva kune isiri-random chiteshi

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Kutsvaga chiriporipo mudura renzvimbo

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) => Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Wedzera chiteshi chitsva kana playlist

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Tsvaga nezita pamhepo kana kuisa kero inozivikanwa. Rondedzero yemavhidhiyo echiteshi kana playlist inochengetwa kudura renzvimbo; zvidhori hazvina kuchengetwa.

Dynamic playlist - tamba mhinduro dzekutsvaga

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) => Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Muvhidhiyo kurudziro pachave nemavhidhiyo chete anogutsa mubvunzo wekutsvaga.

Saizvozvo, kana iwe ukavhura vhidhiyo kubva kune yekutamba marongero, chete mavhidhiyo kubva kune imwechete playlist anozoonekwa mune rondedzero yekurudziro.

Playlists uye zviteshi zvinogona kudzimwa kwenguva pfupi uye zvakare

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Ndokumbira utarise: mavhidhiyo kubva kune akaremara playlist anozonyangarika kubva pamibairo yekutsvaga, nhoroondo yekuona uye kubva kune yaunofarira runyorwa. Asi usazvinetse, ivo vachaonekwa ipapo zvakare pakarepo mushure mekunge playlist yavhurwa zvakare.

Wedzera vhidhiyo kune blacklist

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Vhidhiyo yakavharwa haizoratidzirwe mukurudziro, mumibairo yekutsvaga, uye inonyangarika kubva pane rondedzero yevanoda uye kubva munhoroondo yekuona. Vhidhiyo icharamba ichionekwa mumaseting ekutamba.

Wona iyo blacklist uye wogonesa zvakare zvinhu zvakavharika nekukanganisa:
Settings > header menu > Blacklist

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Anofarira mavhidhiyo uye nhoroondo yekuona

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Mavhidhiyo aunofarira pachiratidziro chevatambi akanyorwa neasterisk mukona yekurudyi.

Mamenu emukati mumusoro wescreen uye tinya-refu mumagalari uye zvinyorwa

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Kopa zita kana kero yevhidhiyo kana playlist mubhurawuza screen kana chero runyorwa.

Kurumidza kutanga - wedzera zvinokurudzirwa zviteshi uye playlists

Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?) => Rufu rwaKoshchei rwuri parunyorwa rwekurudziro (zvinoita here kuita kuti YouTube ive inotonhorera uye yakachengeteka?)

Iyo application ichakurumidza kutaridzika senge skrini iri pamusoro.

Zviteshi zvisina kudikanwa uye playlists zvinogona kudzimwa kana kudzimwa muzvirongwa.

Kuiswa

Peji yeprojekiti: https://github.com/sadr0b0t/yashlang/
muchirungu: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
zvinoburitswa: https://github.com/sadr0b0t/yashlang/releases

Ramba uchifunga kuti kushandura pakati peshanduro dzakasiyana kubva kwakasiyana masosi pachigadzirwa chimwe chete hazvishande nekuda kwemasiginecha akasiyana eiyo apk faira; usati waisa iyo vhezheni kubva kune nyowani sosi, iwe unozotanga wadzima iyo yakaiswa vhezheni pamwe nedata - iyo playlist cache uye nhoroondo yekubhurawuza (kana tsvaga nzira yekufambisa data).

Unyanzvi ruzivo

Izvo hazvidi iyo Google/YouTube account, iwe unongoda iyo Internet, inoshandisa anotevera maraibhurari:

Vhura sosi, yemahara GPLv3 rezinesi.

mubvunzo: Zviri pamutemo here kukwenya mawebhusaiti pasina mvumo (kana nekurambidzwa kwakajeka) kubva kuvanyori? Google inobvisa mapurogiramu kubva kuGoogle Play, iyo isingashandisi API yavo, asi tsanangura masaiti avo, nekuti vanotyora chibvumirano chavo chemushandisi.
mhinduro: hongu, zviri pamutemo, zviri kwauri kuti ndechipi chishandiso chekushandisa kuverenga ruzivo rwunowanikwa pachena. Uyezve: Dare reUS rakanyoresa zviri pamutemo kukwesha webhusaiti uye rakarambidza kupindira kwehunyanzvi nazvo., asi Gul anogona kunge aine maonero akasiyana; ini pachangu, handisati ndave nechido chekuenda kudare reAmerica kuti ndinovanyengetedza.

Imwe kodhi

raibhurari NewPipeExtractor - purojekiti yekutsigira mutambi Newpipe, inokutendera kuti utore rondedzero yemavhidhiyo echiteshi chakatsanangurwa kana playlist, dhawunirodha ruzivo rwakadzama nezvevhidhiyo ine mukurumbira (izvo zvinoonekwa pawebhu peji revhidhiyo), tora kero yevhidhiyo icon, uye zvakare tora kero yevhidhiyo. rukova.

Iyo kodhi yekurodha playlist idiki, saka ini handisi kuzopa pano, kune avo vanofarira, tarisa iyo sosi kodhi, ikirasi. ContentLoader.

Ngationei kuti tingawana sei kero yevhidhiyo kuyerera kubva kukero yepeji yevhidhiyo yeruzhinji uye kuiridza mumutambi.

Batanidza raibhurari ku
app/build.gradle

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

Zvinoda kuziva kuti mushure meizvi hauchakwanisa kuishandisa, nekuti ... mienzaniso ichanyunyuta pamusoro pekushayikwa Downloader kirasi. Inogona kukopwa kupurojekiti kubva kune otomatiki bvunzo dhairekitori NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - inoshanda kushanduro 0.17.4 (zvinoita sekuti chikamu ichi chakaitwa patsva mune imwe shanduro yeraibhurari, asi isu tichiri kuda kutarisa).

Tora kero yerukova rwevhidhiyo nekero yevhidhiyo peji pawebhusaiti yeYouTube:

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

Iyo vhidhiyo kero ytVidUrl inogona kuve kero yeruzhinji yepeji yechero vhidhiyo pawebhusaiti yeYouTube, semuenzaniso. https://www.youtube.com/watch?v=pd2RlatmNRk

Mutambi achava exoplayer kubva kuGoogle pachayo. Iyi haisi yewebhu kuputira pamusoro peYouTube, asi chaiyo yakamisikidzwa mutambi wekutamba chero mavhidhiyo, anochinjika uye anogoneka. Inogona zvakare kutamba mavhidhiyo enzizi kubva kuYouTube kana iwe ukapa iyo kero chaiyo. Tichangobva kugamuchira kero yerukova, saka ngationei kuti toitumira sei kumutambi.

Batanidza raibhurari kupurojekiti app/build.gradle:

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

Isu hatizotarise ese nuances yekuisa chikamu chemutambi pachiratidziro chekushandisa (unogona kutarisa mienzaniso pane webhusaiti yeprojekiti kana mukodhi), isu tichangotarisa maitiro ekutanga kutamba vhidhiyo kubva kuYouTube mune mutambi pa. kero yakagamuchirwa pamusoro:

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

Nyaya Dzinozivikanwa

  • Haisi kuzotamba mavhidhiyo ane zvirambidzo zvezera zvinoda kupinda muakaundi yako yeGoogle/YouTube

somuenzaniso: Ilya Muromets, Mosfilm Cinema Concern, Ruslan naLyudmila firimu 1, Mosfilm Film Concern

zano: wedzera mavhidhiyo akadaro kune yakasviba kana bvunza munyori wevhidhiyo kuti abvise kurambidzwa kwakaiswa nekukanganisa.

  • Mamwe mavhidhiyo ekutepfenyura ayo sevhisi inodzosera zero kureba haizotambwe (kunemavhidhiyo akadaro, nguva iri mumazita uye gallery inomakwa se[dur undef]”)

somuenzaniso: Mirira! Zvese Nyaya dzeSoyuzmultfilm HD (Katuni yevana), Katuni kubva kuSoyuzmultfilm studio, Top cartoons Soyuzmultfilm, Cartoons kubva Soyuzmultfilm studio

zano: wedzera mavhidhiyo akadaro kune iyo blacklist.

  • Mavhidhiyo anongowanikwa chete kuburikidza neakananga malink anogona kusaverengerwa mune yemuno playlist, kunyangwe ukadhawunirodha ese emushandisi mavhidhiyo.

somuenzaniso: Kudzora kweMoto Chikamu chekutanga, Mosfilm Cinema Concern

  • Kana iwe ukasangana nevhidhiyo yeruzhinji isingade kupinda mukati, inotamba mubrowser, asi isingatambe mumutambi, tumira mushumo webug (zvinogoneka kuti dambudziko rakatogadziriswa mushanduro itsva. NewPipeExtractor uye iwe unongoda kugadzirisa musangano neiyi vhezheni, somuenzaniso).

  • Iyo interface inogona kudzikira kana iyo Internet inonoka (asi isina kudzimwa)

Somugumisiro,

Mwanakomana wangu akatama kubva pahwendefa kuenda kuSamsung smart TV, isingakwanise kumhanyisa Android application. Naizvozvo, kudzora kwakanakisisa kwavabereki kuchiri kwomunhu oga.

Asi application yacho yakazove yakanakira ini kuti nditange kuishandisa pachangu. Maonero ekutanga kubva kumashanduro ekutanga ekushanda aive ekuti ndaive mune imwe nyika. Zvese zvirimo zvinotorwa kubva kuYouTube, asi iyi haisisiri YouTube, asi chimwe chinhu, chakachengeteka uye chinodzorwa, sekunge wabvisa centipede muziso rako woiisa muchirongo chegirazi. Uye zvese zvinoenderana nemazano.

Source: www.habr.com

Voeg