izuemon commited on
Commit
d007736
·
verified ·
1 Parent(s): 82cdbd5

Update watcher.py

Browse files
Files changed (1) hide show
  1. watcher.py +24 -21
watcher.py CHANGED
@@ -97,32 +97,35 @@ def fetch_download_links(youtube_url):
97
 
98
  # ===== 動画と音声の選別 =====
99
  def choose_best_streams(items):
100
- # 映像 + 音声付きは優先しない
101
  video_only = []
102
  audio_only = []
103
 
104
  for item in items:
105
- if item["has_audio"] == "false":
106
- # 映像のみ
 
 
 
 
 
107
  video_only.append(item)
108
- elif item["has_audio"] == "true":
109
- # 音声付き(どちらでも使える)
110
- # 映像付きか音声のみか
111
- if item["quality"] and "p" in item["quality"]:
112
- # これは映像 + 音声付き
113
- video_only.append(item)
114
- else:
115
- audio_only.append(item)
116
-
117
- # 映像は最高画質
118
- video = sorted(video_only,
119
- key=lambda x: int(re.sub(r"[^\d]", "", x["quality"] or "0")),
120
- reverse=True)
121
- audio = sorted(audio_only,
122
- key=lambda x: int(re.sub(r"[^\d]", "", x["quality"] or "0")),
123
- reverse=True)
124
-
125
- return (video[0] if video else None, audio[0] if audio else None)
126
 
127
  # ===== 結合 =====
128
  def merge_video_audio(video_url, audio_url, out_file):
 
97
 
98
  # ===== 動画と音声の選別 =====
99
  def choose_best_streams(items):
 
100
  video_only = []
101
  audio_only = []
102
 
103
  for item in items:
104
+ url = item["url"]
105
+ quality = item["quality"] or ""
106
+ has_audio = item["has_audio"]
107
+
108
+ if url.endswith(".m4a") or "audio" in quality.lower():
109
+ audio_only.append(item)
110
+ else:
111
  video_only.append(item)
112
+
113
+ if not video_only:
114
+ video = None
115
+ else:
116
+ video = sorted(video_only,
117
+ key=lambda x: int(re.sub(r"[^\d]", "", x["quality"] or "0")),
118
+ reverse=True)[0]
119
+
120
+ if not audio_only:
121
+ audio = None
122
+ else:
123
+ audio = sorted(audio_only,
124
+ key=lambda x: int(re.sub(r"[^\d]", "", x["quality"] or "0")),
125
+ reverse=True)[0]
126
+
127
+ return video, audio
128
+
 
129
 
130
  # ===== 結合 =====
131
  def merge_video_audio(video_url, audio_url, out_file):