Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Kynningin er stutt: Ég vil tala um YouTube netspilarann ​​fyrir Android með staðbundnum spilunarlistum, rásum og ráðleggingum.

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Útvíkkuð kynning:
Fyrir nokkru síðan lenti ég í nákvæmlega sama vandamáli og höfundur frábærrar umsóknar Hvítlisti rásar, og ákvað fyrir sjálfan mig nákvæmlega sömu afstöðu til þess: Ég vil geta gefið barninu mínu spjaldtölvu eða snjallsíma með teiknimyndum af og til, en ég er alls ekki ánægð með hvar, eftir 2-3 smelli, listinn af ráðleggingum í stöðluðum forritum - YouTube viðskiptavinir - tekur barnið.

Því miður, eftir að Rásar hvítlistaforritið var sett upp, uppgötvaðist annar prosaískari, en samt banvænni galli - NIH Mér (og síðast en ekki síst, sonur minn) fannst viðmót þess ekki mjög þægilegt, sérstaklega eftir vanann að nota YouTube Kids spilarann.

Almennt, eftir nokkurn tíma var ég tilbúinn að gera mína eigin útfærslu. Eftir nokkurn tíma varð hægt að setja merki á fyrstu útgáfuna.

Lykil atriði:

  • Bættu við uppáhaldsrásunum þínum og spilunarlistum - þeir verða vistaðir og skráðir í staðbundnum gagnagrunni
  • Slökktu á óþarfa myndböndum í bættum spilunarlistum ef þú þarft ekki á þeim að halda
  • Listi yfir meðmæli er aðeins búinn til af handahófi úr rásum og spilunarlistum sem bætt er við forritið

Opinn uppspretta, GPLv3 leyfi: https://github.com/sadr0b0t/yashlang/

Hér að neðan er yfirlit yfir helstu eiginleika í smáatriðum, auk nokkurra tæknilegra upplýsinga um hvernig á að spila YouTube myndbönd í Android forritinu þínu án þess að nota Google API og vefumbúðir.

Á aðalskjánum og á spilaraskjánum: handahófskenndar ráðleggingar frá rásum sem ekki eru tilviljanakenndar

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Augnablik leit í staðbundnum gagnagrunni

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) => Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Bættu við nýrri rás eða spilunarlista

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Leitaðu eftir nafni á netinu eða settu inn þekkt heimilisfang. Listi yfir myndbönd rásar eða spilunarlista er vistaður í staðbundnum gagnagrunni; tákn eru ekki í skyndiminni.

Kvikur lagalisti - spilaðu leitarniðurstöður

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) => Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Í vídeóráðleggingunum verða aðeins myndbönd sem uppfylla leitarfyrirspurnina.

Á sama hátt, ef þú opnar myndskeið úr lagalistastillingunum, munu aðeins myndbönd frá sama lagalista birtast á listanum yfir meðmæli.

Hægt er að slökkva tímabundið á spilunarlistum og rásum og kveikja á þeim aftur

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Vinsamlegast athugið: myndbönd af óvirkum spilunarlista hverfa einnig úr leitarniðurstöðum, áhorfsferli og af uppáhaldslistanum. En ekki hafa áhyggjur, þær birtast þar aftur strax eftir að kveikt er á lagalistanum aftur.

Bættu myndbandi við svarta listann

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Lokað myndband mun ekki birtast í meðmælum, í leitarniðurstöðum og hverfur af listanum yfir eftirlæti og úr áhorfsferlinum. Myndbandið verður enn sýnilegt í stillingum lagalistans.

Skoðaðu svarta listann og virkjaðu aftur atriði sem hafa verið læst fyrir mistök:
Stillingar > hausvalmynd > Svartur listi

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Uppáhalds myndbönd og áhorfsferill

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Uppáhaldsmyndbönd á spilaraskjánum eru merkt með stjörnu í efra hægra horninu.

Samhengisvalmyndir í titil skjásins og langur-smelltu í galleríum og listum

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Afritaðu nafn eða heimilisfang myndskeiðs eða spilunarlista á skoðunarskjánum eða hvaða lista sem er.

Fljótleg byrjun - bættu við ráðlögðum rásum og spilunarlistum

Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?) => Dauði Koshchei er á listanum yfir meðmæli (er hægt að gera YouTube notalegt og öruggt?)

Forritið mun strax líta út eins og skjámyndirnar hér að ofan.

Hægt er að slökkva á óþörfum rásum og spilunarlistum eða eyða þeim í stillingunum.

Uppsetning

Verkefnasíða: https://github.com/sadr0b0t/yashlang/
á ensku: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
gefur út: https://github.com/sadr0b0t/yashlang/releases

Hafðu í huga að það að skipta á milli mismunandi útgáfur frá mismunandi aðilum á sama tæki mun ekki virka vegna mismunandi undirskrifta apk skrárinnar; áður en þú setur upp útgáfuna frá nýjum uppruna þarftu fyrst að eyða uppsettu útgáfunni ásamt gögnunum - skyndiminni lagalistans og vafraferilsins (eða finna út hvernig á að flytja gögn).

Tæknilegar upplýsingar

Þarf ekki Google/YouTube reikning, þú þarft aðeins internetið, notar eftirfarandi bókasöfn:

Opinn uppspretta, ókeypis GPLv3 leyfi.

spurning: Er almennt löglegt að skafa vefsíður án leyfis (eða með skýru banni) frá höfundum? Google fjarlægir forrit af Google Play, sem nota ekki API þeirra, en flokka síður þeirra, vegna þess að þeir brjóta notendasamning sinn.
svar: auðvitað er það löglegt, það er undir þér komið hvaða tól þú átt að nota til að lesa opinberar upplýsingar. Ennfremur: Bandarískur dómstóll hefur alfarið lögleitt vefskrap og bannað tæknilega truflun á henni., en Gul kann að hafa aðra skoðun; persónulega hef ég ekki enn löngun til að fara fyrir amerískan dómstól til að sannfæra þá.

Einhver kóða

Bókasafnið NewPipeExtractor - stuðningsverkefni leikmanna New Pipe, gerir þér kleift að hlaða niður lista yfir myndbönd fyrir tiltekna rás eða spilunarlista, hlaða niður nákvæmum upplýsingum um frægt myndband (það sem er sýnilegt á vefsíðu myndbandsins), fá heimilisfang myndskeiðstáknsins og einnig fá heimilisfang myndbandsins streymi.

Kóðinn til að hlaða spilunarlistanum er svolítið fyrirferðarmikill, svo ég mun ekki gefa hann hér, fyrir áhugasama, kíkið á frumkóðann, hann er í grundvallaratriðum flokkur ContentLoader.

Við skulum sjá hvernig á að fá heimilisfang myndbandsstraums frá heimilisfangi opinberu myndbandssíðunnar og spila það í spilaranum.

Tengdu bókasafnið við
app/build.gradle

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

Það er forvitnilegt að eftir þetta muntu samt ekki geta notað það, því ... dæmi munu kvarta undan Downloader bekknum sem vantar. Það er hægt að afrita það í verkefnið úr sjálfvirku prófunarskránni NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - virkar fyrir útgáfu 0.17.4 (svo virðist sem þessi hluti hafi verið endurgerður í nýrri útgáfu af bókasafninu, en við þurfum samt að athuga).

Fáðu heimilisfang myndbandsstraumsins með heimilisfangi myndbandssíðunnar á YouTube vefsíðunni:

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

Vídeóvistfangið ytVidUrl getur verið almennt heimilisfang síðu hvers myndskeiðs á YouTube vefsíðunni, til dæmis https://www.youtube.com/watch?v=pd2RlatmNRk

Leikmaðurinn mun fyrrverandi leikmaður frá Google sjálfu. Þetta er ekki vefur umbúðir yfir YouTube, heldur raunverulegur innbyggður spilari til að spila hvaða myndbönd sem er, nokkuð sveigjanleg og sérhannaðar. Það getur líka spilað myndbandsstrauma frá YouTube ef þú gefur það upp rétt heimilisfang. Við fengum bara netfang straumsins, svo við skulum sjá hvernig á að senda það til spilarans.

Tengdu bókasafnið við verkefnið app/build.gradle:

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

Við munum ekki íhuga öll blæbrigði þess að setja spilarahlutann á forritaskjáinn (þú getur skoðað dæmin á vefsíðu verkefnisins eða í kóðanum), við munum aðeins skoða hvernig á að byrja að spila myndband frá YouTube í spilaranum á heimilisfangið sem barst hér að ofan:

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

Þekkt mál

  • Mun ekki spila myndbönd með aldurstakmörkunum sem krefjast innskráningar á Google/YouTube reikninginn þinn

til dæmis: Ilya Muromets, Mosfilm Cinema Concern, Ruslan og Lyudmila mynd 1, Mosfilm Film Concern

ráð: bættu slíkum myndböndum á svarta listann eða biddu höfund myndbandsins að fjarlægja takmörkunina sem var sett fyrir mistök.

  • Sum útsendingarmyndbönd sem þjónustan skilar núlllengd fyrir munu ekki spilast (fyrir slík myndbönd er lengdin á listunum og myndasafninu merkt sem „[dur undef]“)

til dæmis: Bíddu eftir því! Öll tölublöð af Soyuzmultfilm HD (teiknimyndir fyrir börn), teiknimyndir frá Soyuzmultfilm stúdíóinu, Topp teiknimyndir Soyuzmultfilm, Teiknimyndir frá Soyuzmultfilm stúdíóinu

ráð: bættu slíkum myndböndum á svarta listann.

  • Vídeó sem eru aðeins fáanleg með beinum hlekkjum mega ekki vera með á staðbundnum spilunarlista, jafnvel þó þú hafir hlaðið niður öllum myndböndum notandans

til dæmis: Taming of Fire 1. þáttur, Mosfilm Cinema Concern

  • Ef þú rekst á opinbert myndband sem krefst ekki innskráningar, spilar í vafranum, en spilar ekki í spilaranum, sendu þá villutilkynningu (það er alveg mögulegt að vandamálið hafi þegar verið lagað í nýju útgáfunni NewPipeExtractor og þú þarft aðeins að uppfæra samsetninguna með þessari útgáfu, til dæmis).

  • Viðmótið getur hægst ef internetið er hægt (en ekki slökkt á því)

Þar af leiðandi,

Sonur minn fór úr spjaldtölvu yfir í Samsung snjallsjónvarp, sem getur ekki keyrt Android forrit. Þess vegna er besta foreldraeftirlitið enn persónulegt.

En forritið reyndist nógu þægilegt til að ég gæti byrjað að nota það sjálfur. Fyrstu hrifin af fyrstu vinnuútgáfunum var að ég væri í öðrum heimi. Allt efni er sótt af YouTube, en þetta er ekki lengur YouTube, heldur eitthvað annað, öruggt og stjórnað, eins og þú hafir tekið margfætlu úr auganu og sett í glerkrukku. Og þetta snýst allt um tilmælin.

Heimild: www.habr.com

Bæta við athugasemd