Make getChannelPage and getVideoPage public

This commit is contained in:
Hexah 2020-03-11 11:27:00 +01:00
parent f9ca0cab1f
commit a34e573c1e
2 changed files with 10 additions and 8 deletions

View File

@ -19,10 +19,10 @@ extension ChannelExtension on YoutubeExplode {
Future<Channel> getChannel(String channelId) async {
if (!validateChannelId(channelId)) {
throw ArgumentError.value(
channelId, 'channelId', 'Invalid YouTube channel id.');
channelId, 'channelId', 'Invalid YouTube channel id');
}
var channelPageHtml = await _getChannelPageHtml(channelId);
var channelPageHtml = await getChannelPage(channelId);
var channelTitle = channelPageHtml
.querySelector('meta[property="og:title"]')
.attributes['content'];
@ -38,7 +38,7 @@ extension ChannelExtension on YoutubeExplode {
Future<String> getChannelId(String username) async {
if (!validateUsername(username)) {
throw ArgumentError.value(
username, 'username', 'Invalid YouTube username.');
username, 'username', 'Invalid YouTube username');
}
var userPageHtml = await _getUserPageHtml(username);
@ -55,7 +55,7 @@ extension ChannelExtension on YoutubeExplode {
[int maxPages = 5]) async {
if (!validateChannelId(channelId)) {
throw ArgumentError.value(
channelId, 'channelId', 'Invalid YouTube channel id.');
channelId, 'channelId', 'Invalid YouTube channel id');
}
var playlistId = 'UU${channelId.replaceFirst('UC', '')}';
@ -64,7 +64,8 @@ extension ChannelExtension on YoutubeExplode {
return playlist.videos;
}
Future<Document> _getChannelPageHtml(String channelId) async {
/// Returns the channel page document.
Future<Document> getChannelPage(String channelId) async {
var url = 'https://www.youtube.com/channel/$channelId?hl=en';
var raw = (await client.get(url)).body;

View File

@ -292,7 +292,7 @@ class YoutubeExplode {
}
Future<PlayerConfiguration> _getPlayerConfigWatchPage(String videoId) async {
var videoWatchPageHtml = await _getVideoWatchPageHtml(videoId);
var videoWatchPageHtml = await getVideoWatchPage(videoId);
var playerConfigScript = videoWatchPageHtml
.querySelectorAll('script')
.map((e) => e.text)
@ -392,7 +392,7 @@ class YoutubeExplode {
var keyWords = details['keywords']?.cast<String>() ?? const <String>[];
var viewCount = int.tryParse(details['viewCount'] ?? '0') ?? 0;
var videoPageHtml = await _getVideoWatchPageHtml(videoId);
var videoPageHtml = await getVideoWatchPage(videoId);
var uploadDate = DateTime.parse(videoPageHtml
.querySelector('meta[itemprop="datePublished"]')
.attributes['content']);
@ -448,7 +448,8 @@ class YoutubeExplode {
return int.tryParse(contentLengthString ?? '') ?? -1;
}
Future<Document> _getVideoWatchPageHtml(String videoId) async {
/// Returns the video watch page document.
Future<Document> getVideoWatchPage(String videoId) async {
var url =
'https://youtube.com/watch?v=$videoId&disable_polymer=true&bpctr=9999999999&hl=en';
var raw = (await client.get(url)).body;