ProHoster > Blog > nouvèl sou entènèt > Lanmò Koshchei se sou lis rekòmandasyon yo (èske li posib pou fè YouTube konfòtab ak an sekirite?)
Lanmò Koshchei se sou lis rekòmandasyon yo (èske li posib pou fè YouTube konfòtab ak an sekirite?)
Entwodiksyon an se kout: Mwen vle pale sou jwè a sou entènèt YouTube pou Android ak lis lokal, chanèl ak rekòmandasyon.
Entwodiksyon elaji:
Kèk tan de sa mwen te rankontre egzakteman menm pwoblèm ak otè a nan yon aplikasyon bèl bagay Lis blan chanèl, ak detèmine pou tèt mwen egzakteman menm atitid la anvè li: Mwen vle kapab bay pitit mwen an yon tablèt oswa smartphone ak desen anime de tan zan tan, men mwen pa ditou kontan ak kote, apre 2-3 klik, lis la. nan rekòmandasyon nan aplikasyon estanda - kliyan YouTube - pran timoun nan.
Malerezman, apre yo fin enstale aplikasyon Channel Whitelist la, yo te dekouvri yon lòt defo ki pi prozaik, men ki toujou fatal - NIH mwen (epi pi enpòtan an, pitit gason m nan) te jwenn koòdone li pa trè pratik, sitou apre abitid itilize jwè YouTube Kids la.
An jeneral, apre kèk tan mwen te pare pou fè pwòp aplikasyon mwen. Apre kèk tan, li te vin posib yo mete yon tag sou premye lage a.
Karakteristik prensipal:
Ajoute chanèl ou ak lis pi renmen yo - yo pral sove ak endis nan baz done lokal la
Nan lis ajoute, fèmen videyo ki pa nesesè si ou pa bezwen yo
Lis rekòmandasyon yo pwodwi owaza sèlman nan chanèl ak lis ki te ajoute nan aplikasyon an
Anba la a se yon apèsi sou karakteristik prensipal yo an plis detay, plis kèk detay teknik sou kòman yo jwe videyo YouTube nan aplikasyon android ou san yo pa itilize API Google ak anbalaj entènèt.
Sou ekran prensipal la ak sou ekran jwè a: rekòmandasyon o aza soti nan chanèl ki pa o aza
Rechèch enstantane nan baz done lokal yo
=>
Ajoute yon nouvo chanèl oswa playlist
Chèche pa non sou entènèt oswa mete yon adrès li te ye. Lis videyo yon chanèl oswa yon playlist sove nan baz done lokal la; ikon yo pa kache.
Playlist dinamik - jwe rezilta rechèch la
=>
Nan rekòmandasyon videyo yo pral sèlman videyo ki satisfè rechèch rechèch la.
Menm jan an tou, si ou louvri yon videyo ki soti nan paramèt playlist yo, sèlman videyo ki soti nan menm lis la ap parèt nan lis rekòmandasyon yo.
Playlists ak chanèl yo ka tanporèman etenn epi limen ankò
Tanpri sonje: videyo ki soti nan yon playlist ki andikape yo pral disparèt tou nan rezilta rechèch la, gade istwa ak nan lis favorites yo. Men, pa enkyete, yo pral parèt la ankò imedyatman apre lis la se vire sou ankò.
Ajoute yon videyo sou lis nwa a
Yon videyo bloke pa pral parèt nan rekòmandasyon, nan rezilta rechèch, epi yo pral disparèt nan lis la nan favorites ak nan istwa a gade. Videyo a ap toujou vizib nan paramèt playlist yo.
Gade lis nwa a ak re-pèmèt atik bloke pa erè: Anviwònman> meni header> Lis nwa
Videyo pi renmen ak istwa gade
Videyo pi renmen sou ekran jwè a make ak yon asterisk nan kwen anwo dwat.
Meni kontèks nan tit ekran an epi klike long nan galri ak lis
Kopi non oswa adrès yon videyo oswa playlist nan ekran an gade oswa nan nenpòt lis.
Kòmanse rapid - ajoute chanèl rekòmande ak lis
=>
Aplikasyon an pral imedyatman sanble ak Ekran ki anwo yo.
Chanèl ak lis ki pa nesesè yo ka fèmen oswa efase nan paramèt yo.
Li pa sou Google Play epi li pa pral nan fiti prè (Google entèdi aplikasyon ki kontoune API a epi analize sit entènèt yo, ki gen ladan lis chanèl mansyone oswa jwè NewPipe)
Kenbe nan tèt ou ke chanje ant diferan vèsyon ki soti nan diferan sous sou menm aparèy la pa pral travay akòz siyati diferan nan fichye apk la; anvan ou enstale vèsyon an soti nan yon nouvo sous, ou pral premye oblije efase vèsyon an enstale ansanm ak done yo - kachèt playlist la ak istwa Navigasyon (oswa konnen ki jan yo transfere done).
Detay teknik
Pa mande pou yon kont Google/YouTube, ou sèlman bezwen entènèt la, sèvi ak bibliyotèk sa yo:
kesyon: Èske li jeneralman legal yo grate sit entènèt san pèmisyon (oswa avèk yon entèdiksyon eksplisit) nan men otè yo? Google retire aplikasyon yo nan Google Play, ki pa sèvi ak API yo, men analize sit yo, paske yo vyole akò itilizatè yo. repons: nan kou, li legal, se ou menm ki zouti yo itilize pou li enfòmasyon ki disponib piblikman. Anplis de sa: Yon tribinal ameriken te legalize konplètman grate sit entènèt ak entèdi entèferans teknik ak li., men Gul ka gen yon opinyon diferan; pèsonèlman, mwen poko gen dezi pou ale nan yon tribinal Ameriken pou konvenk yo.
Kèk kòd
bibliyotèk NewPipeExtractor - pwojè sipò jwè Newpipe, pèmèt ou telechaje yon lis videyo pou yon chanèl espesifye oswa playlist, telechaje enfòmasyon detaye sou yon videyo pi popilè (sa ki vizib sou paj wèb videyo a), jwenn adrès ikòn videyo a, epi tou jwenn adrès videyo a. kouran.
Kòd pou chaje playlist la se yon ti kras ankonbran, kidonk mwen pa pral bay li isit la, pou moun ki enterese, gade nan kòd sous la, se fondamantalman yon klas. ContentLoader.
Ann wè ki jan yo jwenn adrès la nan yon kouran videyo soti nan adrès la nan paj videyo piblik la epi jwe li nan jwè a.
Li kirye ke apre sa ou toujou p ap kapab sèvi ak li, paske... egzanp yo pral plenyen sou klas Downloader ki manke a. Li ka kopye nan pwojè a soti nan anyè tès otomatik yo NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - travay pou vèsyon 0.17.4 (li sanble ke pati sa a te refè nan yon vèsyon pi nouvo nan bibliyotèk la, men nou toujou bezwen tcheke).
Jwenn adrès videyo a pa adrès paj videyo a sou sit entènèt YouTube la:
Jwè a pral exoplayer soti nan Google tèt li. Sa a se pa yon wrapper entènèt sou YouTube, men yon reyèl jwè entegre pou jwe nenpòt videyo, byen fleksib ak customizable. Li kapab tou jwe kouran videyo soti nan YouTube si ou bay li ak adrès ki kòrèk la. Nou jis resevwa adrès kouran an, kidonk ann wè ki jan yo voye li bay jwè a.
Nou pa pral konsidere tout nuans yo nan mete eleman jwè a sou ekran aplikasyon an (ou ka gade egzanp yo sou sit entènèt pwojè a oswa nan kòd la), nou pral sèlman gade nan ki jan yo kòmanse jwe yon videyo soti nan YouTube nan jwè a nan adrès ou resevwa pi wo a:
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);
}
}
Konnen Pwoblèm
Pa pral jwe videyo ki gen restriksyon laj ki mande pou konekte sou kont Google/YouTube ou
Si ou rankontre yon videyo piblik ki pa mande pou yon login, jwe nan navigatè a, men li pa jwe nan jwè a, voye yon rapò ensèk (li se byen posib ke pwoblèm nan te deja fiks nan nouvo vèsyon an NewPipeExtractor epi w ap sèlman bezwen mete ajou asanble a ak vèsyon sa a, pou egzanp).
Koòdone a ka ralanti si Entènèt la dousman (men li pa fèmen)
Nan fen an
Pitit gason m 'te deplase soti nan yon grenn nan yon televizyon entelijan Samsung, ki pa ka kouri aplikasyon pou android. Se poutèt sa, pi bon kontwòl paran an toujou pèsonèl.
Men, aplikasyon an te tounen ase pratik pou mwen kòmanse sèvi ak li tèt mwen. Premye enpresyon ki soti nan vèsyon yo k ap travay byen bonè se ke mwen te nan yon lòt mond. Tout kontni telechaje soti nan YouTube, men sa a se pa YouTube ankò, men yon lòt bagay, san danje epi kontwole, kòm si ou te pran yon santipèd soti nan je ou epi mete l 'nan yon bokal an vè. Epi li se tout sou rekòmandasyon yo.