Fix error thrown when `captions` are null

This commit is contained in:
Hexah 2020-02-28 22:38:41 +01:00
parent 15806741c2
commit b06e24c8db
2 changed files with 12 additions and 2 deletions

View File

@ -10,6 +10,7 @@ import 'helpers_extension.dart';
/// Caption extension for [YoutubeExplode]
extension CaptionExtension on YoutubeExplode {
/// Gets all available closed caption track infos for given video.
/// Returns an empty list of no caption is available.
Future<List<ClosedCaptionTrackInfo>> getVideoClosedCaptionTrackInfos(
String videoId) async {
if (!YoutubeExplode.validateVideoId(videoId)) {
@ -26,9 +27,15 @@ extension CaptionExtension on YoutubeExplode {
throw VideoUnavailableException(videoId);
}
var captionTracks = playerResponseJson['captions'];
if (captionTracks == null) {
return const [];
}
var trackInfos = <ClosedCaptionTrackInfo>[];
for (var trackJson in playerResponseJson['captions']
['playerCaptionsTracklistRenderer']['captionTracks']) {
for (var trackJson in captionTracks['playerCaptionsTracklistRenderer']
['captionTracks']) {
var url = Uri.parse(trackJson['baseUrl']);
var query = Map<String, String>.from(url.queryParameters);

View File

@ -13,4 +13,7 @@ class Language extends Equatable {
@override
List<Object> get props => [code, name];
@override
String toString() => 'Language: $name';
}