Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Gabatarwar gajeru ce: Ina so in yi magana game da mai kunna kan layi na YouTube don Android tare da jerin waƙoƙi na gida, tashoshi da shawarwari.

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Fadada gabatarwa:
Wani lokaci da suka wuce na ci karo da matsala daidai da marubucin aikace-aikacen ban mamaki Channel Whitelist, kuma ya ƙaddara wa kaina daidai irin wannan hali game da shi: Ina so in ba da yaro na kwamfutar hannu ko smartphone tare da zane-zane daga lokaci zuwa lokaci, amma ba ni da farin ciki da inda, bayan 2-3 dannawa, jerin. na shawarwari a daidaitattun aikace-aikace - YouTube abokan ciniki - daukan yaro.

Abin baƙin ciki, bayan shigar da Channel Whitelist aikace-aikace, wani karin prosaic, amma har yanzu m aibi da aka gano - NIH I (kuma, mafi mahimmanci, dana) samu ta dubawa ba sosai dace, musamman bayan al'ada na yin amfani da YouTube Kids player.

Gabaɗaya, bayan ɗan lokaci na shirya don aiwatar da kaina. Bayan wani lokaci, ya zama mai yiwuwa a sanya alama akan sakin farko.

Babban fasali:

  • Ƙara tashoshi da lissafin waƙa da kuka fi so - za a adana su kuma a sanya su cikin bayanan gida
  • A cikin ƙarin lissafin waƙa, kashe bidiyon da ba dole ba idan ba ku buƙatar su
  • Ana samar da jerin shawarwarin ba da gangan ba daga tashoshi da lissafin waƙa da aka ƙara zuwa aikace-aikacen

Bude tushen, lasisin GPLv3: https://github.com/sadr0b0t/yashlang/

A ƙasa akwai bayyani na manyan abubuwan dalla-dalla, da wasu cikakkun bayanai na fasaha kan yadda ake kunna bidiyo YouTube a cikin aikace-aikacenku na Android ba tare da amfani da Google API da nade-naden yanar gizo ba.

A kan babban allon kuma akan allon mai kunnawa: shawarwarin bazuwar daga tashoshi marasa tushe

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Binciken nan take a cikin bayanan gida

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) => Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Ƙara sabon tasha ko lissafin waƙa

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Bincika da suna akan layi ko saka sanannen adireshin. An ajiye lissafin bidiyon tashoshi ko lissafin waƙa zuwa bayanan gida; gumaka ba a adana su ba.

Lissafin waƙa mai ƙarfi - kunna sakamakon bincike

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) => Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

A cikin shawarwarin bidiyo za a sami bidiyoyi kawai waɗanda suka gamsar da tambayar nema.

Hakazalika, idan ka buɗe bidiyo daga saitunan lissafin waƙa, bidiyo daga lissafin waƙa ɗaya kawai za su bayyana a cikin jerin shawarwarin.

Ana iya kashe lissafin waƙa da tashoshi na ɗan lokaci da sake kunnawa

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Lura: bidiyo daga jerin waƙoƙin da aka kashe su ma za su ɓace daga sakamakon bincike, tarihin kallo da kuma daga jerin waɗanda aka fi so. Amma kada ku damu, za su sake bayyana a wurin nan da nan bayan an sake kunna lissafin waƙa.

Ƙara bidiyo zuwa baƙar fata

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Ba za a nuna bidiyon da aka katange a cikin shawarwari ba, a cikin sakamakon bincike, kuma zai ɓace daga jerin abubuwan da aka fi so da kuma daga tarihin kallo. Bidiyon zai kasance a bayyane a cikin saitunan lissafin waƙa.

Duba jerin baƙaƙe kuma sake kunna abubuwan da aka katange bisa kuskure:
Saituna > Menu na kan kai > Lissafin baƙaƙe

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Bidiyon da aka fi so da tarihin kallo

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Bidiyon da aka fi so akan allon mai kunnawa ana yiwa alama alama a kusurwar dama ta sama.

Menu na mahallin a cikin taken allo da kuma dogon-danna a cikin jerin hotuna da jeri

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Kwafi sunan ko adireshin bidiyo ko lissafin waƙa a cikin allon kallo ko a kowane jeri.

Saurin farawa - ƙara shawarwarin tashoshi da lissafin waƙa

Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?) => Mutuwar Koshchei yana cikin jerin shawarwari (zai yiwu a sanya YouTube jin daɗi da aminci?)

Nan da nan aikace-aikacen zai yi kama da hotunan hotunan da ke sama.

Ana iya kashe ko share tashoshi da lissafin waƙa da ba a buƙata a cikin saitunan.

saitin

Shafin aikin: https://github.com/sadr0b0t/yashlang/
a Turanci: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
sakewa: https://github.com/sadr0b0t/yashlang/releases

Ka tuna cewa sauyawa tsakanin nau'ikan nau'ikan daban-daban daga tushe daban-daban akan na'urar iri ɗaya ba zai yi aiki ba saboda sa hannu daban-daban na fayil ɗin apk; kafin shigar da sigar daga sabon tushe, da farko za ku share sigar da aka shigar tare da bayanan - cache lissafin waƙa da tarihin bincike (ko gano yadda ake canja wurin bayanai).

Bayanin fasaha

Baya buƙatar asusun Google/YouTube, Intanet kawai kuna buƙatar, yana amfani da ɗakunan karatu masu zuwa:

Buɗe tushen, lasisin GPLv3 kyauta.

Tambaya: Shin yana da doka gabaɗaya don goge gidajen yanar gizo ba tare da izini ba (ko tare da haramcin bayyane) daga marubutan? Google yana cire apps daga Google Play, waɗanda ba sa amfani da API ɗin su, amma suna rarraba rukunin yanar gizon su, saboda sun keta yarjejeniyar masu amfani da su.
amsa: ba shakka, doka ce, ya rage naku wanne kayan aikin da za ku yi amfani da su don karanta bayanan da ake samu a bainar jama'a. Bugu da ƙari: Wata kotu a Amurka ta ba da izinin goge gidan yanar gizon gaba ɗaya tare da hana kutsawa cikin fasaha da shi., amma Gul na iya samun ra'ayi na daban; ni kaina, har yanzu ba ni da sha'awar zuwa kotun Amurka don shawo kan su.

Wasu code

Laburare NewPipeExtractor - aikin tallafin player Sabo, ba ka damar zazzage jerin bidiyo don ƙayyadadden tashoshi ko lissafin waƙa, zazzage cikakken bayani game da sanannen bidiyo (abin da ake iya gani akan shafin yanar gizon bidiyon), sami adireshin gunkin bidiyo, da kuma samun adireshin bidiyon. rafi.

Lambar don loda lissafin waƙa yana da ɗan wahala, don haka ba zan ba shi anan ba, ga masu sha'awar, duba lambar tushe, ainihin aji ne. Loader Content.

Bari mu ga yadda ake samun adireshin rafi na bidiyo daga adireshin shafin bidiyo na jama'a kuma mu kunna shi a cikin na'urar.

Haɗa ɗakin karatu zuwa
app/build.gradle

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

Yana da ban sha'awa cewa bayan wannan har yanzu ba za ku iya amfani da shi ba, saboda ... misalai za su koka game da bacewar ajin Mai saukewa. Ana iya kwafi shi zuwa aikin daga littafin jagorar gwaji mai sarrafa kansa NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - yana aiki don sigar 0.17.4 (da alama an sake gyara wannan ɓangaren a cikin sabon sigar ɗakin karatu, amma har yanzu muna buƙatar bincika).

Samu adireshin rafin bidiyo ta adireshin shafin bidiyo akan gidan yanar gizon 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;
    }

Adireshin bidiyo ytVidUrl zai iya zama adireshin jama'a na shafin kowane bidiyo akan gidan yanar gizon YouTube, misali https://www.youtube.com/watch?v=pd2RlatmNRk

Mai kunnawa zai exoplayer daga Google kanta. Wannan ba rubutun yanar gizo ba ne akan YouTube, amma ainihin ɗan wasa ne don kunna kowane bidiyo, mai sauƙin sassauƙa kuma ana iya daidaita shi. Hakanan yana iya kunna rafukan bidiyo daga YouTube idan kun samar da shi da adireshin daidai. Mun karɓi adireshin rafi, don haka bari mu ga yadda ake aika shi ga mai kunnawa.

Haɗa ɗakin karatu zuwa aikin app/build.gradle:

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

Ba za mu yi la'akari da duk nuances na sanya bangaren mai kunnawa akan allon aikace-aikacen (zaku iya duba misalai akan gidan yanar gizon aikin ko a cikin lambar), za mu kalli yadda ake fara kunna bidiyo daga YouTube a cikin mai kunnawa a. adireshin da aka samu a sama:

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

Abubuwan da aka sani

  • Ba zai kunna bidiyo tare da ƙuntatawa na shekaru waɗanda ke buƙatar shiga cikin asusun Google/YouTube ɗin ku ba

misali: Ilya Muromets, Mosfilm Cinema Concern, Ruslan da Lyudmila fim 1, Mosfilm Film Concern

shawara: ƙara irin waɗannan bidiyon zuwa jerin baƙaƙe ko tambayi marubucin bidiyon don cire ƙuntatawa da aka saita bisa kuskure.

  • Wasu bidiyoyin watsa shirye-shirye waɗanda sabis ɗin ya dawo tsayin sifili ba zai yi wasa ba (don irin waɗannan bidiyon, tsawon lokacin da ke cikin jeri da gallery ana yiwa alama “[dur undef]”)

misali: Jira shi! Duk Batutuwan Soyuzmultfilm HD (Majigin yara ga yara), zane mai ban dariya daga ɗakin studio na Soyuzmultfilm, Manyan zane-zane Soyuzmultfilm, Cartoons daga ɗakin studio na Soyuzmultfilm

shawara: ƙara irin waɗannan bidiyoyi zuwa jerin baƙi.

  • Bidiyoyin da ke samuwa ta hanyar haɗin kai kai tsaye ba za a iya haɗa su cikin lissafin waƙa na gida ba, ko da kun zazzage duk bidiyon mai amfani.

misali: Taming of Wuta Episode 1, Mosfilm Cinema Concern

  • Idan kun ci karo da bidiyon jama'a wanda baya buƙatar shiga, yana kunna a cikin burauzar, amma ba ya kunna a cikin mai kunnawa, aika rahoton bug (yana yiwuwa an riga an gyara matsalar a cikin sabon sigar). NewPipeExtractor kuma kawai kuna buƙatar sabunta taron tare da wannan sigar, misali).

  • Mai dubawa na iya raguwa idan intanit yana jinkirin (amma ba a kashe ba)

A ƙarshe

Ɗana ya koma daga kwamfutar hannu zuwa Samsung smart TV, wanda ba zai iya gudanar da aikace-aikacen Android ba. Sabili da haka, mafi kyawun kulawar iyaye har yanzu na sirri ne.

Amma aikace-aikacen ya zama mai dacewa don in fara amfani da shi da kaina. Ra'ayi na farko daga nau'ikan aiki na farko shine cewa ina cikin wata duniyar. Ana zazzage duk abubuwan da ke cikin YouTube, amma wannan ba YouTube ba ne, amma wani abu dabam, mai aminci da sarrafawa, kamar idan ka cire centipede daga idonka ka saka a cikin gilashin gilashi. Kuma duk game da shawarwarin ne.

source: www.habr.com

Add a comment