You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Flutter Dart通过HTTPS获取YouTube关键词

如何用Flutter Dart获取YouTube关键词(含HTTPS请求方式)

前置准备

首先在项目的pubspec.yaml中添加依赖:

dependencies:
  http: ^1.1.0
  html: ^0.15.4

执行flutter pub get完成依赖安装。

完整实现代码

import 'package:http/http.dart' as http;
import 'package:html/parser.dart' as parser;
import 'package:html/dom.dart' as dom;

Future<List<String>> getYouTubeKeywords(String videoUrl) async {
  try {
    // 解析HTTPS地址并发起请求
    Uri url = Uri.parse(videoUrl);
    http.Response response = await http.get(url);
    
    // 解析返回的HTML内容
    dom.Document html = parser.parse(response.body);
    
    // 提取meta标签中的关键词内容
    final keywords = html
        .querySelectorAll('meta[name="keywords"]')
        .map((meta) => meta.attributes['content']?.trim() ?? '')
        .where((keyword) => keyword.isNotEmpty)
        .toList();
    
    return keywords;
  } catch (e) {
    print('获取关键词失败: $e');
    return [];
  }
}

// 使用示例
void main() async {
  List<String> keywords = await getYouTubeKeywords('https://www.youtube.com/watch?v=9ZfRE_DN9a0');
  print('视频关键词: $keywords');
}

核心逻辑说明

  • HTTPS请求:http.get默认支持HTTPS协议,直接传入YouTube视频的HTTPS地址即可完成安全请求,无需额外配置。
  • HTML解析:通过html包解析页面DOM结构,用选择器定位到name="keywords"的meta标签,提取其content属性值(原示例中用innerHtml不准确,实际关键词存在于content属性)。
  • 异常处理:加入try-catch块捕获请求失败、页面结构变更等异常,避免程序崩溃。

注意事项

  • YouTube页面结构可能随时调整,基于DOM解析的方法存在失效风险。
  • 频繁发送未授权请求可能触发反爬机制,导致请求被拦截。
  • 部分视频未设置关键词,此时会返回空列表。

内容的提问来源于stack exchange,提问作者user17595065

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:15:40