[ChatGpt] 파이썬 코드 / pyqt 프로그램 만들기

chatgpt는 다양한 기능을 제공합니다. 기본적으로 대화형 ai의 모습에 충실합니다. 우리가 물어보는 질문 혹은 요구 사항에 맞춰 대답합니다. 코드도 그저 텍스트로 이루어져 있습니다. 즉, 파이썬의 pyqt 프로그램도 chatgpt prompt에 따라 충분히 활용할 수 있는 완성도를 보이고 있습니다.

어떤 프로젝트를 진행할 것인지 기획하지 않으면 원하는 것을 얻을 수는 없습니다. 결국, 방향성을 정하고, 수정을 통해 원하는 모습을 만들어가야 합니다. 이번에는 기본적인 “how to make python pyqt code with chatgpt” 라는 부제목을 가지고 내용을 이어갑니다.

ChatGpt 파이썬 코드 요청하기

가장 먼저 해봐야할 것은 chatgpt에게 파이썬 코드를 요청해봐야 합니다. 물어볼 내용은 다양하게 있겠죠. 단순한 내용이 좋습니다. 그래야 정확한 코드인지 확인하기가 어렵지 않기 때문입니다. “파이썬으로 유튜브 동영상 다운로드 코드”를 테스트용 prompt로 진행합니다.

파이썬으로 유튜브 동영상 다운로드 할 수 있는 코드 알려줘.

! 중요한 내용이 있습니다. 단순한 실습 혹은 테스트용입니다. 유튜브 동영상은 저작권이 있으니까, 무분별하게 사용해서는 안됩니다. 관련 법을 꼭 확인하세요.

chatgpt가 대답한 내용(코드) 테스트

잠시 기다리면 gpt가 적절하게 대답을 합니다. 우선 아래 코드를 확인합니다.

from pytube import YouTube

# 다운로드 받을 동영상 URL 지정
video_url = "https://www.youtube.com/watch?v=VIDEO_ID"

# YouTube 객체 생성
yt = YouTube(video_url)

# 가장 품질이 높은 비디오 스트림 선택
video_stream = yt.streams.get_highest_resolution()

# 동영상 다운로드
video_stream.download(output_path="다운로드할_폴더_경로")

print("다운로드가 완료되었습니다.")

주어진 코드입니다. pytube라는 파이썬 라이브러리를 이용하고 있습니다. (pytube 공식 사이트 보기). 코드는 그리 복잡하지 않습니다. 실제로 활용할 수 있을 것 같습니다. 우선 테스트를 진행합니다.

Jupyter Notebook을 이용해 테스트를 진행합니다.

유튜브에서 적당한 동영상을 선택합니다. 개인적으로 음악을 좋아하기에 음악 동영상으로 선택했습니다. 플레이 시간이 너무 긴 것은 용량이 큽니다. 적당한 길이의 동영상을 선택합니다.

위 코드에서 video_url 부분에 원하는 동영상 url을 string 형식으로 지정해 줍니다. 그리고 스크립트를 실행합니다. 용량에 따라 걸리는 속도에는 차이가 있을 수 있습니다.

pytube 공식 사이트에는 라이브러리에 대한 설명이 있습니다. gpt가 제시한 코드에는 가장 품질이 좋은 것을 선택하도록 되어 있습니다. 공식문서를 확인하여 옵션을 추가할 수도 있습니다.

제시된 코드가 잘 작동한 것을 확인할 수 있습니다. 이제 해당 코드를 이용해 pyqt 프로그램으로 만들어봅니다. 물론, chatgpt가 해줄 겁니다.

주어진 코드 pyqt를 이용해 프로그램으로 만들기 – chatgpt

적당한 prompt를 생각해야 합니다. 예를 들어, ‘코드를 줄테니 pyqt로 만들어줘.’ 혹은 ‘이런 저런 레이아웃에 맞춰서 만들어줘’ 등의 prompt를 생각해야 합니다. 그래야 원하는 결과를 얻을 수 있겠죠.

  • 코드를 주고, 비디오 url을 넣으면 동영상을 다운로드 할 수 있도록 pyqt로 만들어줘.
  • 웹에서 gpt를 이용하는 것은 맥락이 형성되어 있기 때문에 자연스럽게 대화를 이어가면 됩니다.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButton, QVBoxLayout, QWidget
from pytube import YouTube

class YouTubeDownloaderApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("YouTube Downloader")
        self.setGeometry(100, 100, 400, 200)

        self.central_widget = QWidget(self)
        self.setCentralWidget(self.central_widget)

        self.layout = QVBoxLayout()

        self.url_label = QLabel("YouTube Video URL:")
        self.url_input = QLineEdit()
        self.find_button = QPushButton("Find")
        self.result_label = QLabel("Result:")

        self.layout.addWidget(self.url_label)
        self.layout.addWidget(self.url_input)
        self.layout.addWidget(self.find_button)
        self.layout.addWidget(self.result_label)

        self.find_button.clicked.connect(self.download_video)
        self.url_input.returnPressed.connect(self.download_video)

        self.central_widget.setLayout(self.layout)

    def download_video(self):
        video_url = self.url_input.text()
        try:
            yt = YouTube(video_url)
            video_stream = yt.streams.get_highest_resolution()
            download_folder = "다운로드할_폴더_경로"  # 다운로드할 폴더 경로로 변경해야 합니다.
            video_stream.download(output_path=download_folder)
            self.result_label.setText("다운로드가 완료되었습니다.")
        except Exception as e:
            self.result_label.setText(f"다운로드 중 오류 발생: {str(e)}")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = YouTubeDownloaderApp()
    window.show()
    sys.exit(app.exec_())

대충 위 코드가 만들어 졌습니다. 또 확인해 봐야겠죠. jupyter notebook으로 확인합니다.

아주 심플하지만 핵심 기능에 충실해 보이는 프로그램이 만들어 졌습니다. 이제 성능을 테스트합니다. 마찬가지로 동영상 url을 프로그램의 url 입력 부분에 붙여넣기 한 후, Find 버튼을 선택합니다.

결과적으로 아주 잘 작동하는 프로그램을 하나 완성했습니다. 크게 복잡하지 않은 코드며, 레이아웃만 잘 형성한 후, 연결만 하면 되는 것이지만 chatgpt를 이용해 쉽게 실습을 할 수 있다는 점이 매력적인 것 같습니다.

마치며.

위에서 알아본 내용은 크게 어렵지 않습니다. pytube라는 라이브러리를 사용할 수 있고, pyqt라는 라이브러리를 사용할 수 있다면 쉽게 만들 수 있습니다. 복잡하지 않기 때문이죠. 하지만, 옵션을 추가하고, 더 다양한 기능을 넣는다면 오랜 시간이 걸릴 수 있습니다. 당연한 이야기겠죠. chatgpt를 이용해 기본적인 틀을 만드는 것도 좋은 방법일 것 같습니다. 글쓰기로 따지면 초안이 될 수 있겠죠.

참고.

댓글 남기기