假设您有上传视频的 YouTube URL。如果你有它,那么你必须像下面的 URL 那样格式化它。
https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg -- Just add your youtube video Id here
代码片段:
Image.network('https://img.youtube.com/vi/6cwnBBAVIwE/0.jpg'),
6cwnBBAVIwE
- 这是我在此处添加的示例 ID。您可以添加您的 YouTube 视频 ID。
您可以从视频网址获取youtube id,该id是youtube id的最后11位数字
例如这里的视频网址是https://www.youtube.com/watch?v=6cwnBBAVIwE https://www.youtube.com/watch?v=6cwnBBAVIwE
该视频的 ID 是6cwnBBAVIwE
要获取 ID:
String url = "https://www.youtube.com/watch?v=H4p6njjPV_o"
String id = url.substring(url.length -11);
OR
如果上述解决方案不起作用,则可以使用更高级的方法来解决它。
1. 从URL中获取ID
String? convertUrlToId(String url, {bool trimWhitespaces = true}) {
if (!url.contains("http") && (url.length == 11)) return url;
if (trimWhitespaces) url = url.trim();
for (var exp in [
RegExp(
r"^https:\/\/(?:www\.|m\.)?youtube\.com\/watch\?v=([_\-a-zA-Z0-9]{11}).*$"),
RegExp(
r"^https:\/\/(?:www\.|m\.)?youtube(?:-nocookie)?\.com\/embed\/([_\-a-zA-Z0-9]{11}).*$"),
RegExp(r"^https:\/\/youtu\.be\/([_\-a-zA-Z0-9]{11}).*$")
]) {
Match? match = exp.firstMatch(url);
if (match != null && match.groupCount >= 1) return match.group(1);
}
return null;
}
2. 获取缩略图URL
String getThumbnail({
required String videoId,
String quality = ThumbnailQuality.standard,
bool webp = true,
}) =>
webp
? 'https://i3.ytimg.com/vi_webp/$videoId/$quality.webp'
: 'https://i3.ytimg.com/vi/$videoId/$quality.jpg';
Usage:
void main() {
String? videoId = convertUrlToId(
"https://www.youtube.com/watch?v=6cwnBBAVIwE");
String thumbnailUrl = getThumbnail(videoId: videoId ?? "");
print(thumbnailUrl);
}
Output:
https://i3.ytimg.com/vi_webp/6cwnBBAVIwE/sddefault.webp https://i3.ytimg.com/vi_webp/6cwnBBAVIwE/sddefault.webp