Make getChannelPage and getVideoPage public
This commit is contained in:
parent
f9ca0cab1f
commit
a34e573c1e
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue