The resources.Generate
class provides methods to generate various types of text content from videos.
Topics, titles, and hashtags
Description: This method generates topics, titles, and hashtags for a specific video. It uses predefined formats and doesn't require a custom prompt, and it's best for generating immediate and straightforward text representations without specific customization.
Function signature and example:
def gist(
self,
video_id: str,
types: List[Union[str, Literal["topic", "hashtag", "title"]]],
**kwargs
) -> models.GenerateGistResult
result = client.generate.gist(
video_id="<YOUR_VIDEO_ID",
types=["title", "topic", "hashtag"]
)
print("Result ID:", result.id)
if result.title is not None:
print("Title:", result.title)
if result.topics is not None:
print("Topics:")
for topic in result.topics:
print(f" - {topic}")
if result.hashtags is not None:
print("Hashtags:")
for hashtag in result.hashtags:
print(f" - {hashtag}")
Parameters:
Name | Type | Required | Description |
---|---|---|---|
video_id | str | Yes | The unique identifier of the video for which you want to generate text. |
types | List[Union[str, Literal["topic", "hashtag", "title"]]] | Yes | The types of text you want to generate. Available values: topics , titles , hashtags . |
**kwargs | dict | No | Additional keyword arguments for the request. |
Return value: Returns a models.GenerateGistResult
object containing the generated gist elements.
API Reference: For a description of each field in the request and response, see the Generate topics, titles, and hashtags page.
Related guide: Titles, topics, and hashtags.
Summaries, chapters, and highlights
Description: This method generates summaries, chapters, or highlights for your videos. Optionally, you can provide a prompt to customize the output.
Function signature and example:
def summarize(
self,
video_id: str,
type: Union[str, Literal["summary", "chapter", "highlight"]],
*,
prompt: Optional[str] = None,
temperature: Optional[float] = None,
**kwargs
) -> models.GenerateSummarizeResult
result = client.generate.summarize(
video_id="<YOUR_VIDEO_ID>",
prompt="<YOUR_PROMPT>",
temperature=0.7,
type="summary"
)
print(f"Result ID: {result.id}")
if result.summary is not None:
print(f"Summary: {result.summary}")
if result.chapters is not None:
print("Chapters:")
for chapter in result.chapters:
print(f" Chapter {chapter.chapter_number}:")
print(f" Start: {chapter.start}")
print(f" End: {chapter.end}")
print(f" Title: {chapter.chapter_title}")
print(f" Summary: {chapter.chapter_summary}")
if result.highlights is not None:
print("Highlights:")
for highlight in result.highlights:
print(f" Start: {highlight.start}")
print(f" End: {highlight.end}")
print(f" Highlight: {highlight.highlight}")
Parameters:
Name | Type | Required | Description |
---|---|---|---|
video_id | string | Yes | The unique identifier of the video for which you want to generate text. |
type | Union[str, Literal["summary", "chapter", "highlight"] | Yes | The type of text you want to generate. Available values: summaries , chapters , highlights . |
prompt | Optional[str] | No | The prompt to customize the output. |
temperature | Optional[float] | No | The temperature to use in the generation. |
**kwargs | RequestOptions | No | Additional keyword arguments for the request. |
Return value: Returns a models.GenerateSummarizeResult
object containing the generated content.
API Reference: For a description of each field in the request and response, see the Generate summaries, chapters, and highlights page.
Related guide: Summaries, chapters, and highlights.
Open-ended text
Description: This method generates open-ended texts based on your videos.
Function signature and example:
def text(
self,
video_id: str,
prompt: str,
*,
temperature: Optional[float] = None,
**kwargs
) -> models.GenerateOpenEndedTextResult
result = client.generate.text(
video_id="<YOUR_VIDEO_ID>",
prompt="<YOUR_PROMPT>",
temperature=0.7
)
print("Result ID:", result.id)
print(f"Generated Text: {result.data}")
Parameters:
Name | Type | Required | Description |
---|---|---|---|
video_id | str | Yes | The unique identifier of the video for which you want to generate text. |
prompt | str | Yes | The prompt to customize the output. |
temperature | Optional[float] | No | The temperature to use in the generation. |
**kwargs | dict | No | Additional keyword arguments for the request. |
Return value: Returns a models.GenerateOpenEndedTextResult
object containing the generated text.
API Reference: For a description of each field in the request and response, see the Open-ended text page.
Related guide: Open-ended text .
Open-ended text with streaming responses
Description: This method generates open-ended texts and supports streaming responses.
Function signature and example:
def text_stream(
self,
video_id: str,
prompt: str,
*,
temperature: Optional[float] = None,
**kwargs
) -> models.GenerateOpenEndedTextStreamResult
result = client.generate.text_stream(
video_id="<YOUR_VIDEO_ID>",
prompt="<YOUR_PROMPT>",
temperature=0.7
)
for text in result:
print(text)
print(f"Aggregated text: {result.aggregated_text}")
Parameters:
Name | Type | Required | Description |
---|---|---|---|
video_id | str | Yes | The unique identifier of the video for which you want to generate text. |
prompt | str | No | The prompt to customize the output. |
temperature | Optional[float] | No | The temperature to use in the generation. |
**kwargs | dict | No | Additional keyword arguments for the request. |
Return value: Returns a models.GenerateOpenEndedTextStreamResult
object.
API Reference: For a description of each field in the request and response, see the Open-ended text page.
Related guide: Streaming responses .