Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá an réamhrá gearr: ba mhaith liom labhairt faoin seinnteoir YouTube ar líne le haghaidh Android le seinmliostaí, cainéil agus moltaí áitiúla.

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Réamhrá leathnaithe:
Tamall ó shin bhí an fhadhb chéanna agam le húdar feidhmchlár iontach Liosta Bán Cainéal, agus a chinneadh dom féin go díreach an dearcadh céanna ina leith: Ba mhaith liom a bheith in ann a thabhairt do mo leanbh tablet nó smartphone le cartúin ó am go chéile, ach níl mé sásta ar chor ar bith leis an áit, tar éis 2-3 cad a tharlaíonn, ar an liosta de mholtaí i bhfeidhmchláir chaighdeánacha - cliaint YouTube - glacann an leanbh.

Ar an drochuair, tar éis an t-iarratas Channel Whitelist a shuiteáil, thángthas ar locht eile níos prosaic, ach fós marfach - NIH I (agus, is tábhachtaí, mo mhac) nach raibh a chomhéadan an-áisiúil, go háirithe tar éis an nós úsáid a bhaint as an seinnteoir YouTube Kids.

Go ginearálta, tar éis roinnt ama bhí mé réidh le mo chur i bhfeidhm féin a dhéanamh. Tar éis roinnt ama, bhí sé indéanta clib a chur ar an gcéad eisiúint.

Príomhghnéithe:

  • Cuir na cainéil agus na seinmliostaí is fearr leat leis - déanfar iad a shábháil agus a innéacsú sa bhunachar sonraí áitiúil
  • Laistigh de seinmliostaí breise, múch físeáin neamhriachtanach mura bhfuil siad de dhíth ort
  • Ní ghintear liosta na moltaí ach go randamach ó chainéil agus ó sheinnliostaí a chuirtear leis an bhfeidhmchlár

Foinse oscailte, ceadúnas GPLv3: https://github.com/sadr0b0t/yashlang/

Anseo thíos tá forbhreathnú níos mine ar na príomhghnéithe, chomh maith le roinnt sonraí teicniúla ar conas físeáin YouTube a imirt i d'fheidhmchlár Android gan úsáid a bhaint as API Google agus cumhdaigh ghréasáin.

Ar an bpríomhscáileán agus ar an scáileán imreora: moltaí randamacha ó chainéil neamhrandamacha

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Cuardach meandrach sa bhunachar sonraí áitiúil

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) => Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Cuir cainéal nó seinmliosta nua leis

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Cuardaigh de réir ainm ar líne nó cuir isteach seoladh aitheanta. Sábháiltear liosta na bhfíseán de chainéil nó de sheinnliosta sa bhunachar sonraí áitiúil; níl na deilbhíní i dtaisce.

Seinmliosta dinimiciúil - imirt torthaí cuardaigh

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) => Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Sna moltaí físeáin ní bheidh ach físeáin a shásaíonn an cheist chuardaigh.

Ar an gcaoi chéanna, má osclaíonn tú físeán ó na socruithe seinmliosta, ní bheidh ach físeáin ón seinmliosta céanna le feiceáil sa liosta moltaí.

Is féidir seinmliostaí agus cainéil a mhúchadh go sealadach agus ar siúl arís

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tabhair faoi deara le do thoil: imeoidh físeáin ó sheinnliosta díchumasaithe ó thorthaí an chuardaigh, ón stair amhairc agus ón liosta ceanán. Ach ná bí buartha, beidh siad le feiceáil ansin arís díreach tar éis an seinmliosta a chur ar siúl arís.

Cuir físeán leis an liosta dubh

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Ní thaispeánfar físeán bactha i moltaí, i dtorthaí cuardaigh, agus imeoidh sé ón liosta ceanán agus ón stair féachana. Beidh an físeán fós le feiceáil sna socruithe seinmliosta.

Féach ar an liosta dubh agus athchumasaigh na míreanna a bhfuil bac orthu de dhearmad:
Socruithe > roghchlár ceanntásca > Liosta Dubh

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Físeáin is fearr leat agus stair féachana

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Tá na físeáin is fearr leat ar scáileán an imreora marcáilte le réiltín sa chúinne uachtarach ar dheis.

Roghchláir comhthéacs i dteideal an scáileáin agus cliceáil fada i dánlanna agus liostaí

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Cóipeáil ainm nó seoladh físeáin nó seinnliosta sa scáileán féachana nó in aon liosta.

Tús tapa - cuir cainéil agus seinmliostaí molta leis

Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?) => Tá bás Koshchei ar liosta na moltaí (an féidir YouTube a dhéanamh cluthar agus sábháilte?)

Beidh an feidhmchlár cuma láithreach ar na screenshots thuas.

Is féidir cainéil agus seinmliostaí nach bhfuil ag teastáil a mhúchadh nó a scriosadh sna socruithe.

Suiteáil

Leathanach tionscadail: https://github.com/sadr0b0t/yashlang/
i mBéarla: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
eisiúintí: https://github.com/sadr0b0t/yashlang/releases

Coinnigh i gcuimhne nach n-oibreoidh aistriú idir leaganacha éagsúla ó fhoinsí éagsúla ar an ngléas céanna mar gheall ar shínithe éagsúla an chomhaid apk; sula ndéantar an leagan a shuiteáil ó fhoinse nua, beidh ort ar dtús an leagan suiteáilte a scriosadh mar aon leis na sonraí - an taisce seinmliosta agus stair brabhsála (nó figiúr amach conas sonraí a aistriú).

Sonraí teicniúla

Níl cuntas Google/YouTube ag teastáil uait, níl uait ach an tIdirlíon, úsáideann na leabharlanna seo a leanas:

Foinse oscailte, ceadúnas GPLv3 saor in aisce.

ceist: An bhfuil sé dlíthiúil go ginearálta láithreáin ghréasáin a scrape gan cead (nó le toirmeasc sainráite) ó na húdair? Baineann Google aipeanna de Google Play, nach n-úsáideann a n-API, ach a gcuid suíomhanna a pharsáil, mar gheall ar sáraíonn siad a gcomhaontú úsáideora.
freagra: ar ndóigh, tá sé dlíthiúil, is fút féin atá sé cén uirlis le húsáid chun faisnéis atá ar fáil go poiblí a léamh. Ina theannta sin: Thug cúirt de chuid na Stát Aontaithe dleathach go hiomlán do scríobadh an láithreáin ghréasáin agus chuir cosc ​​ar chur isteach teicniúil air., ach b’fhéidir go bhfuil tuairim eile ag Gul; go pearsanta, níl fonn orm fós dul chuig cúirt i Meiriceá lena chur ina luí orthu.

Roinnt cód

leabharlann NewPipeExtractor - tionscadal tacaíochta imreoir Newpipe, ligeann duit liosta físeáin a íoslódáil le haghaidh cainéal nó seinmliosta sonraithe, faisnéis mhionsonraithe a íoslódáil faoi fhíseán cáiliúil (rud atá le feiceáil ar leathanach gréasáin an fhíseáin), faigh seoladh an deilbhín físeáin, agus seoladh an fhíseáin freisin. sruth.

Tá an cód chun an seinmliosta a luchtú rud beag an-chúng, mar sin ní thabharfaidh mé anseo é, dóibh siúd a bhfuil suim acu ann, féach ar an gcód foinseach, is rang é go bunúsach ContentLoader.

A ligean ar a fheiceáil conas a fháil ar an seoladh sruth físeán ó sheoladh an leathanaigh físeán poiblí agus é a imirt san imreoir.

Ceangail an leabharlann le
app/tógáil.gradle

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

Tá sé aisteach nach mbeidh tú fós in ann é a úsáid ina dhiaidh seo, mar... Beidh samplaí gearán mar gheall ar an rang Downloader ar iarraidh. Is féidir é a chóipeáil chuig an tionscadal ón eolaire tástálacha uathoibrithe NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - oibríonn sé le haghaidh leagan 0.17.4 (dealraíonn sé go ndearnadh an chuid seo a athdhéanamh i leagan níos nuaí den leabharlann, ach ní mór dúinn a sheiceáil fós).

Faigh seoladh an tsrutha físeáin trí sheoladh an leathanaigh físeáin ar shuíomh Gréasáin 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;
    }

Is féidir an seoladh físeáin ytVidUrl a bheith ina sheoladh poiblí ar leathanach aon fhíseáin ar shuíomh Gréasáin YouTube, mar shampla https://www.youtube.com/watch?v=pd2RlatmNRk

Beidh an t-imreoir sean-imreoir ó Google féin. Ní fillteán gréasáin é seo thar YouTube, ach fíor-imreoir leabaithe chun físeáin ar bith a imirt, solúbtha go leor agus inoiriúnaithe. Is féidir leis sruthanna físeáin a imirt ó YouTube freisin má sholáthraíonn tú an seoladh ceart dó. Fuair ​​​​muid an seoladh sruth díreach, mar sin a ligean ar a fheiceáil conas é a sheoladh chuig an imreoir.

Ceangail an leabharlann leis an tionscadal app/tógáil.gradle:

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

Ní mheasfaimid go léir an nuances a bhaineann leis an gcomhpháirt imreoir a chur ar scáileán an iarratais (is féidir leat breathnú ar na samplaí ar shuíomh Gréasáin an tionscadail nó sa chód), ní fheicfimid ach conas físeáin a imirt ó YouTube sa imreoir ag an seoladh a fuarthas thuas:

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

Ceisteanna Aitheanta

  • Ní sheinnfear físeáin le srianta aoise a éilíonn logáil isteach chuig do chuntas Google/YouTube

mar shampla: Ilya Muromets, Mosfilm Cinema Concern, Ruslan agus Lyudmila scannán 1, Mosfilm Scannán Concern

comhairle: cuir físeáin den sórt sin leis an liosta dubh nó iarr ar údar an fhíseáin an srian a socraíodh de dhearmad a bhaint.

  • Ní imreofar roinnt físeán craolta nach dtugann an tseirbhís ar ais fad nialasach lena n-aghaidh (i gcás físeáin dá leithéid, tá an fad sna liostaí agus sa ghailearaí marcáilte mar “[dur undef]”)

mar shampla: Fan leis! Gach eagrán de Soyuzmultfilm HD (Cartúin do pháistí), Cartún ó stiúideo Soyuzmultfilm, Cartúin is fearr Soyuzmultfilm, Cartún ó stiúideo Soyuzmultfilm

comhairle: cuir físeáin den sórt sin leis an liosta dubh.

  • Ní féidir físeáin nach bhfuil ar fáil ach trí naisc dhíreacha a áireamh ar an seinmliosta áitiúil, fiú má íoslódálann tú físeáin uile an úsáideora

mar shampla: Taming of Fire Eipeasóid 1, Mosfilm Cinema Concern

  • Má thagann tú trasna ar fhíseán poiblí nach dteastaíonn logáil isteach, a imríonn sa bhrabhsálaí, ach nach n-imríonn sé san imreoir, seol tuairisc ar fhabht (is féidir go bhfuil an fhadhb socraithe cheana féin sa leagan nua NewPipeExtractor agus ní bheidh ort ach an tionól a nuashonrú leis an leagan seo, mar shampla).

  • Seans go mbeidh moill ar an gcomhéadan má tá an tIdirlíon mall (ach gan é a mhúchadh)

Mar thoradh air sin,

Bhog mo mhac ó thaibléad go dtí teilifís chliste Samsung, nach bhfuil in ann feidhmchláir Android a rith. Mar sin, tá an rialú tuismitheoirí is fearr fós pearsanta.

Ach d'éirigh leis an bhfeidhmchlár a bheith áisiúil go leor dom chun é a úsáid mé féin. Ba é an chéad tuiscint ó na leaganacha luatha oibre ná go raibh mé i saol eile. Déantar an t-ábhar ar fad a íoslódáil ó YouTube, ach ní YouTube é seo a thuilleadh, ach rud éigin eile, sábháilte agus rialaithe, amhail is dá mba rud é gur thóg tú céadchosach as do shúil agus é a chur i jar gloine. Agus tá sé ar fad faoi na moltaí.

Foinse: will.com

Add a comment