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
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()