8163c37e83
- 删除 bilibili_extractor.py 及相关文档和配置 - 删除 bilibili_venv 虚拟环境 - 删除测试脚本和生成的B站笔记 - 以后使用 skills/obsidian-kb 提供的B站提取功能
87 lines
2.3 KiB
Python
87 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
完整测试 B站提取器
|
|
"""
|
|
|
|
import sys
|
|
import json
|
|
from pathlib import Path
|
|
|
|
# 添加 src 目录到路径
|
|
sys.path.insert(0, str(Path(__file__).parent / 'skills' / 'obsidian-kb' / 'src'))
|
|
|
|
from extractors.bilibili_extractor import BilibiliExtractor
|
|
|
|
|
|
def main():
|
|
"""测试主函数"""
|
|
print("开始完整测试 B站提取器...\n")
|
|
|
|
# 创建提取器(不使用配置,使用默认值)
|
|
extractor = BilibiliExtractor(config=None)
|
|
|
|
# 测试不同的输入格式
|
|
test_cases = [
|
|
'BV1MnFNz5EDL', # BV号
|
|
'https://www.bilibili.com/video/BV1MnFNz5EDL', # 完整URL
|
|
]
|
|
|
|
for i, source_id in enumerate(test_cases, 1):
|
|
print(f"\n{'='*60}")
|
|
print(f"测试 {i}: {source_id}")
|
|
print(f"{'='*60}\n")
|
|
|
|
try:
|
|
# 解析 source_id
|
|
bvid = extractor._parse_source_id(source_id)
|
|
print(f"✓ 解析 BV 号: {bvid}")
|
|
|
|
# 提取信息
|
|
result = extractor.extract(source_id)
|
|
|
|
print("\n✅ 提取成功!\n")
|
|
|
|
# 元数据
|
|
print("📋 元数据:")
|
|
metadata = result['metadata']
|
|
for key in ['title', 'author', 'bvid', 'duration', 'pubtime']:
|
|
print(f" {key}: {metadata.get(key, '')}")
|
|
|
|
# 统计信息
|
|
print("\n📊 统计信息:")
|
|
stats = result['stats']
|
|
for key in ['view', 'like', 'coin', 'favorite']:
|
|
value = stats.get(key, 0)
|
|
print(f" {key}: {value:,}")
|
|
|
|
# 描述
|
|
print("\n📝 描述:")
|
|
description = result['description']
|
|
if description:
|
|
print(f" {description[:100]}...")
|
|
else:
|
|
print(" (无描述)")
|
|
|
|
# 字幕
|
|
print("\n📺 字幕:")
|
|
subtitle = result['subtitle']
|
|
if subtitle:
|
|
lines = subtitle.split('\n')
|
|
print(f" 共 {len(lines)} 条字幕")
|
|
else:
|
|
print(" (无字幕)")
|
|
|
|
except Exception as e:
|
|
print(f"\n❌ 测试失败: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
|
|
print(f"\n{'='*60}")
|
|
print("测试完成")
|
|
print(f"{'='*60}\n")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|