Files
BumbleCee/youtube-search.py

54 lines
1.4 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(1, 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 list_to_return:
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"])