Skip to main content
YouTube 是由 Google 创建的在线视频分享和社交媒体平台。
本笔记本介绍如何从 YouTube 字幕 加载文档。
from langchain_community.document_loaders import YoutubeLoader
pip install -qU  youtube-transcript-api
loader = YoutubeLoader.from_youtube_url(
    "https://www.youtube.com/watch?v=QsYGlZkevEg", add_video_info=False
)
loader.load()

添加视频信息

pip install -qU  pytube
loader = YoutubeLoader.from_youtube_url(
    "https://www.youtube.com/watch?v=QsYGlZkevEg", add_video_info=True
)
loader.load()

添加语言偏好

language 参数:这是一个按降序优先级排列的语言代码列表,默认为 en(英语)。 translation 参数:翻译偏好,可将可用字幕翻译为您偏好的语言。
loader = YoutubeLoader.from_youtube_url(
    "https://www.youtube.com/watch?v=QsYGlZkevEg",
    add_video_info=True,
    language=["en", "id"],
    translation="en",
)
loader.load()

获取带时间戳的分块字幕

获取一个或多个 Document 对象,每个对象包含一段视频字幕。可以指定每块的时长(以秒为单位)。每块的元数据包含一个 YouTube 视频 URL,点击后会从该块对应的时间点开始播放视频。 transcript_format 参数:langchain_community.document_loaders.youtube.TranscriptFormat 中的一个值。此处使用 TranscriptFormat.CHUNKS chunk_size_seconds 参数:每块字幕数据对应的视频秒数(整数)。默认为 120 秒。
from langchain_community.document_loaders.youtube import TranscriptFormat

loader = YoutubeLoader.from_youtube_url(
    "https://www.youtube.com/watch?v=TKCMw0utiak",
    add_video_info=True,
    transcript_format=TranscriptFormat.CHUNKS,
    chunk_size_seconds=30,
)
print("\n\n".join(map(repr, loader.load())))

通过 Google Cloud 加载 YouTube 内容

前提条件

  1. 创建或使用已有的 Google Cloud 项目
  2. 启用 YouTube API
  3. 为桌面应用授权凭证
  4. pip install -U google-api-python-client google-auth-httplib2 google-auth-oauthlib youtube-transcript-api

🧑 导入 Google Docs 数据的操作说明

默认情况下,GoogleDriveLoader 期望 credentials.json 文件位于 ~/.credentials/credentials.json,但可通过 credentials_file 关键字参数进行配置。token.json 也类似。注意,首次使用加载器时会自动创建 token.json GoogleApiYoutubeLoader 可从 Google Docs 文档 id 列表或文件夹 id 加载内容。您可以从 URL 中获取文件夹和文档 id: 注意,根据您的设置,可能需要配置 service_account_path。详情请参阅此处
# 初始化 GoogleApiClient
from pathlib import Path

from langchain_community.document_loaders import GoogleApiClient, GoogleApiYoutubeLoader

google_api_client = GoogleApiClient(credentials_path=Path("your_path_creds.json"))


# 使用频道
youtube_loader_channel = GoogleApiYoutubeLoader(
    google_api_client=google_api_client,
    channel_name="Reducible",
    captions_language="en",
)

# 使用 YouTube ID

youtube_loader_ids = GoogleApiYoutubeLoader(
    google_api_client=google_api_client, video_ids=["TrdevFK_am4"], add_video_info=True
)

# 返回 Document 列表
youtube_loader_channel.load()