Mise a jour du nom du fichier principal

This commit is contained in:
Phytacode 2024-11-15 14:07:58 +01:00
parent be8cb3c5d2
commit 329c487812

View File

@ -1,88 +1,88 @@
import yt_dlp import yt_dlp
from PIL import Image from PIL import Image
import requests import requests
from io import BytesIO from io import BytesIO
from tkinter import * from tkinter import *
from PIL import Image, ImageTk from PIL import Image, ImageTk
def add_url(): def add_url():
url = EntryURL.get() url = EntryURL.get()
ydl_opts = {} ydl_opts = {}
with yt_dlp.YoutubeDL(ydl_opts) as ydl: with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=False) info = ydl.extract_info(url, download=False)
title = info.get('title', 'Titre indisponible') title = info.get('title', 'Titre indisponible')
subtitlte = info.get('artist', info.get('uploader', 'Artiste indisponible')) + ' · ' + '{:,}'.format(info.get('view_count', 'Nombre de vue indisponible')).replace(',', ' ') + ' vues' subtitlte = info.get('artist', info.get('uploader', 'Artiste indisponible')) + ' · ' + '{:,}'.format(info.get('view_count', 'Nombre de vue indisponible')).replace(',', ' ') + ' vues'
thumbnail_url = info.get('thumbnail') thumbnail_url = info.get('thumbnail')
response = requests.get(thumbnail_url) response = requests.get(thumbnail_url)
image = Image.open(BytesIO(response.content)) image = Image.open(BytesIO(response.content))
width, height = image.size width, height = image.size
# Calculer les dimensions du carré # Calculer les dimensions du carré
square_size = min(width, height) # Le carré a la taille de la plus petite dimension (largeur ou hauteur) square_size = min(width, height) # Le carré a la taille de la plus petite dimension (largeur ou hauteur)
# Calculer les coordonnées du coin supérieur gauche du carré # Calculer les coordonnées du coin supérieur gauche du carré
left = (width - square_size) // 2 left = (width - square_size) // 2
top = (height - square_size) // 2 top = (height - square_size) // 2
# Calculer les coordonnées du coin inférieur droit du carré # Calculer les coordonnées du coin inférieur droit du carré
right = left + square_size right = left + square_size
bottom = top + square_size bottom = top + square_size
# Découper l'image carrée # Découper l'image carrée
image = image.crop((left, top, right, bottom)) image = image.crop((left, top, right, bottom))
image.thumbnail((50, 50)) image.thumbnail((50, 50))
# Création d'un cadre pour contenir chaque élément # Création d'un cadre pour contenir chaque élément
cadre = Frame(MoviesList) cadre = Frame(MoviesList)
cadre.pack(fill=X, padx=10, pady=5) cadre.pack(fill=X, padx=10, pady=5)
# Charger l'image et la convertir en PhotoImage pour nter # Charger l'image et la convertir en PhotoImage pour nter
image = ImageTk.PhotoImage(image) image = ImageTk.PhotoImage(image)
image_label = Label(cadre, image=image) image_label = Label(cadre, image=image)
image_label.image = image # Garder une référence pour éviter le garbage collection image_label.image = image # Garder une référence pour éviter le garbage collection
image_label.pack(side=LEFT, padx=5) image_label.pack(side=LEFT, padx=5)
# Ajouter les textes (texte1 et texte2) # Ajouter les textes (texte1 et texte2)
texte_frame = Frame(cadre) texte_frame = Frame(cadre)
texte_frame.pack(side=LEFT, padx=10, fill=BOTH, expand=True) texte_frame.pack(side=LEFT, padx=10, fill=BOTH, expand=True)
label_texte1 = Label(texte_frame, text=title, font=("Arial", 12, "bold")) label_texte1 = Label(texte_frame, text=title, font=("Arial", 12, "bold"))
label_texte1.pack(anchor="w") label_texte1.pack(anchor="w")
label_texte2 = Label(texte_frame, text=subtitlte, font=("Arial", 10)) label_texte2 = Label(texte_frame, text=subtitlte, font=("Arial", 10))
label_texte2.pack(anchor="w") label_texte2.pack(anchor="w")
# Ajouter un menu contextuel sur le côté droit # Ajouter un menu contextuel sur le côté droit
menu_button = Menubutton(cadre, text="Suprimer", relief=FLAT) menu_button = Menubutton(cadre, text="Suprimer", relief=FLAT)
menu_button.pack(side=RIGHT) menu_button.pack(side=RIGHT)
EntryURL.delete(0,END) EntryURL.delete(0,END)
# Fenêtre principale # Fenêtre principale
root = Tk() root = Tk()
root.title("Téléchargeur youtube") root.title("Téléchargeur youtube")
root.geometry("400x200") root.geometry("400x200")
EntryFrame = Frame(root) EntryFrame = Frame(root)
EntryFrame.pack(fill="x", expand=True, padx=5, pady=2.5) EntryFrame.pack(fill="x", expand=True, padx=5, pady=2.5)
EntryURL = Entry(EntryFrame) EntryURL = Entry(EntryFrame)
EntryURL.pack(side=LEFT, fill="x", expand=True, padx=2.5) EntryURL.pack(side=LEFT, fill="x", expand=True, padx=2.5)
EntryButton = Button(EntryFrame, text="Ajouter", command=add_url) EntryButton = Button(EntryFrame, text="Ajouter", command=add_url)
EntryButton.pack(side=RIGHT, padx=3.5) EntryButton.pack(side=RIGHT, padx=3.5)
MoviesList = LabelFrame(root, text="Vidéo à télécharger", relief=GROOVE) MoviesList = LabelFrame(root, text="Vidéo à télécharger", relief=GROOVE)
MoviesList.pack(fill="both", expand=True, padx=5, pady=2.5) MoviesList.pack(fill="both", expand=True, padx=5, pady=2.5)
root.mainloop() root.mainloop()