เชชเชฐเชฟเชเชฏ เชเซเชเชเซ เชเซ: เชนเซเช เชธเซเชฅเชพเชจเชฟเช เชชเซเชฒเซเชฒเชฟเชธเซเชเซเชธ, เชเซเชจเชฒเซ เช เชจเซ เชญเชฒเชพเชฎเชฃเซ เชธเชพเชฅเซ Android เชฎเชพเชเซ YouTube เชเชจเชฒเชพเชเชจ เชชเซเชฒเซเชฏเชฐ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช.
เชตเชฟเชธเซเชคเซเชค เชชเชฐเชฟเชเชฏ:
เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชนเซเชฒเชพ เชฎเชจเซ เชเช เช
เชฆเซเชญเซเชค เชเชชเซเชฒเชฟเชเซเชถเชจเชจเชพ เชฒเซเชเช เชเซเชตเซ เช เชธเชฎเชธเซเชฏเชพเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ เชนเชคเซ
เชเชฎเชจเชธเซเชฌเซ, เชเซเชจเชฒ เชตเซเชนเชพเชเชเชฒเชฟเชธเซเช เชเชชเซเชฒเซเชเซเชถเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชฌเซเชเซ เชตเชงเซ เช เชธเซเชชเชทเซเช, เชชเชฐเชเชคเซ เชนเชเซ เชชเชฃ เชเซเชตเชฒเซเชฃ เชเชพเชฎเซ เชฎเชณเซ เชเชตเซ - NIH I (เช เชจเซ, เชธเซเชฅเซ เช เชเชคเซเชฏเชจเซเช, เชฎเชพเชฐเชพ เชชเซเชคเซเชฐ) เชจเซ เชคเซเชจเซเช เชเชจเซเชเชฐเชซเซเชธ เชเซเชฌ เช เชจเซเชเซเชณ เชจ เชฒเชพเชเซเชฏเซเช, เชเชพเชธ เชเชฐเซเชจเซ YouTube Kids เชชเซเชฒเซเชฏเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฆเชค เชชเชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชเซ เชนเซเช เชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เช เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชนเชคเซ. เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชเซ, เชชเซเชฐเชฅเชฎ เชชเซเชฐเชเชพเชถเชจ เชชเชฐ เชเซเช เชฎเซเชเชตเชพเชจเซเช เชถเชเซเชฏ เชฌเชจเซเชฏเซเช.
เชฎเซเชเซเชฏ เชตเชฟเชถเซเชทเชคเชพเช:
- เชคเชฎเชพเชฐเซ เชฎเชจเชชเชธเชเชฆ เชเซเชจเชฒเซ เช เชจเซ เชชเซเชฒเซเชฒเชฟเชธเซเช เชเชฎเซเชฐเซ - เชคเซ เชธเซเชฅเชพเชจเชฟเช เชกเซเชเชพเชฌเซเชเชฎเชพเช เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เช เชจเซเชเซเชฐเชฎเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ
- เชเชฎเซเชฐเซเชฒเซ เชชเซเชฒเซเชฒเชฟเชธเซเชเชฎเชพเช, เชเซ เชคเชฎเชจเซ เชฌเชฟเชจเชเชฐเซเชฐเซ เชตเซเชกเชฟเชฏเซเชจเซ เชเชฐเซเชฐ เชจ เชนเซเชฏ เชคเซ เชคเซเชจเซ เชฌเชเชง เชเชฐเซ
- เชญเชฒเชพเชฎเชฃเซเชจเซ เชธเซเชเชฟ เชซเชเซเชค เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒเซ เชเซเชจเชฒเซ เช เชจเซ เชชเซเชฒเซเชฒเชฟเชธเซเชเซเชธเชฎเชพเชเชฅเซ เชฐเซเชจเซเชกเชฎเชฒเซ เชเชจเชฐเซเช เชฅเชพเชฏ เชเซ
เชเชชเชจ เชธเซเชฐเซเชธ, GPLv3 เชฒเชพเชเชธเชจเซเชธ:
Google API เช เชจเซ เชตเซเชฌ เชฐเซเชชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชคเชฎเชพเชฐเซ เชเชจเซเชกเซเชฐเซเชเชก เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช YouTube เชตเชฟเชกเชฟเชเช เชเซเชตเซ เชฐเซเชคเซ เชเชฒเชพเชตเชตเซ เชคเซ เช เชเชเซเชจเซ เชเซเชเชฒเซเช เชคเชเชจเซเชเซ เชตเชฟเชเชคเซ, เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชฎเซเชเซเชฏ เชฒเชเซเชทเชฃเซเชจเซ เชเชพเชเชเซ เชจเซเชเซ เชเชชเซเชฒ เชเซ.
เชฎเซเชเซเชฏ เชธเซเชเซเชฐเซเชจ เชชเชฐ เช เชจเซ เชชเซเชฒเซเชฏเชฐ เชธเซเชเซเชฐเซเชจ เชชเชฐ: เชจเซเชจ-เชฐเซเชจเซเชกเชฎ เชเซเชจเชฒเซ เชคเชฐเชซเชฅเซ เชฐเซเชจเซเชกเชฎ เชญเชฒเชพเชฎเชฃเซ
เชธเซเชฅเชพเชจเชฟเช เชกเซเชเชพเชฌเซเชเชฎเชพเช เชคเซเชตเชฐเชฟเชค เชถเซเชง
เชจเชตเซ เชเซเชจเชฒ เช เชฅเชตเชพ เชชเซเชฒเซเชฒเชฟเชธเซเช เชเชฎเซเชฐเซ
เชเชจเชฒเชพเชเชจ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เชถเซเชงเซ เช เชฅเชตเชพ เชเชพเชฃเซเชคเซเช เชธเชฐเชจเชพเชฎเซเช เชฆเชพเชเชฒ เชเชฐเซ. เชเซเชจเชฒ เช เชฅเชตเชพ เชชเซเชฒเซเชฒเชฟเชธเซเชเชจเซ เชตเชฟเชกเชฟเชเชเชจเซ เชธเซเชเชฟ เชธเซเชฅเชพเชจเชฟเช เชกเซเชเชพเชฌเซเชเชฎเชพเช เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ; เชเชฟเชนเซเชจเซ เชเซเชถ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเชพเช เชจเชฅเซ.
เชกเชพเชฏเชจเซเชฎเชฟเช เชชเซเชฒเซเชฒเชฟเชธเซเช - เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซ เชเชฒเชพเชตเซ
เชตเชฟเชกเชฟเช เชญเชฒเชพเชฎเชฃเซเชฎเชพเช เชซเชเซเชค เชเชตเชพ เชตเชฟเชกเชฟเชเช เชนเชถเซ เชเซ เชถเซเชง เชเซเชตเซเชฐเซ เชธเชเชคเซเชทเซ เชเซ.
เชคเซเชตเซ เช เชฐเซเชคเซ, เชเซ เชคเชฎเซ เชชเซเชฒเซเชฒเชฟเชธเซเช เชธเซเชเชฟเชเชเซเชธเชฎเชพเชเชฅเซ เชตเชฟเชกเชฟเช เชเซเชฒเซ เชเซ, เชคเซ เชญเชฒเชพเชฎเชฃเซเชจเซ เชธเซเชเชฟเชฎเชพเช เชซเชเซเชค เชคเซ เช เชชเซเชฒเซเชฒเชฟเชธเซเชเชจเชพ เชตเชฟเชกเชฟเชเช เชฆเซเชเชพเชถเซ.
เชชเซเชฒเซเชฒเชฟเชธเซเช เช เชจเซ เชเซเชจเชฒเซ เช เชธเซเชฅเชพเชฏเซ เชฐเซเชชเซ เชฌเชเชง เช เชจเซ เชซเชฐเซเชฅเซ เชเชพเชฒเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ
เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ: เช เชเซเชทเชฎ เชชเซเชฒเซเชฒเชฟเชธเซเชเชฎเชพเชเชฅเซ เชตเชฟเชกเชฟเชเช เชชเชฃ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซ, เชเซเชตเชพเชจเซ เชเชคเชฟเชนเชพเชธ เช เชจเซ เชฎเชจเชชเชธเชเชฆ เชธเซเชเชฟเชฎเชพเชเชฅเซ เช เชฆเซเชถเซเชฏ เชฅเช เชเชถเซ. เชชเชฐเชเชคเซ เชเชฟเชเชคเชพ เชเชฐเชถเซ เชจเชนเซเช, เชชเซเชฒเซเชฒเชฟเชธเซเช เชซเชฐเซเชฅเซ เชเชพเชฒเซ เชฅเชฏเชพ เชชเชเซ เชคเชฐเชค เช เชคเซเช เชซเชฐเซเชฅเซ เชคเซเชฏเชพเช เชฆเซเชเชพเชถเซ.
เชฌเซเชฒเซเชเชฒเชฟเชธเซเชเชฎเชพเช เชตเชฟเชกเชฟเช เชเชฎเซเชฐเซ
เช เชตเชฐเซเชงเชฟเชค เชตเชฟเชกเชฟเช เชญเชฒเชพเชฎเชฃเซเชฎเชพเช, เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซเชฎเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ เชจเชนเซเช เช เชจเซ เชฎเชจเชชเชธเชเชฆเชจเซ เชธเซเชเชฟเชฎเชพเชเชฅเซ เช เชจเซ เชเซเชตเชพเชจเชพ เชเชคเชฟเชนเชพเชธเชฎเชพเชเชฅเซ เช เชฆเซเชถเซเชฏ เชฅเช เชเชถเซ. เชตเชฟเชกเชฟเช เชนเชเซ เชชเชฃ เชชเซเชฒเซเชฒเชฟเชธเซเช เชธเซเชเชฟเชเชเซเชธเชฎเชพเช เชฆเซเชเชพเชถเซ.
เชฌเซเชฒเซเชเชฒเชฟเชธเซเช เชเซเช เช
เชจเซ เชญเซเชฒเชฅเซ เช
เชตเชฐเซเชงเชฟเชค เชตเชธเซเชคเซเชเชจเซ เชซเชฐเซเชฅเซ เชธเชเซเชทเชฎ เชเชฐเซ:
เชธเซเชเชฟเชเชเซเชธ > เชนเซเชกเชฐ เชฎเซเชจเซ > เชฌเซเชฒเซเชเชฒเชฟเชธเซเช
เชฎเชจเชชเชธเชเชฆ เชตเชฟเชกเชฟเชเช เช เชจเซ เชเซเชตเชพเชจเซ เชเชคเชฟเชนเชพเชธ
เชชเซเชฒเซเชฏเชฐ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชฎเชจเชชเชธเชเชฆ เชตเชฟเชกเชฟเชเช เชเชชเชฐ เชเชฎเชฃเชพ เชเซเชฃเชพเชฎเชพเช เชซเซเชฆเชกเซ เชธเชพเชฅเซ เชเชฟเชนเซเชจเชฟเชค เชฅเชฏเซเชฒ เชเซ.
เชธเซเชเซเชฐเซเชจ เชถเซเชฐเซเชทเชเชฎเชพเช เชธเชเชฆเชฐเซเชญ เชฎเซเชจเซ เช เชจเซ เชเซเชฒเซเชฐเซเช เช เชจเซ เชธเซเชเชฟเชเชฎเชพเช เชฒเชพเชเชฌเชพ-เชเซเชฒเชฟเช เชเชฐเซ
เชตเชฟเชกเชฟเชฏเซ เชเซ เชชเซเชฒเซเชฒเชฟเชธเซเชเชจเซเช เชจเชพเชฎ เช เชฅเชตเชพ เชธเชฐเชจเชพเชฎเซเช เชตเซเชฏเซเชเชเช เชธเซเชเซเชฐเซเชจเชฎเชพเช เช เชฅเชตเชพ เชเซเชเชชเชฃ เชฒเชฟเชธเซเชเชฎเชพเช เชเซเชชเชฟ เชเชฐเซ.
เชเชกเชชเซ เชถเชฐเซเชเชค - เชญเชฒเชพเชฎเชฃ เชเชฐเซเชฒ เชเซเชจเชฒเซ เช เชจเซ เชชเซเชฒเซเชฒเชฟเชธเซเช เชเชฎเซเชฐเซ
เชเชชเซเชฒเชฟเชเซเชถเชจ เชคเชฐเชค เช เชเชชเชฐเชจเชพ เชธเซเชเซเชฐเซเชจเชถเซเชเซเชธ เชเซเชตเซ เชฆเซเชเชพเชถเซ.
เชฌเชฟเชจเชเชฐเซเชฐเซ เชเซเชจเชฒเซ เช เชจเซ เชชเซเชฒเซเชฒเชฟเชธเซเช เชธเซเชเชฟเชเชเซเชธเชฎเชพเช เชฌเชเชง เช เชฅเชตเชพ เชเชพเชขเซ เชถเชเชพเชฏ เชเซ.
เชธเซเชฅเชพเชชเชจ
เชชเซเชฐเซเชเซเชเซเช เชชเซเชทเซเช :
เช
เชเชเซเชฐเซเชเซ เชฎเชพเช:
เชชเซเชฐเชเชพเชถเชจ:
- เชคเซ Google Play เชชเชฐ เชจเชฅเซ เช เชจเซ เชจเชเซเชเชจเชพ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชชเชฃ เชจเชนเซเช เชนเซเชฏ (Google เช เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเชเชง เชฎเซเชเซ เชเซ เชเซ API เชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซ เชเซ เช เชจเซ เชเชฒเซเชฒเซเชเชฟเชค เชเซเชจเชฒ เชตเซเชนเชพเชเชเชฒเชฟเชธเซเช เช เชฅเชตเชพ เชจเซเชฏเซเชชเชพเชเชช เชชเซเชฒเซเชฏเชฐ เชธเชนเชฟเชค เชคเซเชฎเชจเซ เชตเซเชฌเชธเชพเชเชเชจเซ เชชเชพเชฐเซเชธ เชเชฐเซ เชเซ)
- เชธเซเชคเซเชฐเซเชคเซเชฎเชพเชเชฅเซ เชฌเชจเชพเชตเซ:
https://github.com/sadr0b0t/yashlang/ - เชชเซเชฐเชเชพเชถเชจ เชตเชฟเชญเชพเชเชฎเชพเชเชฅเซ apk เชกเชพเชเชจเชฒเซเชก เชเชฐเซ:
https://github.com/sadr0b0t/yashlang/releases - เชฎเชจเซ เชเชถเชพ เชเซ เชเซ เชคเซ เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชเซ เชเซเชเชฒเซเชเชฎเชพเช เชฆเซเชเชพเชถเซ
เชเชซ-เชกเซเชฐเซเชเชก (เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซเชจเซ เช เชฐเชเซ เชฎเชเชเซเชฐ เชฅเช เชนเซเชฏ เชคเซเชตเซเช เชฒเชพเชเซ เชเซ , เชชเชฐเชเชคเซ เชฒเชเชญเช เชเช เชฎเชนเชฟเชจเชพเชฅเซ เชเชเชณ เชตเชงเซเชฏเซเช เชจเชฅเซ), เชชเชฐเชเชคเซ เชนเชเซ เชธเซเชงเซ เชจเชฅเซ
เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซ เชเซ เชเช เช เชเชชเชเชฐเชฃ เชชเชฐ เชตเชฟเชตเชฟเชง เชธเซเชฐเซเชคเซเชฎเชพเชเชฅเซ เชตเชฟเชตเชฟเชง เชธเชเชธเซเชเชฐเชฃเซ เชตเชเซเชเซ เชธเซเชตเชฟเช เชเชฐเชตเซเช เช apk เชซเชพเชเชฒเชจเชพ เชเซเชฆเชพ เชเซเชฆเชพ เชนเชธเซเชคเชพเชเซเชทเชฐเซเชจเซ เชเชพเชฐเชฃเซ เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช; เชจเชตเชพ เชธเซเชฐเซเชคเชฎเชพเชเชฅเซ เชธเชเชธเซเชเชฐเชฃ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชคเชพ เชชเชนเซเชฒเชพ, เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒ เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชพเชขเซ เชจเชพเชเชตเซเช เชชเชกเชถเซ - เชชเซเชฒเซเชฒเชฟเชธเซเช เชเซเชถ เช เชจเซ เชฌเซเชฐเชพเชเชเชฟเชเช เชเชคเชฟเชนเชพเชธ (เช เชฅเชตเชพ เชกเซเชเชพ เชเซเชตเซ เชฐเซเชคเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเชตเซ เชคเซ เชเชเซเชคเชฟ).
เชคเชเชจเซเชเซ เชตเชฟเชเชคเซ
Google/YouTube เชเชเชพเชเชจเซเชเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชเชจเซเชเชฐเชจเซเชเชจเซ เชเชฐเซเชฐ เชเซ, เชจเซเชเซเชจเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ:
เชจเซเชฏเซ เชชเชพเชเชช เชเชเซเชธเชเซเชฐเซเชเซเชเชฐ YouTube เชธเซเชตเชพเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เช เชจเซเชเชเซเชธเซเชชเซเชฒเซเชฏเชฐ เชตเชฟเชกเชฟเช เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ.
เชเชชเชจ เชธเซเชฐเซเชธ, เชฎเชซเชค GPLv3 เชฒเชพเชเชธเชจเซเชธ.
เชชเซเชฐเชถเซเชจ: เชถเซเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฒเซเชเชเซเชจเซ เชชเชฐเชตเชพเชจเชเซ เชตเชฟเชจเชพ (เช
เชฅเชตเชพ เชธเซเชชเชทเซเช เชชเซเชฐเชคเชฟเชฌเชเชง เชธเชพเชฅเซ) เชตเซเชฌเชธเชพเชเชเชจเซ เชเชเชฐเชกเชพ เชเชฐเชตเซ เชเชพเชฏเชฆเซเชธเชฐ เชเซ?
เชเชตเชพเชฌ: เช
เชฒเชฌเชคเซเชค, เชคเซ เชเชพเชฏเชฆเซเชธเชฐ เชเซ, เชธเชพเชฐเซเชตเชเชจเชฟเช เชฐเซเชคเซ เชเชชเชฒเชฌเซเชง เชฎเชพเชนเชฟเชคเซ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชเชฏเชพ เชธเชพเชงเชจเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชคเซ เชคเชฎเชพเชฐเชพ เชชเชฐ เชเซ. เชตเชงเซเชฎเชพเช:
เชเซเชเชฒเชพเช เชเซเชก
เชชเซเชธเซเชคเชเชพเชฒเชฏ
เชชเซเชฒเซเชฒเชฟเชธเซเช เชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเซเชก เชฅเซเชกเซ เชฌเซเชเชพเชฐเซเชช เชเซ, เชคเซเชฅเซ เชนเซเช เชคเซเชจเซ เช
เชนเซเช เชเชชเซเชถ เชจเชนเซเช, เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชฒเซเชเซ เชฎเชพเชเซ, เชธเซเชฐเซเชค เชเซเชก เชชเชฐ เชเช เชจเชเชฐ เชจเชพเชเซ, เชคเซ เชฎเซเชณเชญเซเชค เชฐเซเชคเซ เชเช เชตเชฐเซเช เชเซ
เชเชพเชฒเซ เชเซเชเช เชเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชตเชฟเชกเชฟเช เชชเซเชทเซเช เชจเชพ เชธเชฐเชจเชพเชฎเชพเชเชฎเชพเชเชฅเซ เชตเชฟเชกเชฟเช เชธเซเชเซเชฐเซเชฎเชจเซเช เชธเชฐเชจเชพเชฎเซเช เชเซเชตเซ เชฐเซเชคเซ เชฎเซเชณเชตเชตเซเช เช เชจเซ เชคเซเชจเซ เชชเซเชฒเซเชฏเชฐเชฎเชพเช เชเชฒเชพเชตเชตเซเช.
เชฒเชพเชเชฌเซเชฐเซเชฐเซเชจเซ เชธเชพเชฅเซ เชเซเชกเซ
dependencies {
...
// NewPipe: youtube parser
// https://github.com/TeamNewPipe/NewPipeExtractor
implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}
เชคเซ เชตเชฟเชเชฟเชคเซเชฐ เชเซ เชเซ เช เชชเชเซ เชคเชฎเซ เชนเชเซ เชชเชฃ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชถเซ เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ... เชเชฆเชพเชนเชฐเชฃเซ เชเซเชฎ เชฅเชฏเซเชฒ เชกเชพเชเชจเชฒเซเชกเชฐ เชตเชฐเซเช เชตเชฟเชถเซ เชซเชฐเชฟเชฏเชพเชฆ เชเชฐเชถเซ. เชคเซ เชธเซเชตเชฏเชเชธเชเชเชพเชฒเชฟเชค เชชเชฐเซเชเซเชทเชฃ เชจเชฟเชฐเซเชฆเซเชถเชฟเชเชพเชฎเชพเชเชฅเซ เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช เชเซเชชเชฟ เชเชฐเซ เชถเชเชพเชฏ เชเซ
YouTube เชตเซเชฌเชธเชพเชเช เชชเชฐเชจเชพ เชตเชฟเชกเชฟเชฏเซ เชชเซเชทเซเช เชจเชพ เชธเชฐเชจเชพเชฎเชพ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชกเชฟเช เชธเซเชเซเชฐเซเชฎเชจเซเช เชธเชฐเชจเชพเชฎเซเช เชฎเซเชณเชตเซ:
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 เช YouTube เชตเซเชฌเชธเชพเชเช เชชเชฐ เชเซเชเชชเชฃ เชตเชฟเชกเชฟเชเชจเชพ เชชเซเชทเซเช เชจเซเช เชเชพเชนเซเชฐ เชธเชฐเชจเชพเชฎเซเช เชนเซเช เชถเชเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ
เชเซเชฒเชพเชกเซ เชเชฐเชถเซ
เชฒเชพเชเชฌเซเชฐเซเชฐเซเชจเซ เชชเซเชฐเซเชเซเชเซเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซ
dependencies {
...
// google Exoplayer
// https://github.com/google/ExoPlayer
// https://exoplayer.dev/
implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}
เช เชฎเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชชเซเชฒเซเชฏเชฐ เชเชเช เชฎเซเชเชตเชพเชจเซ เชคเชฎเชพเชฎ เชเซเชเชเชพเชเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช เชจเชนเซเช (เชคเชฎเซ เชชเซเชฐเซเชเซเชเซเช เชตเซเชฌเชธเชพเชเช เชชเชฐ เช เชฅเชตเชพ เชเซเชกเชฎเชพเช เชเชฆเชพเชนเชฐเชฃเซ เชเซเช เชถเชเซ เชเซ), เช เชฎเซ เชซเชเซเชค เชชเซเชฒเซเชฏเชฐเชฎเชพเช YouTube เชชเชฐเชฅเซ เชตเชฟเชกเชฟเช เชเซเชตเซ เชฐเซเชคเซ เชเชฒเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเชตเซเช เชคเซ เชเซเชเชถเซเช. เชเชชเชฐ เชชเซเชฐเชพเชชเซเชค เชธเชฐเชจเชพเชฎเซเช:
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);
}
}
เชเชพเชฃเซเชคเชพ เชฎเซเชฆเซเชฆเชพเช
- เชคเชฎเชพเชฐเชพ Google/YouTube เชเชเชพเชเชจเซเชเชฎเชพเช เชฒเซเชเชฟเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชตเชพ เชตเชฏ เชชเซเชฐเชคเชฟเชฌเชเชงเซ เชธเชพเชฅเซ เชตเชฟเชกเชฟเช เชเชฒเชพเชตเชถเซ เชจเชนเซเช
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ:
เชธเชฒเชพเชน: เชเชตเชพ เชตเซเชกเชฟเชฏเซเชจเซ เชฌเซเชฒเซเชเชฒเชฟเชธเซเชเชฎเชพเช เชเชฎเซเชฐเซ เช เชฅเชตเชพ เชตเซเชกเชฟเชฏเซเชจเชพ เชฒเซเชเชเชจเซ เชญเซเชฒเชฅเซ เชธเซเช เชเชฐเซเชฒเชพ เชชเซเชฐเชคเชฟเชฌเชเชงเชจเซ เชฆเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชนเซ.
- เชเซเชเชฒเชพเช เชฌเซเชฐเซเชกเชเชพเชธเซเช เชตเชฟเชกเชฟเชเช เชเซ เชเซเชจเชพ เชฎเชพเชเซ เชธเซเชตเชพ เชถเซเชจเซเชฏ เชฒเชเชฌเชพเช เชเชชเซ เชเซ เชคเซ เชเชพเชฒเชถเซ เชจเชนเซเช (เชเชตเชพ เชตเชฟเชกเชฟเชเช เชฎเชพเชเซ, เชธเซเชเชฟเช เช เชจเซ เชเซเชฒเซเชฐเซเชฎเชพเช เชธเชฎเชฏเชเชพเชณเซ "[dur undef]" เชคเชฐเซเชเซ เชเชฟเชนเซเชจเชฟเชค เชฅเชฏเซเชฒ เชเซ)
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ:
เชธเชฒเชพเชน: เชฌเซเชฒเซเชเชฒเชฟเชธเซเชเชฎเชพเช เชเชตเชพ เชตเซเชกเชฟเชฏเซ เชเชฎเซเชฐเซ.
- เชตเชฟเชกเชฟเชเช เชเซ เชเซ เชซเชเซเชค เชธเซเชงเซ เชฒเชฟเชเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชเชชเชฒเชฌเซเชง เชเซ เชคเซ เชธเซเชฅเชพเชจเชฟเช เชชเซเชฒเซเชฒเชฟเชธเซเชเชฎเชพเช เชถเชพเชฎเซเชฒ เชฅเช เชถเชเชถเซ เชจเชนเซเช, เชญเชฒเซ เชคเชฎเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชคเชฎเชพเชฎ เชตเชฟเชกเชฟเชเช เชกเชพเชเชจเชฒเซเชก เชเชฐเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ:
-
เชเซ เชคเชฎเซ เชเซเช เชธเชพเชฐเซเชตเชเชจเชฟเช เชตเชฟเชกเชฟเชฏเซ เชชเชฐ เชเชตเซ เชเซ เชเซเชจเซ เชฒเซเชเชฟเชจเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชฌเซเชฐเชพเชเชเชฐเชฎเชพเช เชเชพเชฒเซ เชเซ, เชชเชฐเชเชคเซ เชชเซเชฒเซเชฏเชฐเชฎเชพเช เชเชพเชฒเชคเซเช เชจเชฅเซ, เชคเซ เชฌเช เชฐเชฟเชชเซเชฐเซเช เชฎเซเชเชฒเซ (เชคเซ เชคเชฆเซเชฆเชจ เชถเชเซเชฏ เชเซ เชเซ เชธเชฎเชธเซเชฏเชพ เชชเชนเซเชฒเชพเชฅเซ เช เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเชฎเชพเช เช เซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชจเซเชฏเซ เชชเชพเชเชช เชเชเซเชธเชเซเชฐเซเชเซเชเชฐ เช เชจเซ เชคเชฎเชพเชฐเซ เชซเชเซเชค เช เชธเชเชธเซเชเชฐเชฃ เชธเชพเชฅเซ เชเชธเซเชฎเซเชฌเชฒเซ เช เชชเชกเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ,
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ ). -
เชเซ เชเชจเซเชเชฐเชจเซเช เชงเซเชฎเซเช เชนเซเชฏ เชคเซ เชเชจเซเชเชฐเชซเซเชธ เชงเซเชฎเซเช เชฅเช เชถเชเซ เชเซ (เชชเชฐเชเชคเซ เชฌเชเชง เชจเชฅเซ)
เช เชเชคเซ
เชฎเชพเชฐเซ เชชเซเชคเซเชฐ เชเซเชฌเซเชฒเซเชเชฎเชพเชเชฅเซ เชธเซเชฎเชธเชเช เชธเซเชฎเชพเชฐเซเช เชเซเชตเซ เชชเชฐ เชเชฏเซ, เชเซ เชเชจเซเชกเซเชฐเซเชเชก เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฒเชพเชตเซ เชถเชเชคเซ เชจเชฅเซ. เชคเซเชฅเซ, เชถเซเชฐเซเชทเซเช เชชเซเชฐเซเชเชเชฒ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชนเชเซ เชชเชฃ เชตเซเชฏเชเซเชคเชฟเชเชค เชเซ.
เชชเชฐเชเชคเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชคเซเชจเซ เชเชชเชฏเซเช เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซ เช เชจเซเชเซเชณ เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ. เชชเซเชฐเชพเชฐเชเชญเชฟเช เชเชพเชฐเซเชฏเชเชพเชฐเซ เชธเชเชธเซเชเชฐเชฃเซเชฎเชพเชเชฅเซ เชชเซเชฐเชฅเชฎ เชเชพเชช เช เชนเชคเซ เชเซ เชนเซเช เชฌเซเชเซ เชฆเซเชจเชฟเชฏเชพเชฎเชพเช เชเซเช. เชฌเชงเซ เชธเชพเชฎเชเซเชฐเซ YouTube เชชเชฐเชฅเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชชเชฐเชเชคเซ เช เชนเชตเซ YouTube เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชเชเช เชฌเซเชเซเช, เชธเชฒเชพเชฎเชค เช เชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเซ, เชเซเชฎ เชเซ เชคเชฎเซ เชคเชฎเชพเชฐเซ เชเชเชเชฎเชพเชเชฅเซ เชธเซเชจเซเชเซเชชเซเชก เชเชพเชขเซเชจเซ เชเชพเชเชจเซ เชฌเชฐเชฃเซเชฎเชพเช เชฎเซเชเซ เชเซ. เช เชจเซ เชคเซ เชฌเชงเซ เชญเชฒเชพเชฎเชฃเซ เชตเชฟเชถเซ เชเซ.
เชธเซเชฐเซเชธ: www.habr.com