Python İle Video Player

  • Konuyu Başlatan Konuyu Başlatan Norway
  • Başlangıç tarihi Başlangıç tarihi

Norway

Efsane Üye
Katılım
7 Haz 2024
Mesajlar
3,931
Beğeniler
1,375
İletişim
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()
 
eyvallah bi filmlist yapar izlerim her gün
 
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()
gereksiz bir şey bence ama yinede iyi
 
ağırlıklı gpt ama olsun deneyerek öğrenmeye çalışıyorsun
 
Yaptıklarınız için teşekkür ederim ama bir ricam var her filmi açıp sorunsuz hd izleyebileceğim bir şey yaparsanız hepimiz için çok iyi olur.
 
ağırlıklı gpt ama olsun deneyerek öğrenmeye çalışıyorsun
dediğim gibi yeni başladım zaten kendim video playeri tek basıma yapamazdım sizlerin kolayına gelmesi için gpt ile yaptım iyi günler

Yaptıklarınız için teşekkür ederim ama bir ricam var her filmi açıp sorunsuz hd izleyebileceğim bir şey yaparsanız hepimiz için çok iyi olur.
O kadar Bilgim yok fakat öğrenince yaparım sözüm olsun
 
dediğim gibi yeni başladım zaten kendim video playeri tek basıma yapamazdım sizlerin kolayına gelmesi için gpt ile yaptım iyi günler
pythonda bu sekil seyler ile ugrasacak isen api kullanmayı öğren daha çok işine yarayacak
 
dediğim gibi yeni başladım zaten kendim video playeri tek basıma yapamazdım sizlerin kolayına gelmesi için gpt ile yaptım iyi günler
tavsiyem gptye baglı kalmaman temel py öğrensen yeter zaten kutuphaneler herseyi saglıyor
 

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

Geri
Üst Alt