Mise a jour du nom du fichier principal
This commit is contained in:
parent
be8cb3c5d2
commit
329c487812
176
v2.py → main.py
176
v2.py → main.py
@ -1,88 +1,88 @@
|
||||
import yt_dlp
|
||||
from PIL import Image
|
||||
import requests
|
||||
from io import BytesIO
|
||||
from tkinter import *
|
||||
from PIL import Image, ImageTk
|
||||
|
||||
|
||||
def add_url():
|
||||
|
||||
url = EntryURL.get()
|
||||
|
||||
ydl_opts = {}
|
||||
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
info = ydl.extract_info(url, download=False)
|
||||
|
||||
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'
|
||||
thumbnail_url = info.get('thumbnail')
|
||||
|
||||
response = requests.get(thumbnail_url)
|
||||
image = Image.open(BytesIO(response.content))
|
||||
width, height = image.size
|
||||
|
||||
# Calculer les dimensions du carré
|
||||
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é
|
||||
left = (width - square_size) // 2
|
||||
top = (height - square_size) // 2
|
||||
|
||||
# Calculer les coordonnées du coin inférieur droit du carré
|
||||
right = left + square_size
|
||||
bottom = top + square_size
|
||||
|
||||
# Découper l'image carrée
|
||||
image = image.crop((left, top, right, bottom))
|
||||
image.thumbnail((50, 50))
|
||||
|
||||
# Création d'un cadre pour contenir chaque élément
|
||||
cadre = Frame(MoviesList)
|
||||
cadre.pack(fill=X, padx=10, pady=5)
|
||||
|
||||
# Charger l'image et la convertir en PhotoImage pour nter
|
||||
image = ImageTk.PhotoImage(image)
|
||||
image_label = Label(cadre, image=image)
|
||||
image_label.image = image # Garder une référence pour éviter le garbage collection
|
||||
image_label.pack(side=LEFT, padx=5)
|
||||
|
||||
# Ajouter les textes (texte1 et texte2)
|
||||
texte_frame = Frame(cadre)
|
||||
texte_frame.pack(side=LEFT, padx=10, fill=BOTH, expand=True)
|
||||
|
||||
label_texte1 = Label(texte_frame, text=title, font=("Arial", 12, "bold"))
|
||||
label_texte1.pack(anchor="w")
|
||||
|
||||
label_texte2 = Label(texte_frame, text=subtitlte, font=("Arial", 10))
|
||||
label_texte2.pack(anchor="w")
|
||||
|
||||
# Ajouter un menu contextuel sur le côté droit
|
||||
|
||||
menu_button = Menubutton(cadre, text="Suprimer", relief=FLAT)
|
||||
menu_button.pack(side=RIGHT)
|
||||
|
||||
EntryURL.delete(0,END)
|
||||
|
||||
# Fenêtre principale
|
||||
root = Tk()
|
||||
root.title("Téléchargeur youtube")
|
||||
root.geometry("400x200")
|
||||
|
||||
|
||||
EntryFrame = Frame(root)
|
||||
EntryFrame.pack(fill="x", expand=True, padx=5, pady=2.5)
|
||||
|
||||
EntryURL = Entry(EntryFrame)
|
||||
EntryURL.pack(side=LEFT, fill="x", expand=True, padx=2.5)
|
||||
|
||||
EntryButton = Button(EntryFrame, text="Ajouter", command=add_url)
|
||||
EntryButton.pack(side=RIGHT, padx=3.5)
|
||||
|
||||
MoviesList = LabelFrame(root, text="Vidéo à télécharger", relief=GROOVE)
|
||||
MoviesList.pack(fill="both", expand=True, padx=5, pady=2.5)
|
||||
|
||||
|
||||
|
||||
root.mainloop()
|
||||
import yt_dlp
|
||||
from PIL import Image
|
||||
import requests
|
||||
from io import BytesIO
|
||||
from tkinter import *
|
||||
from PIL import Image, ImageTk
|
||||
|
||||
|
||||
def add_url():
|
||||
|
||||
url = EntryURL.get()
|
||||
|
||||
ydl_opts = {}
|
||||
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
info = ydl.extract_info(url, download=False)
|
||||
|
||||
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'
|
||||
thumbnail_url = info.get('thumbnail')
|
||||
|
||||
response = requests.get(thumbnail_url)
|
||||
image = Image.open(BytesIO(response.content))
|
||||
width, height = image.size
|
||||
|
||||
# Calculer les dimensions du carré
|
||||
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é
|
||||
left = (width - square_size) // 2
|
||||
top = (height - square_size) // 2
|
||||
|
||||
# Calculer les coordonnées du coin inférieur droit du carré
|
||||
right = left + square_size
|
||||
bottom = top + square_size
|
||||
|
||||
# Découper l'image carrée
|
||||
image = image.crop((left, top, right, bottom))
|
||||
image.thumbnail((50, 50))
|
||||
|
||||
# Création d'un cadre pour contenir chaque élément
|
||||
cadre = Frame(MoviesList)
|
||||
cadre.pack(fill=X, padx=10, pady=5)
|
||||
|
||||
# Charger l'image et la convertir en PhotoImage pour nter
|
||||
image = ImageTk.PhotoImage(image)
|
||||
image_label = Label(cadre, image=image)
|
||||
image_label.image = image # Garder une référence pour éviter le garbage collection
|
||||
image_label.pack(side=LEFT, padx=5)
|
||||
|
||||
# Ajouter les textes (texte1 et texte2)
|
||||
texte_frame = Frame(cadre)
|
||||
texte_frame.pack(side=LEFT, padx=10, fill=BOTH, expand=True)
|
||||
|
||||
label_texte1 = Label(texte_frame, text=title, font=("Arial", 12, "bold"))
|
||||
label_texte1.pack(anchor="w")
|
||||
|
||||
label_texte2 = Label(texte_frame, text=subtitlte, font=("Arial", 10))
|
||||
label_texte2.pack(anchor="w")
|
||||
|
||||
# Ajouter un menu contextuel sur le côté droit
|
||||
|
||||
menu_button = Menubutton(cadre, text="Suprimer", relief=FLAT)
|
||||
menu_button.pack(side=RIGHT)
|
||||
|
||||
EntryURL.delete(0,END)
|
||||
|
||||
# Fenêtre principale
|
||||
root = Tk()
|
||||
root.title("Téléchargeur youtube")
|
||||
root.geometry("400x200")
|
||||
|
||||
|
||||
EntryFrame = Frame(root)
|
||||
EntryFrame.pack(fill="x", expand=True, padx=5, pady=2.5)
|
||||
|
||||
EntryURL = Entry(EntryFrame)
|
||||
EntryURL.pack(side=LEFT, fill="x", expand=True, padx=2.5)
|
||||
|
||||
EntryButton = Button(EntryFrame, text="Ajouter", command=add_url)
|
||||
EntryButton.pack(side=RIGHT, padx=3.5)
|
||||
|
||||
MoviesList = LabelFrame(root, text="Vidéo à télécharger", relief=GROOVE)
|
||||
MoviesList.pack(fill="both", expand=True, padx=5, pady=2.5)
|
||||
|
||||
|
||||
|
||||
root.mainloop()
|
Loading…
Reference in New Issue
Block a user