Explorer
/tmp/check_obsidian.py
← Zurück ↓ Download
import os, re, collections
vault = '/opt/obsidian-vault/YouTube-Research'
files = []
ids = []
no_id = 0
for root, dirs, fs in os.walk(vault):
    for f in fs:
        if f.lower().endswith('.md'):
            path = os.path.join(root, f)
            files.append(path)
            try:
                with open(path, 'r', encoding='utf-8') as fh:
                    content = fh.read(20000)
            except:
                content = ''
            m = re.search(r'(?mi)^youtube_id:\s*["\']?([^"\'\s]+)', content)
            if m:
                ids.append(m.group(1).strip())
            else:
                no_id += 1

print('Markdown-Dateien gesamt:', len(files))
print('Dateien mit youtube_id im Frontmatter:', len(ids))
print('Eindeutige youtube_id Werte:', len(set(ids)))
print('Dateien OHNE youtube_id:', no_id)

cnt = collections.Counter(ids)
dupes = {k:v for k,v in cnt.items() if v>1}
print('Doppelte youtube_ids:', len(dupes), '(betrifft', sum(v for v in dupes.values()), 'Dateien)')