پیژندنه لنډه ده: زه غواړم د ځایی پلی لیستونو ، چینلونو او وړاندیزونو سره د Android لپاره د یوټیوب آنلاین پلیر په اړه وغږیږم.
پراخه پیژندنه:
یو څه وخت دمخه زه د ورته ستونزې سره مخ شوم لکه څنګه چې د عالي غوښتنلیک لیکوال
بدبختانه ، د چینل وایټ لیست اپلیکیشن نصبولو وروسته ، یو بل ډیر پراسیک ، مګر لاهم وژونکي نیمګړتیا وموندل شوه - NIH I (او خورا مهم ، زما زوی) د دې انٹرفیس خورا اسانه ندی موندلی ، په ځانګړي توګه د یوټیوب ماشومانو پلیر کارولو عادت وروسته.
په عموم کې، یو څه وخت وروسته زه چمتو وم چې خپل ځان پلي کړم. د یو څه وخت وروسته، دا ممکنه شوه چې په لومړي ریلیز کې ټګ واچول شي.
کلیدي ځانګړتیاوې:
- خپل غوره چینلونه او پلی لیستونه اضافه کړئ - دوی به په محلي ډیټابیس کې خوندي او لیست شي
- په اضافه شوي پلی لیستونو کې ، غیر ضروري ویډیوګانې بند کړئ که تاسو ورته اړتیا نلرئ
- د سپارښتنو لیست په تصادفي ډول یوازې د چینلونو او پلی لیستونو څخه رامینځته شوی چې غوښتنلیک کې اضافه شوي
خلاص سرچینه، د GPLv3 جواز:
لاندې په تفصیل سره د اصلي ب featuresو یوه عمومي کتنه ده ، په بیله بیا د ګوګل API او ویب ریپرونو کارولو پرته ستاسو په Android غوښتنلیک کې د یوټیوب ویډیو لوبولو څرنګوالي په اړه ځینې تخنیکي توضیحات.
په اصلي سکرین او د پلیر سکرین کې: د غیر تصادفي چینلونو څخه تصادفي وړاندیزونه
په محلي ډیټابیس کې فوري لټون
یو نوی چینل یا پلی لیست اضافه کړئ
د آنلاین نوم په واسطه لټون وکړئ یا یو پیژندل شوی پته داخل کړئ. د چینل یا پلی لیست ویډیوګانو لیست ځایی ډیټابیس کې خوندي شوی؛ شبیهونه نه ساتل کیږي.
متحرک پلی لیست - د لټون پایلې پلی کړئ
د ویډیو وړاندیزونو کې به یوازې ویډیوګانې وي چې د لټون پوښتنې پوره کړي.
په ورته ډول ، که تاسو د پلی لیست تنظیماتو څخه ویډیو خلاص کړئ ، یوازې د ورته پلی لیست څخه ویډیوګانې به د وړاندیزونو لیست کې څرګند شي.
پلی لیستونه او چینلونه په لنډمهاله توګه بند او بیا فعال کیدی شي
مهرباني وکړئ په یاد ولرئ: د معلول شوي پلی لیست څخه ویډیوګانې به د لټون پایلو ، لید تاریخ او د خوښې لیست څخه هم ورک شي. مګر اندیښنه مه کوئ ، دوی به سمدلاسه وروسته له هغه چې د پلی لیست بیا فعال شي هلته به بیا څرګند شي.
په تور لیست کې ویډیو اضافه کړئ
یو بلاک شوی ویډیو به په وړاندیزونو ، د لټون پایلو کې نه ښودل کیږي ، او د خوښې لیست او د لید تاریخ څخه به ورک شي. ویډیو به لاهم د پلی لیست تنظیماتو کې لیدل کیږي.
تور لیست وګورئ او په غلطۍ سره بند شوي توکي بیا فعال کړئ:
ترتیبات> سرلیک مینو> تور لیست
د خوښې ویډیوګانې او د لیدو تاریخ
د پلیر په سکرین کې غوره ویډیوګانې په پورتنۍ ښیې کونج کې د ستوري سره نښه شوي.
د سکرین سرلیک کې د متن مینو او په ګالري او لیستونو کې اوږد کلیک وکړئ
د لیدلو په سکرین یا کوم لیست کې د ویډیو یا پلی لیست نوم یا پته کاپي کړئ.
ګړندی پیل - وړاندیز شوي چینلونه او پلی لیستونه اضافه کړئ
غوښتنلیک به سمدلاسه د پورته سکرین شاټونو په څیر ښکاري.
غیر ضروري چینلونه او پلی لیستونه په تنظیماتو کې بند یا حذف کیدی شي.
د جوړولو
د پروژې پاڼه:
په انګلیسی کي:
خپرونه:
- دا په ګوګل پلی کې نه دی او په نږدې راتلونکي کې به نه وي (ګوګل هغه غوښتنلیکونه منع کوي چې د API څخه تیریږي او د دوی ویب پاڼه پارس کوي ، پشمول د ذکر شوي چینل وایټ لیست یا نیو پایپ پلیر)
- د سرچینو څخه جوړ کړئ:
https://github.com/sadr0b0t/yashlang/ - د ریلیز برخې څخه apk ډاونلوډ کړئ:
https://github.com/sadr0b0t/yashlang/releases - زه امید لرم چې دا به یو څه وروسته په کتلاګ کې څرګند شي
F-Droid (داسې ښکاري چې د اضافه کولو غوښتنلیک تصویب شوی ، مګر د نږدې یوې میاشتې راهیسې نور نه دی تللی) مګر لاهم نه دی
په یاد ولرئ چې په ورته وسیله کې د مختلف سرچینو څخه د مختلف نسخو ترمینځ سویچ کول به د apk فایل مختلف لاسلیکونو له امله کار ونکړي؛ مخکې لدې چې له نوې سرچینې څخه نسخه نصب کړئ ، تاسو باید لومړی د ډیټا سره نصب شوی نسخه حذف کړئ - د پلی لیست کیچ او د لټون کولو تاریخ (یا معلوم کړئ چې څنګه د ډیټا لیږدولو لپاره).
تخنیکي توضیحات
د ګوګل/یوټیوب حساب ته اړتیا نلري، تاسو یوازې انټرنیټ ته اړتیا لرئ، لاندې کتابتونونه کاروي:
نوی پایپ استخراجونکی د یوټیوب خدمت څخه ډاټا ترلاسه کول اوexoplayer د ویډیو پلی کولو لپاره.
خلاص سرچینه، وړیا GPLv3 جواز.
پوښتنه: ایا دا عموما قانوني دی چې د لیکوالانو له اجازې پرته (یا د څرګند بندیز سره) ویب پاڼې سکریپ کړئ؟
ځواب: البته، دا قانوني ده، دا تاسو پورې اړه لري چې د عامه معلوماتو د لوستلو لپاره کومه وسیله وکاروئ. سربیره پردې:
ځینې کوډ
کړی
د پلی لیست پورته کولو لپاره کوډ یو څه پیچلی دی ، نو زه به یې دلته نه ورکوم ، د علاقمندانو لپاره ، د سرچینې کوډ ته یو نظر وګورئ ، دا اساسا یو ټولګی دی
راځئ وګورو چې څنګه د عامه ویډیو پاڼې پته څخه د ویډیو جریان پته ترلاسه کړئ او په پلیر کې یې پلی کړئ.
کتابتون سره وصل کړئ
dependencies {
...
// NewPipe: youtube parser
// https://github.com/TeamNewPipe/NewPipeExtractor
implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}
دا په زړه پوري ده چې له دې وروسته تاسو لاهم نشئ کولی دا وکاروئ ، ځکه ... مثالونه به د ورک شوي ډاونلوډر ټولګي په اړه شکایت وکړي. دا د اتوماتیک ازموینې لارښود څخه پروژې ته کاپي کیدی شي
په یوټیوب ویب پاڼه کې د ویډیو پاڼې پته د ویډیو جریان پته ترلاسه کړئ:
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;
}
د ویډیو پته ytVidUrl کیدای شي د یوټیوب ویب پاڼه کې د هرې ویډیو پاڼې عامه پته وي، د بیلګې په توګه
لوبغاړی به وي
کتابتون له پروژې سره وصل کړئ
dependencies {
...
// google Exoplayer
// https://github.com/google/ExoPlayer
// https://exoplayer.dev/
implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}
موږ به د غوښتنلیک په سکرین کې د پلیر برخې ځای په ځای کولو ټول باریکي په پام کې ونیسو (تاسو کولی شئ د پروژې ویب پا orې یا کوډ کې مثالونه وګورئ) ، موږ به یوازې وګورو چې څنګه په پلیر کې د یوټیوب څخه ویډیو پیل کړئ. پورته ترلاسه شوی پته:
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);
}
}
پیژندل شوي مسلې
- د عمر محدودیتونو سره به ویډیو ونه لوبوي چې ستاسو ګوګل/یوټیوب حساب ته ننوتل ته اړتیا لري
د مثال په توګه:
مشوره: دا ډول ویډیوګانې په تور لیست کې اضافه کړئ یا د ویډیو له لیکوال څخه وغواړئ چې هغه محدودیت لرې کړي چې په غلطۍ سره ټاکل شوی.
- ځینې نشر شوي ویډیوګانې چې خدمت یې د صفر اوږدوالی بیرته راګرځوي هغه به پلی نشي (د داسې ویډیوګانو لپاره ، په لیستونو او ګالري کې موده د "[dur undef]" په توګه نښه شوې)
د مثال په توګه:
مشوره: دا ډول ویډیو په تور لیست کې اضافه کړئ.
- هغه ویډیوګانې چې یوازې د مستقیم لینکونو له لارې شتون لري ممکن په محلي پلی لیست کې شامل نه شي، حتی که تاسو د کارونکي ټولې ویډیو ډاونلوډ کړئ
د مثال په توګه:
-
که تاسو د عامه ویډیو سره مخ شئ چې ننوتل ته اړتیا نلري ، په براوزر کې لوبیږي ، مګر په پلیر کې نه لوبیږي ، د بګ راپور واستوئ (دا خورا ممکنه ده چې ستونزه لا دمخه په نوي نسخه کې حل شوې وي. نوی پایپ استخراجونکی او تاسو به یوازې د دې نسخې سره مجلس تازه کولو ته اړتیا ولرئ،
د مثال په توګه ). -
انٹرفیس ممکن ورو شي که انټرنیټ ورو وي (مګر بند شوی نه وي)
په پایله کې،
زما زوی له ټابلیټ څخه د سامسنګ سمارټ تلویزیون ته تللی ، کوم چې نشي کولی د Android غوښتنلیکونه پرمخ بوځي. له همدې امله، د والدینو غوره کنټرول لاهم شخصي دی.
مګر غوښتنلیک زما لپاره کافي اسانه وګرځید چې پخپله یې کارول پیل کړم. د لومړنیو کاري نسخو څخه لومړی تاثیر دا و چې زه په بله نړۍ کې وم. ټول منځپانګه له یوټیوب څخه ډاونلوډ کیږي، مګر دا نور یوټیوب نه دی، مګر یو بل څه، خوندي او کنټرول شوی، لکه څنګه چې تاسو د سترګو څخه سینټیپیډ واخلئ او په شیشې جار کې یې واچوئ. او دا ټول د سپارښتنو په اړه دي.
سرچینه: www.habr.com