Comparing AI Tools for code generation - Part 1
Here is the prompt:
The following is an example in dart of using the package `youtube_downloader`. Instead of a widget, I just want a function called youTube_to_mp3(youtubeID) that returns an mp3 that I can then upload. Here is the package and its sample code:
import 'package:flutter/material.dart'; import 'package:youtube_downloader/youtube_downloader.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( primarySwatch: Colors.blue, ), home: DownloadVideo(), ); } } class DownloadVideo extends StatelessWidget { YoutubeDownloader youtubeDownloader = YoutubeDownloader(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: FutureBuilder<VideoInfo?>( future: youtubeDownloader.downloadYoutubeVideo( "https://www.youtube.com/watch?v=yX0LzL9SHig", "mp3"), builder: (context, snapshot) { return snapshot.hasData ? Center( child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Text("${snapshot.data?.authorName}"), Text("${snapshot.data?.authorUrl}"), Text("${snapshot.data?.downloadUrl}"), Text("${snapshot.data?.height}"), Text("${snapshot.data?.providerUrl}"), Text("${snapshot.data?.thumbnailHeight}"), Text("${snapshot.data?.thumbnailWidth}"), Text("${snapshot.data?.thumbnailUrl}"), Text("${snapshot.data?.title}"), Text("${snapshot.data?.type}"), Text("${snapshot.data?.width}"), ]), ) : const CircularProgressIndicator(); }, ), ); } }
I sourced the code from the pub.dev file: https://pub.dev/packages/youtube_downloader/example
ChatGPT 3.5 output
import 'package:youtube_downloader/youtube_downloader.dart';
Future<String?> youTube_to_mp3(String youtubeID) async {
final youtubeDownloader = YoutubeDownloader();
try {
final videoInfo = await youtubeDownloader.downloadYoutubeVideo(
"https://www.youtube.com/watch?v=$youtubeID", "mp3");
return videoInfo?.downloadUrl;
} catch (e) {
print("Error downloading MP3: $e");
return null;
}
}
Bard output
import 'package:youtube_downloader/youtube_downloader.dart';
Future<File?> youTube_to_mp3(String youtubeID) async {
final youtubeDownloader = YoutubeDownloader();
final videoInfo = await youtubeDownloader.downloadYoutubeVideo(
"https://www.youtube.com/watch?v=$youtubeID", "mp3");
if (videoInfo == null) {
return null;
}
return await File(videoInfo.downloadUrl);
}