mirror of
https://github.com/HappyTanuki/BumbleCee.git
synced 2025-10-25 17:35:58 +00:00
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import sys
|
|
|
|
if len(sys.argv) != 2:
|
|
sys.exit()
|
|
|
|
import urllib.parse
|
|
|
|
def uri_validator(x):
|
|
try:
|
|
result = urllib.parse.urlparse(x)
|
|
return all([result.scheme, result.netloc])
|
|
except AttributeError:
|
|
return False
|
|
|
|
#URL인 경우
|
|
if uri_validator(sys.argv[1]) == True:
|
|
result = urllib.parse.urlparse(sys.argv[1])
|
|
|
|
#youtu.be짧은 주소인 경우
|
|
if (result.netloc == 'youtu.be'):
|
|
print(result.path[1:13])
|
|
|
|
#플레이리스트인 경우
|
|
if result.path == '/playlist':
|
|
import re, requests
|
|
|
|
response = requests.get("https://www.youtube.com/playlist?" + result.query)
|
|
|
|
pattern = re.compile('"videoId":"(.{11})"')
|
|
|
|
IDlist = set(pattern.findall(response.text))
|
|
|
|
# list_to_return = list()
|
|
# list_to_return.append(IDlist[0])
|
|
# list_to_return_count = 0
|
|
# for it in range(0, len(list_to_return)):
|
|
# if (list_to_return[list_to_return_count] == IDlist[it]):
|
|
# continue
|
|
# else:
|
|
# list_to_return[list_to_return_count] = IDlist[it]
|
|
# list_to_return_count += 1
|
|
|
|
for it in IDlist:
|
|
print(it)
|
|
#영상인 경우
|
|
elif result.path == '/watch':
|
|
print(result.query[2:13])
|
|
else:
|
|
from youtube_search import YoutubeSearch
|
|
|
|
results = YoutubeSearch(sys.argv[1], max_results=10).to_dict()
|
|
|
|
#검색 결과가 없는 경우 확인 불가
|
|
print(results[0]["id"]) |