BeylerBeyi01
Yeni Üye
- Katılım
- 19 Eyl 2024
- Mesajlar
- 19
- Beğeniler
- 3
eline emeğine sağlıkMerhabalar Ben Rhanta
Bu Gün Sizlere Gpt'den yardım alarak Kodladığım Video Playeri Paylaşıcam
Öncelikle Python Kodunu Açıyorsunuz Tabii Pc nizde vlc kurulu olması gerek vlc kütüphanesi kullandım çünkü
ardından sol alta video ekle düğmesi var ona bas videonu sey sonra oynat tusuna bas
extra olarak çeviri özelliği ekledim onun için dosya indirmeniz gerekiyor ben denemedim siz denersiniz
Sizler Deneyip Geliştirirsiniz İyi Kullanımlar
VLC KÜTÜPHANESİNİ İNDİRMEK İÇİN : pip install python-vlc
Translate Kütüphanesini İndirmek İçin : pip install googletrans==4.0.0-rc1
Python:import tkinter as tk from tkinter import filedialog, ttk import vlc import os from googletrans import Translator # Rhanta ve Gpt Tarafından Kodlanmıştır import json class VideoPlayer: def __init__(self, root): self.root = root self.root.title("🎥 CheatGlobal Video Oynatıcı") self.root.geometry("800x600") self.vlc_instance = vlc.Instance() self.player = self.vlc_instance.media_player_new() self.history_file = "play_history.json" self.play_history = self.load_play_history() self.video_panel = tk.Frame(self.root) self.video_panel.pack(fill="both", expand=1) self.is_paused = False self.is_fullscreen = False self.is_pip_mode = False self.load_button = self.create_button("📂 Video Seç", self.load_video, "#4CAF50") self.load_button.pack(side="left") self.play_button = self.create_button("▶️ Oynat", self.play_video, "#2196F3") self.play_button.pack(side="left") self.pause_button = self.create_button("⏸️ Duraklat", self.pause_video, "#FFC107") self.pause_button.pack(side="left") self.stop_button = self.create_button("⏹️ Durdur", self.stop_video, "#F44336") self.stop_button.pack(side="left") self.pip_button = self.create_button("🖼️ PiP Modu", self.toggle_pip_mode, "#9C27B0") self.pip_button.pack(side="left") self.subtitle_button = self.create_button("📝 Altyazı Seç", self.load_subtitle, "#FF5722") self.subtitle_button.pack(side="left") self.translate_button = self.create_button("🌐 Çeviri", self.translate_subtitle, "#3F51B5") self.translate_button.pack(side="left") self.volume_slider = ttk.Scale(self.root, from_=0, to=100, orient="horizontal", command=self.set_volume) self.volume_slider.set(50) self.volume_slider.pack(side="right", padx=10) self.progress = ttk.Scale(self.root, from_=0, to=100, orient="horizontal", command=self.set_position) self.progress.pack(fill="x", padx=10) self.update_time() def create_button(self, text, command, color): button = tk.Button(self.root, text=text, command=command, bg=color, fg="white", font=("Arial", 12, "bold"), relief="raised", bd=2) return button def load_play_history(self): if os.path.exists(self.history_file): with open(self.history_file, "r") as f: return json.load(f) return {} def save_play_history(self, video_path, position): self.play_history[video_path] = position with open(self.history_file, "w") as f: json.dump(self.play_history, f) def reset_player(self): self.player.stop() self.player.release() self.player = self.vlc_instance.media_player_new() def load_video(self): video_path = filedialog.askopenfilename(filetypes=[("Video dosyaları", "*.mp4 *.avi *.mov")]) if video_path: self.reset_player() media = self.vlc_instance.media_new(video_path) self.player.set_media(media) self.player.set_hwnd(self.video_panel.winfo_id()) self.player.audio_output_set("stereo") if video_path in self.play_history: self.player.set_position(self.play_history[video_path]) self.play_video() def play_video(self): if self.is_paused: self.player.set_pause(0) else: self.player.play() self.is_paused = False def pause_video(self): self.player.pause() self.is_paused = True def stop_video(self): self.player.stop() self.player.set_media(None) video_path = self.player.get_media().get_mrl() self.save_play_history(video_path, self.player.get_position()) def set_volume(self, event): volume = int(self.volume_slider.get()) self.player.audio_set_volume(volume) self.player.audio_set_delay(0) def set_position(self, event): pos = self.progress.get() / 100 self.player.set_position(pos) def toggle_pip_mode(self): if not self.is_pip_mode: self.root.geometry("300x200") self.root.attributes("-topmost", True) else: self.root.geometry("800x600") self.root.attributes("-topmost", False) self.is_pip_mode = not self.is_pip_mode def load_subtitle(self): subtitle_path = filedialog.askopenfilename(filetypes=[("Altyazı dosyaları", "*.srt *.vtt")]) if subtitle_path: self.player.video_set_subtitle_file(subtitle_path) def translate_subtitle(self): subtitle_path = filedialog.askopenfilename(filetypes=[("Altyazı dosyaları", "*.srt *.vtt")]) if subtitle_path: with open(subtitle_path, "r", encoding="utf-8") as f: original_subtitles = f.read() translator = Translator() translated_subtitles = translator.translate(original_subtitles, dest="tr").text with open("translated_subtitle.srt", "w", encoding="utf-8") as f: f.write(translated_subtitles) self.player.video_set_subtitle_file("translated_subtitle.srt") def update_time(self): if self.player.is_playing(): total_time = self.player.get_length() current_time = self.player.get_time() if total_time > 0: pos = (current_time / total_time) * 100 self.progress.set(pos) self.root.after(500, self.update_time) if __name__ == "__main__": root = tk.Tk() player = VideoPlayer(root) root.mainloop()