fetchYoutubeUrls method
- BuildContext context,
- String apiKey, {
- required String query,
Fetches a list of YouTube video URLs based on the provided search query.
The function uses the YouTube Data API to search for videos related to the query.
context
: The BuildContext used to retrieve localization strings.
query
: The search query string.
Returns a list of YouTube video URLs.
Throws an exception if the API request fails.
Implementation
Future<List<String>> fetchYoutubeUrls(BuildContext context, String apiKey,
{required String query}) async {
final String endpoint = 'https://www.googleapis.com/youtube/v3/search';
final Uri url = Uri.parse('$endpoint?key=$apiKey&q=$query&type=video');
// final Uri url = Uri.parse(
// '$endpoint?key=${dotenv.env['YOUTUBE_API_KEY']}&q=$query&type=video');
try {
final response = await http.get(url);
print(response.statusCode);
if (response.statusCode == 200) {
final data = json.decode(response.body);
List<String> videoUrls = [];
for (var item in data['items']) {
String videoId = item['id']['videoId'];
String videoUrl = 'https://www.youtube.com/watch?v=$videoId';
videoUrls.add(videoUrl);
}
return videoUrls;
} else {
// throw Exception('Failed to load YouTube URLs');
// throw Exception(
// AppLocalizations.of(context)!.aiGenerationAPIGemma_errorFetchYoutube);
return [];
}
} catch (e) {
return [];
// throw Exception(
// AppLocalizations.of(context)!.aiGenerationAPIGemma_errorFetchYoutube);
}
}