youtube_api 0.7.2
youtube_api: ^0.7.2 copied to clipboard
YoutubeAPI is a plugin which directly interects with youtube server. Supports Searching video and playlist.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:youtube_api/youtube_api.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
static String key = "YOUR API KEY";// ** ENTER YOUTUBE API KEY HERE **
YoutubeAPI ytApi = new YoutubeAPI(key);
List<YT_API> ytResult = [];
callAPI() async {
print('UI callled');
String query = "FLUTTER";
ytResult = await ytApi.search(query);
setState(() {
print('UI Updated');
});
}
@override
void initState() {
super.initState();
callAPI();
print('hello');
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: Text('Youtube API'),
),
body: new Container(
child: ListView.builder(
itemCount: ytResult.length,
itemBuilder: (_, int index) => listItem(index)
),
)
),
);
}
Widget listItem(index){
return new Card(
child: new Container(
margin: EdgeInsets.symmetric(vertical: 7.0),
padding: EdgeInsets.all(12.0),
child:new Row(
children: <Widget>[
new Image.network(ytResult[index].thumbnail['default']['url'],),
new Padding(padding: EdgeInsets.only(right: 20.0)),
new Expanded(child: new Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Text(
ytResult[index].title,
softWrap: true,
style: TextStyle(fontSize:18.0),
),
new Padding(padding: EdgeInsets.only(bottom: 1.5)),
new Text(
ytResult[index].channelTitle,
softWrap: true,
),
new Padding(padding: EdgeInsets.only(bottom: 3.0)),
new Text(
ytResult[index].url,
softWrap: true,
),
]
))
],
),
),
);
}
}