|
- import sys
- from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QLineEdit, QVBoxLayout, QFileDialog, QWidget
- import firebase_admin
- from firebase_admin import credentials, storage
-
- class VideoUploader(QMainWindow):
- def __init__(self):
- super(VideoUploader, self).__init__()
-
- # Initialize Firebase Admin SDK
- cred = credentials.Certificate("/home/knight/Python_Prog/UI/chatbot.json")
- firebase_admin.initialize_app(cred, {'storageBucket': 'chatbot-402717.appspot.com'})
-
- self.init_ui()
-
- def init_ui(self):
- self.setWindowTitle('Video Uploader')
- self.setGeometry(100, 100, 400, 200)
-
- self.title_label = QLabel('Video Title:', self)
- self.title_input = QLineEdit(self)
- self.browse_button = QPushButton('Browse', self)
- self.upload_button = QPushButton('Upload', self)
- self.status_label = QLabel(self)
-
- layout = QVBoxLayout()
- layout.addWidget(self.title_label)
- layout.addWidget(self.title_input)
- layout.addWidget(self.browse_button)
- layout.addWidget(self.upload_button)
- layout.addWidget(self.status_label)
-
- widget = QWidget()
- widget.setLayout(layout)
- self.setCentralWidget(widget)
-
- self.browse_button.clicked.connect(self.browse_video)
- self.upload_button.clicked.connect(self.upload_video)
-
- def browse_video(self):
- options = QFileDialog.Options()
- options |= QFileDialog.DontUseNativeDialog
- file_name, _ = QFileDialog.getOpenFileName(self, "Choose Video File", "", "Video Files (*.mp4 *.mkv *.avi);;All Files (*)", options=options)
- if file_name:
- self.video_path = file_name
- self.status_label.setText(f'Selected video: {file_name}')
-
- def upload_video(self):
- try:
- title = self.title_input.text()
- if not title:
- self.status_label.setText('Please enter a title for the video.')
- return
-
- if not hasattr(self, 'video_path'):
- self.status_label.setText('Please select a video to upload.')
- return
-
- # Get a reference to the Firebase Storage bucket
- bucket = storage.bucket()
-
- # Upload the video to Firebase Storage within the specified title folder
- blob = bucket.blob(f'{title}/{title}.mp4')
- blob.upload_from_filename(self.video_path)
- print("Video path: ", self.video_path)
-
- self.status_label.setText('Video uploaded successfully.')
-
- except Exception as e:
- self.status_label.setText(f'Error: {str(e)}')
- print (e)
-
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- window = VideoUploader()
- window.show()
- sys.exit(app.exec_())
|