bep40 commited on
Commit
4fc94ce
·
verified ·
1 Parent(s): 92df702

Fix shorts: sequential fetch (more reliable), timeout 120s, duongdenworldcup as fallback

Browse files
Files changed (1) hide show
  1. main.py +9 -8
main.py CHANGED
@@ -164,7 +164,7 @@ def extract_xemlaibongda_video(url):
164
  # ===== YOUTUBE SHORTS =====
165
  def _yt_channel_shorts(channel, count=15):
166
  try:
167
- result=subprocess.run(["yt-dlp","--no-check-certificates","--flat-playlist","--dump-json","--no-download","--playlist-end",str(count),f"https://www.youtube.com/@{channel}/shorts"],capture_output=True,text=True,timeout=90)
168
  videos=[]
169
  for line in result.stdout.strip().split('\n'):
170
  if not line:continue
@@ -178,13 +178,14 @@ def _yt_channel_shorts(channel, count=15):
178
  def scrape_shorts():
179
  """Fetch shorts from @baodantri7941 + @baosuckhoedoisongboyte, sorted newest first"""
180
  vids=[]
181
- with ThreadPoolExecutor(2) as ex:
182
- futs=[ex.submit(_yt_channel_shorts,ch,15) for ch in ["baodantri7941","baosuckhoedoisongboyte"]]
183
- for f in as_completed(futs):
184
- try:
185
- r=f.result()
186
- if r:vids.extend(r)
187
- except:pass
 
188
  vids.sort(key=lambda x:x.get("id",""),reverse=True)
189
  return vids[:20]
190
  def scrape_worldcup_shorts():
 
164
  # ===== YOUTUBE SHORTS =====
165
  def _yt_channel_shorts(channel, count=15):
166
  try:
167
+ result=subprocess.run(["yt-dlp","--no-check-certificates","--flat-playlist","--dump-json","--no-download","--playlist-end",str(count),f"https://www.youtube.com/@{channel}/shorts"],capture_output=True,text=True,timeout=120)
168
  videos=[]
169
  for line in result.stdout.strip().split('\n'):
170
  if not line:continue
 
178
  def scrape_shorts():
179
  """Fetch shorts from @baodantri7941 + @baosuckhoedoisongboyte, sorted newest first"""
180
  vids=[]
181
+ for ch in ["baodantri7941","baosuckhoedoisongboyte"]:
182
+ try:
183
+ r=_yt_channel_shorts(ch,12)
184
+ if r:vids.extend(r)
185
+ except:pass
186
+ if not vids:
187
+ try:vids=_yt_channel_shorts("duongdenworldcup_2026",15)
188
+ except:pass
189
  vids.sort(key=lambda x:x.get("id",""),reverse=True)
190
  return vids[:20]
191
  def scrape_worldcup_shorts():