Spaces:
Running
Running
Update watcher.py
Browse files- watcher.py +11 -3
watcher.py
CHANGED
|
@@ -45,9 +45,17 @@ def parse_updated_at(value):
|
|
| 45 |
return None
|
| 46 |
|
| 47 |
def extract_youtube_id(text):
|
| 48 |
-
|
| 49 |
-
|
|
|
|
|
|
|
| 50 |
r"youtu\.be/([A-Za-z0-9_-]{11})",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
]
|
| 52 |
for p in patterns:
|
| 53 |
m = re.search(p, text)
|
|
@@ -360,7 +368,7 @@ def main():
|
|
| 360 |
except Exception as e:
|
| 361 |
print(f"結合処理エラー: {e}")
|
| 362 |
message_lines.append(f"結合処理に失敗: {str(e)}")
|
| 363 |
-
message_lines.append(f"ダウンロードが完了しました。\nAPIの変更により、一次的に使用できなくなっておりました。今後は維持していけるように頑張ります。\n
|
| 364 |
# メッセージを送信
|
| 365 |
message = "\n".join(message_lines)
|
| 366 |
send_to_channel(message)
|
|
|
|
| 45 |
return None
|
| 46 |
|
| 47 |
def extract_youtube_id(text):
|
| 48 |
+
_patterns = [
|
| 49 |
+
# クエリパラメータ v= または vi=
|
| 50 |
+
r"(?:[?&](?:v|vi)=)([A-Za-z0-9_-]{11})",
|
| 51 |
+
# youtu.be 短縮リンク
|
| 52 |
r"youtu\.be/([A-Za-z0-9_-]{11})",
|
| 53 |
+
# /embed/ /v/ /shorts/
|
| 54 |
+
r"youtube(?:-nocookie)?\.com/(?:embed|v|shorts)/([A-Za-z0-9_-]{11})",
|
| 55 |
+
# watch? の中に v= が含まれるケース(ioパラメータ等が混ざっても OK)
|
| 56 |
+
r"youtube(?:-nocookie)?\.com/watch\?.*?v=([A-Za-z0-9_-]{11})",
|
| 57 |
+
# hash や他パラメータに混ざるケース: ...#v=xxxx or &v=xxxx
|
| 58 |
+
r"[#&]v=([A-Za-z0-9_-]{11})"
|
| 59 |
]
|
| 60 |
for p in patterns:
|
| 61 |
m = re.search(p, text)
|
|
|
|
| 368 |
except Exception as e:
|
| 369 |
print(f"結合処理エラー: {e}")
|
| 370 |
message_lines.append(f"結合処理に失敗: {str(e)}")
|
| 371 |
+
message_lines.append(f"ダウンロードが完了しました。\nAPIの変更により、一次的に使用できなくなっておりました。今後は維持していけるように頑張ります。\nこのツールの使い方:ダウンロードしたいYoutube動画のURLを貼り付けると、自動でボットがダウンロードURLを生成します。\nシステムについて:このシステムは、Huggingfaceのサーバーより、自動で送信されています。本人がいなくても多分いつでも使えます。動画は、最高画質のものに音声を付けるようにしています。音声を付ける処理に時間がかかりますが、この方法しかありませんでした。")
|
| 372 |
# メッセージを送信
|
| 373 |
message = "\n".join(message_lines)
|
| 374 |
send_to_channel(message)
|