ПроХостер > блог > интернет вести > Смрт Косхцхеија је на листи препорука (да ли је могуће да Јутјуб буде удобан и безбедан?)
Смрт Косхцхеија је на листи препорука (да ли је могуће да Јутјуб буде удобан и безбедан?)
Увод је кратак: желим да причам о ИоуТубе онлајн плејеру за Андроид са локалним плејлистама, каналима и препорукама.
Проширени увод:
Пре неког времена наишао сам на потпуно исти проблем као и аутор дивне апликације Бела листа канала, и одредио за себе потпуно исти став према томе: Желим да свом детету с времена на време дам таблет или паметни телефон са цртаним филмовима, али уопште нисам задовољан где се, после 2-3 клика, листа препорука у стандардним апликацијама - ИоуТубе клијенти - узима дете.
Нажалост, након инсталирања апликације Цханнел Вхителист, откривена је још једна прозаичнија, али ипак фатална мана - НИХ (и, што је најважније, мој син) сматрао је да њен интерфејс није баш згодан, посебно након навике да користим ИоуТубе Кидс плејер.
Генерално, након неког времена био сам спреман да направим сопствену имплементацију. Након неког времена, постало је могуће ставити ознаку на прво издање.
Кључне карактеристике:
Додајте своје омиљене канале и листе песама - они ће бити сачувани и индексирани у локалној бази података
У оквиру додатих плејлиста искључите непотребне видео снимке ако вам нису потребни
Листа препорука се генерише насумично само од канала и плејлиста додатих апликацији
Испод је детаљнији преглед главних функција, као и неке техничке детаље о томе како да репродукујете ИоуТубе видео снимке у вашој Андроид апликацији без коришћења Гоогле АПИ-ја и веб омотача.
На главном екрану и на екрану плејера: насумичне препоруке са ненасумичних канала
Тренутна претрага у локалној бази података
=>
Додајте нови канал или плејлисту
Претражујте по имену на мрежи или унесите познату адресу. Листа видео снимака канала или плејлисте се чува у локалној бази података; иконе се не кеширају.
Динамичка листа за репродукцију - репродукујте резултате претраге
=>
У видео препорукама ће бити само видео снимци који задовољавају упит за претрагу.
Слично томе, ако отворите видео из подешавања листе за репродукцију, само видео снимци са исте плејлисте ће се појавити на листи препорука.
Плејлисте и канали се могу привремено искључити и поново укључити
Имајте на уму: видео снимци са онемогућене плејлисте ће такође нестати из резултата претраге, историје гледања и листе фаворита. Али не брините, они ће се тамо поново појавити одмах након што се листа за репродукцију поново укључи.
Додајте видео на црну листу
Блокирани видео неће бити приказан у препорукама, у резултатима претраге и нестаће са листе омиљених и из историје гледања. Видео ће и даље бити видљив у подешавањима плејлисте.
Погледајте црну листу и поново омогућите ставке блокиране грешком: Подешавања > мени заглавља > Црна листа
Омиљени видео снимци и историја гледања
Омиљени видео снимци на екрану плејера су означени звездицом у горњем десном углу.
Контекстуални менији у наслову екрана и дуги клик у галеријама и листама
Копирајте име или адресу видеа или листе за репродукцију на екрану за гледање или на било којој листи.
Брзи почетак - додајте препоручене канале и листе песама
=>
Апликација ће одмах изгледати као на слици изнад.
Непотребни канали и листе песама се могу искључити или избрисати у подешавањима.
Није на Гоогле Плаи-у и неће бити у блиској будућности (Гугл забрањује апликације које заобилазе АПИ и анализирају њихову веб локацију, укључујући поменуту белу листу канала или плејер НевПипе)
Имајте на уму да пребацивање између различитих верзија из различитих извора на истом уређају неће радити због различитих потписа апк датотеке; пре него што инсталирате верзију из новог извора, прво ћете морати да избришете инсталирану верзију заједно са подацима - кеш плејлисте и историју прегледања (или откријте како да пренесете податке).
Технички детаљи
Не захтева Гоогле/ИоуТубе налог, потребан вам је само интернет, користи следеће библиотеке:
питање: Да ли је генерално легално скидати веб странице без дозволе (или уз изричиту забрану) аутора? Гоогле уклања апликације са Гоогле Плаи-а, који не користе свој АПИ, већ анализирају своје сајтове, јер крше свој кориснички уговор. одговор: наравно, легално је, на вама је који алат ћете користити за читање јавно доступних информација. У наставку: Амерички суд је у потпуности легализовао стругање веб странице и забранио техничко мешање у њега., али Гул можда има другачије мишљење; лично, ја још немам жељу да идем на амерички суд да их убеђујем.
Неки код
библиотека НевПипеЕктрацтор - пројекат подршке играчима НевПипе, омогућава вам да преузмете листу видео снимака за одређени канал или плејлисту, преузмете детаљне информације о познатом видео снимку (оно што је видљиво на веб страници видео снимка), добијете адресу иконе видеа, а такође и адресу видео снимка поток.
Код за учитавање плејлисте је мало гломазан, па га нећу давати овде, за заинтересоване погледајте изворни код, то је у суштини класа ЦонтентЛоадер.
Хајде да видимо како да добијемо адресу видео стрима са адресе јавне видео странице и пустимо га у плејеру.
Занимљиво је да после овога и даље нећете моћи да га користите, јер... примери ће се жалити на класу Довнлоадер која недостаје. Може се копирати у пројекат из директоријума аутоматизованих тестова НевПипеЕктрацтор/ектрацтор/срц/тест/јава/орг/сцхаби/невпипе/Довнлоадер.јава - ради за верзију 0.17.4 (изгледа да је овај део преуређен у новијој верзији библиотеке, али још треба да проверимо).
Добијте адресу видео стрима према адреси видео странице на ИоуТубе веб локацији:
Играч ће бити ЕкоПлаиер од самог Гугла. Ово није веб омотач преко ИоуТубе-а, већ прави уграђени плејер за репродукцију било којих видео записа, прилично флексибилан и прилагодљив. Такође може да репродукује видео стримове са ИоуТубе-а ако му наведете тачну адресу. Управо смо добили адресу стрима, па да видимо како да је пошаљемо играчу.
Нећемо разматрати све нијансе постављања компоненте плејера на екран апликације (можете погледати примере на веб локацији пројекта или у коду), само ћемо погледати како да почнете да репродукујете видео са ИоуТубе-а у плејеру на адреси горе примљена адреса:
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);
}
}
Познати проблеми
Неће пуштати видео снимке са старосним ограничењима који захтевају пријаву на ваш Гоогле/ИоуТубе налог
савет: додајте такве видео снимке на црну листу или замолите аутора видеа да уклони ограничење које је постављено грешком.
Неки емитовани видео снимци за које услуга враћа нулту дужину неће се репродуковати (за такве видео снимке, трајање на листама и галерији је означено као „[дур ундеф]“)
Ако наиђете на јавни видео који не захтева пријављивање, репродукује се у претраживачу, али се не репродукује у плејеру, пошаљите извештај о грешци (сасвим је могуће да је проблем већ решен у новој верзији НевПипеЕктрацтор и мораћете само да ажурирате склоп са овом верзијом, на пример).
Интерфејс може успорити ако је интернет спор (али није искључен)
Као резултат тога,
Мој син је прешао са таблета на Самсунг паметни ТВ, који не може да покреће Андроид апликације. Стога је најбоља родитељска контрола и даље лична.
Али испоставило се да је апликација довољно згодна да и сам почнем да је користим. Први утисак из раних радних верзија био је да сам у другом свету. Сав садржај се преузима са Јутјуба, али ово више није Јутјуб, већ нешто друго, безбедно и контролисано, као да сте стоногу извадили из ока и ставили у стаклену теглу. И све је у препорукама.