Python İle Video Player

  • Konuyu Başlatan Konuyu Başlatan Norway
  • Başlangıç tarihi Başlangıç tarihi
Merhabalar 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()
eline emeğine sağlık
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt