Cara melindungi anak Anda dari sampah di YouTube dan membuat pemutar khusus dengan daftar saluran putih

Anda dapat berdebat untuk waktu yang lama tentang topik apakah perlu memberi anak-anak akses ke tablet dan smartphone. Seseorang mengatakan bahwa itu berbahaya bagi mata atau jiwa, seseorang - bahwa orang tua harus bermain dan membaca dengan anak-anak mereka sendiri, dan tidak mencoba untuk memagari mereka dengan gadget. Apa ciri khasnya, paling sering hal ini dikatakan oleh orang yang tidak memiliki anak sendiri. Dan mereka tidak tahu apa itu kebahagiaan - ketika anak itu terdiam selama setidaknya setengah jam, berhenti merusak segala sesuatu di sekitarnya, dengan tenang berbaring di sofa dan menonton kartun. Ada satu argumen lagi - anak-anak secara sensitif mengulang semuanya setelah orang tua, jika orang tua terus-menerus duduk dengan tangan di telepon, sangat sulit untuk menjelaskan kepada anak-anak mengapa orang tua dapat dan bukan mereka.



Secara umum, Anda dapat melemparkan saya tomat busuk, tetapi anak saya, yang sekarang tanpa dua hari selama tiga tahun, kadang-kadang berbaring dengan tablet di sofa dan menonton kartun di YouTube.


Sayangnya, saya segera menyadari bahwa YouTube anak-anak hanyalah HELLY TRASH. Tentang itu bahkan di HabrΓ© sudah ada terjemahan dari artikel itu . Saluran anak-anak adalah semacam cesspool tak berdasar yang dipenuhi dengan video vyrviglaznymi seperti "menyebarkan seratus kejutan yang lebih menyenangkan", "sajak bodoh dengan grafis 3D celaka untuk musik berisik" dan "mengendarai mobil di Beam NG ke komentar bodoh". Untuk beberapa alasan, semua ini sangat menarik bagi anak-anak muda yang buru-buru mengklik video tersebut segera setelah mereka melihatnya di video yang direkomendasikan. Dan YouTube tidak memungkinkan Anda untuk mengelola rekomendasi. Bahkan memberi anak saya tablet dengan kartun β€œnormal” dinyalakan, setelah beberapa menit saya melihat bagaimana dia menemukan telur coklat terkutuk ini lagi dalam dua klik pada rekomendasi dan mulai menempel ke dalamnya lagi.


Sudah cukup bagi saya, saya memutuskan. Dan dia mulai melihat aplikasi untuk menonton YouTube, memungkinkan Anda untuk memilih daftar saluran dan hanya menampilkan video dari saluran ini. Bagaimana saya melakukannya - di bawah luka.


Berikut adalah salah satu contoh video thrash yang akan kami lawan. Shitty membuat animasi 3D yang tidak masuk akal untuk musik bodoh - dan 142 juta tampilan. Untuk beberapa alasan, video anak-anak seperti itu hanya zombifikasi, mereka siap untuk meninjau dan merevisinya.



Sebagai perbandingan, video paling keren di mana Chris Hadfield menyanyikan gitar di ISS hanya memiliki 40 juta penayangan, dan klip OK GO yang indah dengan gravitasi nol nyata (tanpa kabel dan chromakey, hanya gravitasi nol jujur ​​di atas pesawat khusus) - hanya 12 juta, sepuluh kali kurang.


Ngomong-ngomong, pengiklan di YouTube sendiri tidak senang dengan popularitas saluran anak-anak , karena menampilkan iklan pada mereka adalah pemborosan anggaran. Anak-anak menonton iklan, kadang-kadang mereka bahkan mengklik, tetapi mereka tidak membeli apa pun, dan jutaan tampilan dengan cepat menghabiskan anggaran.


Pernyataan masalah


Saya harus segera mengatakan bahwa saya tidak menetapkan tugas untuk membuat aplikasi yang tidak dapat ditembus untuk anak-anak. Upaya semacam itu sudah ada, termasuk di sini di hub - semuanya terpotong di sana berturut-turut, sehingga anak tidak dapat keluar dari aplikasi, membeli sesuatu, membuka browser, dll. Ada opsi dengan kunci perangkat keras, porta yang dinonaktifkan, Android shells kustom dan kesulitan lainnya (misalnya, di sini adalah artikel untuk 2012, proyek ini tampaknya masih hidup). Tapi semua ini masuk akal untuk anak-anak yang lebih besar yang sudah menjelajahi kemungkinan gadget mereka. Untuk anak-anak berusia 2-3 tahun, tidak diperlukan perlindungan khusus, mereka cukup senang menonton video dan dari waktu ke waktu menyodok preview video lainnya. Yang utama adalah bahwa video-video ini harus menjadi apa yang Anda butuhkan, dan bukan apa yang YouTube tawarkan (dan ia akan menawarkan telur coklat dan jari-jari bayi yang tak ada habisnya).


Dari sinilah muncul daftar persyaratan:


  • Daftar Saluran Kustom
  • Melindungi dari perubahan (bukan dari perubahan yang tidak disengaja, karena anak-anak dewasa yang licik sudah memiliki banyak cara untuk mengidentifikasi kata sandi orang tua mereka)
  • Aplikasi itu sendiri mirip dengan YouTube, itu memutar video di sebelah kiri, di sebelah kanan ada kolom thumbnail yang dapat Anda klik
  • Kasus penggunaan utama adalah menusuk secara acak melalui video, anak, secara umum, tidak peduli apa yang harus ditonton

Pada saat yang sama, aplikasi terdiri dari dua bagian utama: mencari dan mengatur saluran menggunakan YouTube Data API dan kemudian memutar video. Terlebih lagi, saat ini saya telah menemukan dua opsi untuk memutar video di dalam aplikasi saya sendiri:


API YouTube Android Player


https://developers.google.com/youtube/android/player/


Ini adalah cara resmi untuk memutar video di aplikasi android Anda. Agar dapat berfungsi di perangkat pengguna, aplikasi YouTube resmi harus sudah diinstal, yang dalam komposisinya mencakup layanan tertentu yang dapat digunakan dari aplikasi lain. Jadi API Pemutar ini adalah perpustakaan kecil yang berinteraksi dengan aplikasi yang diinstal secara terpisah.


Pada awalnya saya menggunakannya, tetapi setelah beberapa waktu menggunakannya ternyata ia memiliki masalah kritis. Anda tidak dapat benar-benar menyesuaikan penampilan pemain di dalamnya, khususnya, mengontrol tombol (Anda hanya dapat menyembunyikan semuanya, tetapi kemudian Anda juga akan kehilangan tombol mode layar penuh). Dan pada panel kontrol pemain ada tombol buruk "buka untuk menonton di YouTube" yang membuka aplikasi resmi (yang harus ada di perangkat), di mana tidak ada lagi penyaringan. Dan anak-anak dengan mudah (secara tidak sengaja atau tidak) mengkliknya, pergi ke aplikasi tanpa filter, dan setelah beberapa menit saya sudah mendengar "jari bayi, jari bayi di mana Anda" lagi dan melihat beberapa jenis mata bengkok mata di layar.


Sedikit lebih banyak sampah yang ditemukan anak-anak dalam beberapa klik. Lebih dari 900 juta tampilan!



Oleh karena itu, saya menolak pemain resmi, menemukan penggantinya dalam bentuk perpustakaan berikut.


Android YouTube Player


https://github.com/PierfrancescoSoffritti/android-youtube-player


Perpustakaan tampaknya menjadi pembungkus WebView yang mengontrol pemutar web melalui JavaScript API-nya. Manfaat - kemampuan untuk sepenuhnya menyesuaikan antarmuka.


Inisialisasi pemain sedikit tidak jelas, terutama setelah beralih dari perpustakaan resmi:


  1. Dapatkan pandangan kami tentang kelas com.pierfrancescosoffritti.androidyoutubeplayer.player.YouTubePlayerView
  2. Panggil dia menginisialisasi (), melewati pendengar
  3. Metode onInitSuccess (@Nonnull YouTubePlayer final youTubePlayer) dipanggil pada pendengar, yang menerima instance dari objek pemain. Ini satu-satunya cara untuk mendapatkannya. Hingga saat ini, proses inisialisasi identik dengan klien resmi
  4. Kami memanggil metode addListener () pada pemain, meneruskan pendengar lain ke dalamnya (lebih banyak pendengar ke dewa pendengar!)
  5. Metode onReady () dipanggil pada pendengar ini - hanya setelah saat ini Anda dapat mengunduh dan menampilkan video dan menggunakan pemutar. Jika Anda salah mencoba memuat sesuatu ke dalamInitSuccess, maka pustaka akan mulai meludah kesalahan aneh.

Anda dapat mengontrol siklus hidup pemain (hentikan pemutaran di onPause () dan semuanya seperti itu) secara manual, atau Anda dapat mendaftarkan pandangan kami sebagai Pengamat Siklus Hidup (yang darinya Aktivitas kami harus diwarisi dari AppCompatActivity). Dalam hal ini, perpustakaan akan mengambil alih seluruh rutinitas.


Nuansa aneh lain dari perpustakaan adalah kurangnya dukungan layar penuh di luar kotak. Ada tombol untuk itu secara default di pemutar, tetapi tidak melakukan apa-apa. Bahkan, Anda harus melakukan mode layar penuh secara manual - sembunyikan pria itu, maksimalkan jendela pemain ke layar penuh, dan kemudian kembalikan semuanya kembali. Ini mungkin berubah menjadi sangat tidak penting jika Anda memiliki semacam antarmuka yang rumit di sekitar pemain. Saya hanya punya daftar video di sana, yang mudah disembunyikan secara manual.


Dalam sampel perpustakaan ada kelas FullScreenHelper, dari mana Anda dapat mengambil kode yang diinginkan. Penggunaannya terlihat seperti ini:


youTubePlayerView.addFullScreenListener(new YouTubePlayerFullScreenListener() {

            private final View rootLayout = findViewById(R.id.rootLayout);

            @Override
            public void onYouTubePlayerEnterFullScreen() {
                fullScreenHelper.enterFullScreen();
                rootLayout.setPadding(0, 0, 0, 0);
            }

            @Override
            public void onYouTubePlayerExitFullScreen() {
                fullScreenHelper.exitFullScreen();
                rootLayout.setPadding(8, 8, 8, 8);
                youTubePlayerView.getLayoutParams().height = LinearLayout.LayoutParams.MATCH_PARENT;
                  }
        });

FullScreenHelper . ( , ) - , .


- , β€” . " YouTube", :


youTubePlayerView.getPlayerUIController().showFullscreenButton(true);
youTubePlayerView.getPlayerUIController().showYouTubeButton(false);

, , View .. β€” .


youTubePlayer.loadVideo(url, startTime);


, YouTube Data API


URL - . YouTube API, . Developer Console .


: . - , "Peppa Pig". id ( id) snippet : , -, .


 YouTube.Search.List searchListByKeywordRequest = youTube.search().list("snippet,id");
 searchListByKeywordRequest.setMaxResults(10L);
 searchListByKeywordRequest.setQ("Peppa Pig");
 searchListByKeywordRequest.setType("channel,playlist");
 searchListByKeywordRequest.setKey("<api key>");
 SearchListResponse response = searchListByKeywordRequest.execute();

( snippet id) . YouTube API : , . - ( , ), . , . .. 5 ( 2 sinppet id). , 6 , 13. 10 , 21 . , .


:


YouTube.Search.List request = youTube.search().list("snippet,id");
request.setChannelId("<channel id>");
request.setType("video");
request.setMaxResults(50L);
request.setKey("<api key>");
SearchListResponse response = request.execute();

, , nextPageToken, β€” , .


if (response.getNextPageToken() != null) {
    request.setPageToken(response.getNextPageToken());
    response = request.execute();
}

API , , ..



, , . , Google Play . :


  1. . . " " ("" " "), - .
  2. β€” . , " ", , .
  3. . , , β€” .
  4. . " ", , .
  5. .
  6. Pinned Mode β€” , .

- β€” https://play.google.com/store/apps/details?id=ru.sundogs.youtubekiosk , β€” . β€” . , , .


, , , - ( ), . β€” , . .


UPD: , . β€” , . Play Market ""


UPD2: , . , , .


UPD3: , : https://channelwhitelist.tilda.ws. , !

Source: https://habr.com/ru/post/id421451/


All Articles