בקשת מידע | השוואה בין קבצים על בסיס פונקציית Hash
-
כמו חובבי מוזיקה חרדים רבים, שאין להם גישה לאפליקציות סטרימינג כמו ספוטיפיי וכדו', אני אוגר מוזיקה במחשב האישי שלי. אני בטוח שכל אחד שהכניס כמה שירים למחשב/נגן וכדו' נתקל בבעיה של קבצים כפולים, שאין דרך מסודרת לדעת ולמחוק אותם, כיון שהם תחת שמות שונים (או איזה ג'יבריש אחרי שהורידו אותם מטלגרם
). אז כמובן שאפשר להשוות דרך המטא דאטה וכדו' אבל זה ג"כ לא מספיק.
לאחרונה הבנתי שיש אפשרות להוציא פונקציית Hash על קובץ, כך שרק קובץ זהה לו מבחינת התוכן יביא פלט זהה לפונקציה, וממילא השאלה היא האם יש תוכנה/דרך נוחה אחרת שעושה את זה?
ראיתי כאן שדנו בזה ולא הצלחתי להבין כלום.
לכאורה זה נשמע ממש פשוט, תוכנה שעוברת על כל הקבצים בתיקיה/ות, משווה את ה Hash שלהם ומציעה למחוק אחד מהם... לא?
אשמח לקבל מידע ואני בטוח שיש כאן עוד רבים שהנושא הזה מציק להם
תודה רבה -
@סקרן-0
היי, בדיוק נכנסתי לכאן.. (בטעות..)
בגדול, אתה יכול להשוות בין הHashים של הקבצים, כיוון שהHash לא משתנה אם משנים לקובץ את השם, אלא לפי המטאדטא ששמור בקובץ.
הבעיה העיקרית בשיטה הזאת היא קבצים שלא ממש זהים אחד לשני, לפעמים ערוץ שמע נמוך יותר, קובץ דחוס או פורמט אחר, מטאדאטה שונה וכד׳.
בפייתון ספציפית יש ספריות יעודיות שפותחו לנושא, כדוגמת Audiodiff, וpython-compare-mp3.
באמצעות audiodiff ספציפית קל מאוד לבדוק את זה, באמצעות הפונקציה audio_equal אפשר לבדוק האם קבצי המוזיקה שווים אחד לשני באמצעות בדיקה של ערוצי השמע וקצב הסיביות, ובאמצעות הפונקציה tags_equal אפשר לבדוק האם המטאדטא של שניהם שווה, אם מעניין אותך, אני יכול לכתוב בקלות סקריפט או תוכנה שתמש אותך. -
@יושב-אהלים כתב בבקשת מידע | השוואה בין קבצים על בסיס פונקציית Hash:
אם מעניין אותך, אני יכול לכתוב בקלות סקריפט או תוכנה שתמש אותך.
אני בהחלט אשמח (רק אם זה בקלות...)
תודה רבה -
@סקרן-0 סליחה על התגובה המאוחרת,
בגדול יש בGitHub סקריפט מוכן של פייתון לביצוע השוואה בין שתי קבצי קול, כתובת הסקריפט: https://github.com/kdave/audio-compare.
בגדול צריך להוריד, להתקין את התלויות Chromaprint וffmpeg, ולהריץ (או לארוז לEXE), הסקריפט עצמו מאוד מתקדם, ומשווה בין טביעות אצבע (fingerprints), קצב הזרמת הסיביות והסט סיביות וכו׳. הסקריפט יכול לזהות גם שירים דומים (יכתב בפלט מה אחוזי ההתאמה), כך שאני מאוד ממליץ להשתמש בו.
בהזדמנות אני יכין קובץ מוכן עם ממשק גרפי באמצעות Tkinter.