Rthur2003 commited on
Commit
0fced84
·
1 Parent(s): 61ddcc8

refactor: Optimize YouTube comment generation by reducing API calls and improving efficiency

Browse files
Files changed (1) hide show
  1. app/routes/commend/router.py +12 -20
app/routes/commend/router.py CHANGED
@@ -153,17 +153,12 @@ async def get_video_info(request: GenerateCommentRequest):
153
  async def generate_youtube_comment(request: GenerateCommentRequest):
154
  """
155
  Generate an AI-powered comment for a YouTube video.
156
-
157
- The comment is generated based on:
158
- - Video title, description, and metadata
159
- - Existing comments on the video
160
- - Video transcript (if available)
161
- - Selected language and style
162
  """
163
  start_time = time.time()
164
  video_id = extract_video_id(request.videoUrl)
165
 
166
- # 1. Fetch video details
167
  details, error = get_video_details(request.videoUrl)
168
  if error:
169
  logger.warning(f"Video details error: {error}")
@@ -172,26 +167,23 @@ async def generate_youtube_comment(request: GenerateCommentRequest):
172
  detail=f"Could not fetch video details: {error}"
173
  )
174
 
175
- # 2. Fetch channel stats
176
- if details.get('channelId'):
177
- channel_info, _ = get_channel_details(details['channelId'])
178
- if channel_info:
179
- details['subscriberCount'] = channel_info.get('subscriberCount')
180
 
181
- # 3. Fetch existing comments
182
- existing_comments, _ = get_video_comments(video_id, max_results=10)
183
 
184
- # 4. Fetch and summarize transcript
185
- transcript_summary = None
186
  has_transcript = False
 
187
  transcript_text, _ = get_video_transcript(video_id)
188
  if transcript_text:
189
  has_transcript = True
190
- summary, _ = summarize_transcript(transcript_text, request.language)
191
- if summary:
192
- transcript_summary = summary
193
 
194
- # 5. Generate comment
195
  generated_text, gen_error = generate_comment(
196
  video_details=details,
197
  comment_style=request.commentStyle,
 
153
  async def generate_youtube_comment(request: GenerateCommentRequest):
154
  """
155
  Generate an AI-powered comment for a YouTube video.
156
+ Optimized for minimal API calls and token usage.
 
 
 
 
 
157
  """
158
  start_time = time.time()
159
  video_id = extract_video_id(request.videoUrl)
160
 
161
+ # 1. Fetch video details (required)
162
  details, error = get_video_details(request.videoUrl)
163
  if error:
164
  logger.warning(f"Video details error: {error}")
 
167
  detail=f"Could not fetch video details: {error}"
168
  )
169
 
170
+ # 2. Skip channel stats - not critical, saves 1 API call
171
+ # Channel name is already in video details
 
 
 
172
 
173
+ # 3. Fetch only top 5 comments (reduced from 10)
174
+ existing_comments, _ = get_video_comments(video_id, max_results=5)
175
 
176
+ # 4. Skip transcript summarization - saves 1 Gemini API call
177
+ # Use raw transcript snippet instead if available
178
  has_transcript = False
179
+ transcript_summary = None
180
  transcript_text, _ = get_video_transcript(video_id)
181
  if transcript_text:
182
  has_transcript = True
183
+ # Just take first 500 chars as context, no separate API call
184
+ transcript_summary = transcript_text[:500]
 
185
 
186
+ # 5. Generate comment (single Gemini call)
187
  generated_text, gen_error = generate_comment(
188
  video_details=details,
189
  comment_style=request.commentStyle,