awslabs / aws-video-transcriber
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 36% duplication:
    • 5,494 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,979 duplicated lines
  • 463 duplicates
system36% (1,979 lines)
Duplication per Extension
js42% (1,771 lines)
hbs17% (208 lines)
Duplication per Component (primary)
lambda/burncaption70% (254 lines)
web/templates17% (208 lines)
web/js24% (166 lines)
lambda/extractaudio45% (148 lines)
lambda/batchcomplete63% (126 lines)
lambda/transcribeaudio42% (90 lines)
lambda/createcaptions54% (83 lines)
lambda/deletevideo46% (83 lines)
lambda/translatecaptions51% (80 lines)
lambda/putcaption37% (76 lines)
lambda/togglecomplete82% (73 lines)
lambda/getcaption51% (68 lines)
lambda/getvideo63% (58 lines)
lambda/putvocabulary52% (58 lines)
lambda/reprocessvideo57% (57 lines)
lambda/headvocabulary55% (46 lines)
lambda/getburnedvideo60% (45 lines)
lambda/updatevideostatus71% (43 lines)
lambda/putlanguage55% (35 lines)
lambda/getvideos43% (32 lines)
lambda/customresource8% (30 lines)
lambda/updatevideoname34% (25 lines)
lambda/updatevideodescription46% (25 lines)
lambda/updatevideolanguage31% (21 lines)
lambda/gettweaks36% (16 lines)
lambda/updateburnedvideopath10% (9 lines)
lambda/getupload18% (9 lines)
lambda/puttweaks22% (8 lines)
lambda/getvocabulary18% (7 lines)
web/css0% (0 lines)
web0% (0 lines)

Duplication Between Components (50+ lines)

G lambda/burncaption lambda/burncaption lambda/extractaudio lambda/extractaudio lambda/burncaption--lambda/extractaudio 261 lambda/getcaption lambda/getcaption lambda/burncaption--lambda/getcaption 120 lambda/deletevideo lambda/deletevideo lambda/burncaption--lambda/deletevideo 66 lambda/reprocessvideo lambda/reprocessvideo lambda/burncaption--lambda/reprocessvideo 58 lambda/togglecomplete lambda/togglecomplete lambda/burncaption--lambda/togglecomplete 54 lambda/translatecaptions lambda/translatecaptions lambda/burncaption--lambda/translatecaptions 88 lambda/getvideo lambda/getvideo lambda/burncaption--lambda/getvideo 54 lambda/batchcomplete lambda/batchcomplete lambda/batchcomplete--lambda/burncaption 244 lambda/batchcomplete--lambda/getcaption 120 lambda/batchcomplete--lambda/deletevideo 64 lambda/batchcomplete--lambda/reprocessvideo 56 lambda/batchcomplete--lambda/togglecomplete 52 lambda/batchcomplete--lambda/translatecaptions 76 lambda/batchcomplete--lambda/getvideo 52 lambda/putcaption lambda/putcaption lambda/batchcomplete--lambda/putcaption 50 lambda/deletevideo--lambda/reprocessvideo 101 lambda/deletevideo--lambda/togglecomplete 64 lambda/deletevideo--lambda/translatecaptions 64 lambda/transcribeaudio lambda/transcribeaudio lambda/deletevideo--lambda/transcribeaudio 58 lambda/deletevideo--lambda/getvideo 64 lambda/deletevideo--lambda/putcaption 50 lambda/reprocessvideo--lambda/togglecomplete 64 lambda/reprocessvideo--lambda/translatecaptions 54 lambda/createcaptions lambda/createcaptions lambda/createcaptions--lambda/togglecomplete 90 lambda/createcaptions--lambda/translatecaptions 50 lambda/updatevideostatus lambda/updatevideostatus lambda/createcaptions--lambda/updatevideostatus 54 lambda/createcaptions--lambda/transcribeaudio 80 lambda/createcaptions--lambda/putcaption 78 lambda/togglecomplete--lambda/translatecaptions 52 lambda/togglecomplete--lambda/updatevideostatus 84 lambda/togglecomplete--lambda/transcribeaudio 52 lambda/headvocabulary lambda/headvocabulary lambda/putvocabulary lambda/putvocabulary lambda/headvocabulary--lambda/putvocabulary 88 lambda/headvocabulary--lambda/transcribeaudio 82 lambda/putvocabulary--lambda/transcribeaudio 78 lambda/getvideo--lambda/reprocessvideo 64 lambda/getvideo--lambda/togglecomplete 80 lambda/getvideo--lambda/translatecaptions 52 lambda/getvideo--lambda/putcaption 50 lambda/getvideos lambda/getvideos lambda/getvideo--lambda/getvideos 58 lambda/getburnedvideo lambda/getburnedvideo lambda/getburnedvideo--lambda/getvideo 78 lambda/putcaption--lambda/reprocessvideo 50 lambda/putcaption--lambda/togglecomplete 50 lambda/putcaption--lambda/translatecaptions 52 lambda/putcaption--lambda/transcribeaudio 62

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 463 duplicates...
Size#FoldersFilesLinesCode
102 x 2 source/lambda/burncaption
source/lambda/extractaudio
burncaption.js
extractaudio.js
233:350 (28%)
299:416 (31%)
view
72 x 2 source/lambda/batchcomplete
source/lambda/burncaption
batchcomplete.js
burncaption.js
172:281 (36%)
354:463 (19%)
view
39 x 2 source/lambda/createcaptions
source/lambda/togglecomplete
createcaptions.js
togglecomplete.js
201:258 (25%)
87:144 (43%)
view
32 x 2 source/lambda/burncaption
source/lambda/getcaption
burncaption.js
getcaption.js
395:435 (8%)
157:197 (24%)
view
32 x 2 source/lambda/headvocabulary
source/lambda/putvocabulary
headvocabulary.js
putvocabulary.js
83:131 (38%)
135:184 (28%)
view
32 x 2 source/lambda/batchcomplete
source/lambda/getcaption
batchcomplete.js
getcaption.js
213:253 (16%)
157:197 (24%)
view
31 x 2 source/lambda/putcaption
source/lambda/transcribeaudio
putcaption.js
transcribeaudio.js
200:252 (15%)
273:325 (14%)
view
30 x 2 source/lambda/togglecomplete
source/lambda/updatevideostatus
togglecomplete.js
updatevideostatus.js
79:115 (33%)
57:93 (50%)
view
30 x 2 source/lambda/batchcomplete
source/lambda/burncaption
batchcomplete.js
burncaption.js
70:105 (15%)
50:85 (8%)
view
28 x 2 source/lambda/batchcomplete
source/lambda/getcaption
batchcomplete.js
getcaption.js
172:212 (14%)
94:134 (21%)
view
28 x 2 source/lambda/putvocabulary
source/lambda/transcribeaudio
putvocabulary.js
transcribeaudio.js
145:184 (25%)
225:264 (13%)
view
28 x 2 source/lambda/headvocabulary
source/lambda/transcribeaudio
headvocabulary.js
transcribeaudio.js
92:131 (33%)
225:264 (13%)
view
28 x 2 source/lambda/burncaption
source/lambda/getcaption
burncaption.js
getcaption.js
354:394 (7%)
94:134 (21%)
view
27 x 2 source/lambda/createcaptions
source/lambda/updatevideostatus
createcaptions.js
updatevideostatus.js
201:229 (17%)
65:93 (45%)
view
20 x 2 source/lambda/createcaptions
source/lambda/transcribeaudio
createcaptions.js
transcribeaudio.js
164:194 (13%)
266:296 (9%)
view
20 x 2 source/lambda/getburnedvideo
source/lambda/getvideo
getburnedvideo.js
getvideo.js
23:46 (26%)
35:58 (21%)
view
20 x 2 source/lambda/reprocessvideo
source/lambda/togglecomplete
reprocessvideo.js
togglecomplete.js
27:51 (20%)
23:47 (22%)
view
20 x 2 source/lambda/deletevideo
source/lambda/togglecomplete
deletevideo.js
togglecomplete.js
35:59 (11%)
23:47 (22%)
view
20 x 2 source/lambda/deletevideo
source/lambda/reprocessvideo
deletevideo.js
reprocessvideo.js
35:59 (11%)
27:51 (20%)
view
19 x 2 source/lambda/createcaptions
source/lambda/putcaption
createcaptions.js
putcaption.js
171:194 (12%)
200:223 (9%)
view
Duplicated Units
The list of top 11 duplicated units.
See data for all 11 unit duplicates...
Size#FoldersFilesLinesCode
72 x 2 source/lambda/extractaudio
source/lambda/burncaption
extractaudio.js
burncaption.js
340:418 
274:352 
view
36 x 3 source/lambda/batchcomplete
source/lambda/getcaption
source/lambda/burncaption
batchcomplete.js
getcaption.js
burncaption.js
218:254 
162:198 
400:436 
view
35 x 2 source/lambda/batchcomplete
source/lambda/burncaption
batchcomplete.js
burncaption.js
172:216 
354:398 
view
29 x 2 source/web/js
source/web/js
app.js
app.js
387:416 
457:486 
view
28 x 3 source/lambda/updatevideostatus
source/lambda/togglecomplete
source/lambda/createcaptions
updatevideostatus.js
togglecomplete.js
createcaptions.js
65:95 
87:117 
201:231 
view
21 x 3 source/lambda/putcaption
source/lambda/transcribeaudio
source/lambda/createcaptions
putcaption.js
transcribeaudio.js
createcaptions.js
200:225 
273:298 
171:196 
view
18 x 2 source/lambda/deletevideo
source/lambda/reprocessvideo
deletevideo.js
reprocessvideo.js
206:227 
115:135 
view
13 x 12 source/lambda/getburnedvideo
source/lambda/putcaption
source/lambda/deletevideo
source/lambda/getvideos
source/lambda/getvideo
source/lambda/reprocessvideo
source/lambda/transcribeaudio
source/lambda/batchcomplete
source/lambda/togglecomplete
source/lambda/burncaption
...
getburnedvideo.js
putcaption.js
deletevideo.js
getvideos.js
getvideo.js
reprocessvideo.js
transcribeaudio.js
batchcomplete.js
togglecomplete.js
burncaption.js
...
97:113 
230:246 
253:269 
98:114 
117:133 
140:156 
303:319 
259:275 
122:138 
441:457 
...
view
12 x 2 source/web/js
source/lambda/translatecaptions
app.js
translatecaptions.js
662:674 
223:235 
view
11 x 3 source/lambda/batchcomplete
source/lambda/burncaption
source/lambda/translatecaptions
batchcomplete.js
burncaption.js
translatecaptions.js
94:106 
74:86 
111:123 
view
10 x 2 source/lambda/customresource
source/lambda/customresource
customresource.js
customresource.js
190:201 
497:508 
view