파이썬을 배우는 이유는 다양하게 있습니다. 새로운 것을 배우는 이유는 일반적으로 원하는 것이 있기 때문이죠. 예를 들어, 반복되는 컴퓨터 업무를 빠르고 효과적으로 해결하기 위해 프로그램을 사용하기도 합니다. 실제로 파이썬을 이용한 업무 자동화에 관련된 이야기는 인터넷에서 쉽게 찾아볼 수 있습니다. 그 밖에도 윈도우에서 특정 기능을 활용하고 싶은 경우, 자신만의 프로그램을 만들고 싶어지기도 합니다.
파이썬에는 다양한 라이브러리, 프레임워크가 존재합니다. 이렇게 존재하는 스크립트 조각들을 모으면, 원하는 기능이 구현된 프로그램 코딩으로 이어질 수 있습니다. 스크립트를 작성할 때는 단순히 파이썬 언어에 맞도록 스크립트를 구성하면 끝입니다. ‘.py’파일을 만드는 것이죠. 여기서 어떤 외관(웹 혹은 프로그램 모습)을 구성한다면 별도의 디자인 관련 라이브러리를 활용해야 합니다. 대표적으로 pyqt, djnago가 있습니다. 윈도우 프로그램의 외관을 만들 때는 pyqt를 이용해 만들고, pyinstaller를 이용해 exe파일로 생성할 수 있습니다.
결과물은 프로그램 디자인이지만 코딩에서는 단순히 코드를 나열하는 텍스트입니다. 이 말은 곧, 익숙하지 않다면 프로그램의 모습을 상상하기 어려울 수 있다는 것을 의미합니다. 시각적인 효과가 나타나지 않는 경우, 세밀하게 원하는 모습을 만들기 어려울 수 있다는 것을 의미합니다. anaconda에 포함되어 있는 qtdesigner를 이용해 외관을 미리 만드는 방법도 있습니다. qtdesigner는 별도의 다운로드를 통해 사용할 수도 있습니다.
여러 방법이 존재할 수 있는데요. 처음에는 익숙하지 않아 쉽지 않을 수 있습니다. 역시 가장 좋은 것은 반복되는 연습 뿐일 수 있겠죠. 조금씩 프로그램을 만드는 과정을 통해 최종적으로 원하는 것을 만들 수 있을 것입니다. 다만, 익숙해지는데 시간이 걸릴 수 있겠죠. 이 부분을 해소할 수 있는 간단한 방법으로 인공지능을 이용하는 방법이 있습니다. 대표적으로 openai의 chatgpt 또는 google의 bard가 있습니다. 최근에는 naver에서도 인공지능을 발표했는데요. 몇가지를 사용한 후, 원하는 것을 이용하면 도움이 될 수 있습니다. 여기서는 openai의 chatgpt를 이용해 ‘유튜브 다운로드 프로그램’을 만들어 봅니다.
chatgpt 홈페이지 이용방법
가장 먼저 openai의 chatgpt 페이지를 이용하는 방법부터 간략하게 살펴봅니다. chat.openai.com 페이지를 이용할 수 있습니다. 홈페이지를 이용하는 경우에는 별도의 비용이 발생되지 않습니다. 흔히 말하는 프롬프트(prompt)를 잘 구성하여 요청하면 그에 맞는 대답을 받을 수 있습니다.
위 사진에서 볼 수 있는 모습이며, Send a message라는 부분에 채팅하듯 내용을 기입하면 됩니다. 간략하게 테스트를 진행해 볼까요.
😺 요청 : 파이썬 pyqt로 유튜브 다운로드하는 프로그램 만들 수 있어?
📣대답(일부):
예, 파이썬과 PyQt를 사용하여 유튜브 동영상을 다운로드하는 프로그램을 만들 수 있습니다. 그러나 유튜브 동영상 다운로드는 유튜브의 이용 약관을 준수해야 하며, 불법 다운로드를 포함한 무단 다운로드는 불법 활동으로 간주될 수 있습니다. 따라서 저작권을 준수하고 합법적인 목적으로만 유튜브 동영상을 다운로드해야 합니다.
유튜브 동영상 다운로드를 위해 사용할 수 있는 Python 라이브러리 중 하나는 “pytube”입니다. PyQt를 사용하여 프로그램의 사용자 인터페이스를 작성하고, pytube를 사용하여 동영상을 다운로드할 수 있습니다.
먼저, PyQt와 pytube를 설치해야 합니다. 아래는 설치 명령어입니다:
※ 참고, chatgpt의 대답 일부
위 내용은 실제로 요청한 후, 받은 대답의 일부를 발췌한 것입니다. 실제로는 코드와 함께 언급되어 있는데요. 코드는 프로그램을 만드는 과정에서 살펴보도록 하겠습니다. gpt를 잘 활용하면 보다 정교하고 복잡한 프로그램도 만들 수 있을 것 같네요.
ChatGpt에서 받은 코드를 이용해 프로그램 제작 3단계.
① ChatGpt에 요청하기
위에서 간단하게 알아본 방법처럼 프롬프트를 잘 구성하여 chatgpt에게 요청을 합니다. 프롬프트의 구성에 따라서 그 결과는 달라질 수 있습니다. 위의 내용을 토대로 요청하여 응답한 코드는 다음과 같습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit, QMessageBox
from pytube import YouTube
class YouTubeDownloaderApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('YouTube Downloader')
self.setGeometry(100, 100, 400, 200)
self.layout = QVBoxLayout()
self.url_input = QLineEdit()
self.layout.addWidget(self.url_input)
self.download_button = QPushButton('Download')
self.download_button.clicked.connect(self.download_video)
self.layout.addWidget(self.download_button)
self.setLayout(self.layout)
def download_video(self):
video_url = self.url_input.text()
try:
yt = YouTube(video_url)
stream = yt.streams.get_highest_resolution()
stream.download()
QMessageBox.information(self, 'Download Complete', 'Video downloaded successfully.')
except Exception as e:
QMessageBox.warning(self, 'Download Error', f'An error occurred: {str(e)}')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = YouTubeDownloaderApp()
window.show()
sys.exit(app.exec_())
② gpt가 알려준 코드를 이용해 스크립트 작성 후 실행
파이썬 코드 스크립트를 작성하고 테스트하기 위해 개발 환경(에디터)을 구성해야 합니다. 스크립트를 단계별로 나눠 결과를 확인하는 경우 혹은 발표, 공유가 목적이라면 anaconda의 jupyter notebook을 이용할 수 있습니다. 그 외에도 기본 파이썬 idle, vscdoe, pycharm, sublime text등의 에디터 중 하나를 이용할 수 있습니다. 여기서는 jupyter notebook을 이용합니다.
코드를 테스트한 결과 충분히 간단하게 사용할 수 있는 유튜브 다운로더 프로그램이 완성되었습니다. 이대로 사용한다면 pyinstaller를 이용해 exe파일로 만들면 되겠죠.
③ 수정 및 보완
개인적으로 url을 입력하는 부분 위에 안내문이 있었으면 좋겠다는 생각이 듭니다. 다시 gpt에게 해당 부분을 요청할 수 있습니다. chatgpt의 가장 큰 장점은 대화 내용이 이어질 수 있다는 것이기에 gpt가 준 코드를 수정하는 기능도 충실히 이행할 수 있습니다.