averygan/reclip

Download videos from almost any website. Lightweight, self-hosted media downloader with a clean web UI.

HTML★ 10,290+113 that day#7 on trending

Analyzed September 30, 2026 at 1d161d1 (main) with jscpd 5.4.0 in 0.0s.

B78.6/100
Project health1,128 lines of code (S)
Duplication82
0.6% in bash, python, perl
Dead code77
0%
Complexity76
18.6%

The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.

0.38%duplicated over all files · 7 of 1,855 lines
1clones
14files scanned

Only 12 of the files count as code, too few for a code-only percentage; the numbers above cover every file.

Largest clones in the code

  • 7 lines in 2 placespython61 tokens
    104cmd = ["yt-dlp", "--no-playlist", "-j", url]
    105try:
    106    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    107    if result.returncode != 0:
    108        return jsonify({"error": result.stderr.strip().split("\n")[-1]}), 400
    109
    110    info = parse_ytdlp_json(result.stdout)
    
    150cmd = ["yt-dlp", "--flat-playlist", "-J", url]
    151try:
    152    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    153    if result.returncode != 0:
    154        return jsonify({"error": result.stderr.strip().split("\n")[-1]}), 400
    155
    156    info = json.loads(result.stdout)
    
Largest clones over all files, tests and data included
  • 7 lines in 2 placespython61 tokens
    104cmd = ["yt-dlp", "--no-playlist", "-j", url]
    105try:
    106    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    107    if result.returncode != 0:
    108        return jsonify({"error": result.stderr.strip().split("\n")[-1]}), 400
    109
    110    info = parse_ytdlp_json(result.stdout)
    
    150cmd = ["yt-dlp", "--flat-playlist", "-J", url]
    151try:
    152    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    153    if result.returncode != 0:
    154        return jsonify({"error": result.stderr.strip().split("\n")[-1]}), 400
    155
    156    info = json.loads(result.stdout)
    
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
python1210173.33%
bash10700000%
perl1174000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
python1210173.33%
markup1705000%
bash10700000%
perl1174000%
markdown166000%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Sep 30, 2026#710,290 (+113)141,85510.38%—B 78.61d161d1
Sep 4, 2026#58,495 (+88)141,85510.38%——1d161d1
Sep 2, 2026#117,837 (+56)141,85510.38%——1d161d1
Sep 1, 2026#127,364 (+21)141,85510.38%——1d161d1

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.