Fix error thrown when `captions` are null
This commit is contained in:
parent
15806741c2
commit
b06e24c8db
|
@ -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);
|
||||
|
|
|
@ -13,4 +13,7 @@ class Language extends Equatable {
|
|||
|
||||
@override
|
||||
List<Object> get props => [code, name];
|
||||
|
||||
@override
|
||||
String toString() => 'Language: $name';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue