lyrics-transcriber 0.66.0__tar.gz → 0.68.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/PKG-INFO +1 -1
  2. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/config.py +1 -1
  3. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/controller.py +22 -0
  4. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/anchor_sequence.py +16 -3
  5. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/package.json +1 -1
  6. lyrics_transcriber-0.66.0/lyrics_transcriber/frontend/web_assets/assets/index-BMWgZ3MR.js → lyrics_transcriber-0.68.0/lyrics_transcriber/frontend/web_assets/assets/index-D7BQUJXK.js +2 -2
  7. lyrics_transcriber-0.66.0/lyrics_transcriber/frontend/web_assets/assets/index-BMWgZ3MR.js.map → lyrics_transcriber-0.68.0/lyrics_transcriber/frontend/web_assets/assets/index-D7BQUJXK.js.map +1 -1
  8. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/index.html +1 -1
  9. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/base_lyrics_provider.py +1 -1
  10. lyrics_transcriber-0.68.0/lyrics_transcriber/output/ass/config.py +85 -0
  11. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/lyrics_line.py +1 -1
  12. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/generator.py +21 -5
  13. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/subtitles.py +2 -1
  14. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/pyproject.toml +1 -1
  15. lyrics_transcriber-0.66.0/lyrics_transcriber/output/ass/config.py +0 -48
  16. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/LICENSE +0 -0
  17. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/README.md +0 -0
  18. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/__init__.py +0 -0
  19. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/cli/__init__.py +0 -0
  20. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/cli/cli_main.py +0 -0
  21. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/__init__.py +0 -0
  22. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/corrector.py +0 -0
  23. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/__init__.py +0 -0
  24. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/base.py +0 -0
  25. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/extend_anchor.py +0 -0
  26. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/levenshtein.py +0 -0
  27. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/llm.py +0 -0
  28. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/llm_providers.py +0 -0
  29. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/no_space_punct_match.py +0 -0
  30. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/relaxed_word_count_match.py +0 -0
  31. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/repeat.py +0 -0
  32. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/sound_alike.py +0 -0
  33. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/syllables_match.py +0 -0
  34. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/word_count_match.py +0 -0
  35. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/word_operations.py +0 -0
  36. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/operations.py +0 -0
  37. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/phrase_analyzer.py +0 -0
  38. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/text_utils.py +0 -0
  39. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.gitignore +0 -0
  40. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.yarn/releases/yarn-4.7.0.cjs +0 -0
  41. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.yarnrc.yml +0 -0
  42. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/README.md +0 -0
  43. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/__init__.py +0 -0
  44. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/eslint.config.js +0 -0
  45. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/index.html +0 -0
  46. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/android-chrome-192x192.png +0 -0
  47. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/android-chrome-512x512.png +0 -0
  48. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/apple-touch-icon.png +0 -0
  49. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon-16x16.png +0 -0
  50. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon-32x32.png +0 -0
  51. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon.ico +0 -0
  52. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/nomad-karaoke-logo.png +0 -0
  53. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/App.tsx +0 -0
  54. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/api.ts +0 -0
  55. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/AddLyricsModal.tsx +0 -0
  56. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/AudioPlayer.tsx +0 -0
  57. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/CorrectionMetrics.tsx +0 -0
  58. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditActionBar.tsx +0 -0
  59. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditModal.tsx +0 -0
  60. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx +0 -0
  61. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditWordList.tsx +0 -0
  62. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/FileUpload.tsx +0 -0
  63. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/FindReplaceModal.tsx +0 -0
  64. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/Header.tsx +0 -0
  65. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx +0 -0
  66. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ModeSelector.tsx +0 -0
  67. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/PreviewVideoSection.tsx +0 -0
  68. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ReferenceView.tsx +0 -0
  69. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ReviewChangesModal.tsx +0 -0
  70. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/SegmentDetailsModal.tsx +0 -0
  71. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TimelineEditor.tsx +0 -0
  72. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TimingOffsetModal.tsx +0 -0
  73. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TranscriptionView.tsx +0 -0
  74. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/WordDivider.tsx +0 -0
  75. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/HighlightedText.tsx +0 -0
  76. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/SourceSelector.tsx +0 -0
  77. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/Word.tsx +0 -0
  78. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/constants.ts +0 -0
  79. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/hooks/useWordClick.ts +0 -0
  80. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/styles.ts +0 -0
  81. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/types.js +0 -0
  82. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/types.ts +0 -0
  83. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts +0 -0
  84. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/localStorage.ts +0 -0
  85. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/referenceLineCalculator.ts +0 -0
  86. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/segmentOperations.ts +0 -0
  87. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/timingUtils.ts +0 -0
  88. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/wordUtils.ts +0 -0
  89. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/hooks/useManualSync.ts +0 -0
  90. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/main.tsx +0 -0
  91. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/theme.ts +0 -0
  92. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types/global.d.ts +0 -0
  93. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types.js +0 -0
  94. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types.ts +0 -0
  95. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/validation.ts +0 -0
  96. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/vite-env.d.ts +0 -0
  97. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.app.json +0 -0
  98. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.json +0 -0
  99. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.node.json +0 -0
  100. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.tsbuildinfo +0 -0
  101. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/update_version.js +0 -0
  102. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.d.ts +0 -0
  103. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.js +0 -0
  104. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.ts +0 -0
  105. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/android-chrome-192x192.png +0 -0
  106. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/android-chrome-512x512.png +0 -0
  107. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/apple-touch-icon.png +0 -0
  108. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon-16x16.png +0 -0
  109. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon-32x32.png +0 -0
  110. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon.ico +0 -0
  111. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/nomad-karaoke-logo.png +0 -0
  112. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/yarn.lock +0 -0
  113. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/file_provider.py +0 -0
  114. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/genius.py +0 -0
  115. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/musixmatch.py +0 -0
  116. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/spotify.py +0 -0
  117. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/user_input_provider.py +0 -0
  118. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/__init__.py +0 -0
  119. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/__init__.py +0 -0
  120. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/ass.py +0 -0
  121. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/ass_specs.txt +0 -0
  122. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/constants.py +0 -0
  123. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/event.py +0 -0
  124. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/formatters.py +0 -0
  125. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/lyrics_screen.py +0 -0
  126. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/section_detector.py +0 -0
  127. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/section_screen.py +0 -0
  128. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/style.py +0 -0
  129. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdg.py +0 -0
  130. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/__init__.py +0 -0
  131. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/cdg.py +0 -0
  132. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/composer.py +0 -0
  133. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/config.py +0 -0
  134. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/images/instrumental.png +0 -0
  135. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/images/intro.png +0 -0
  136. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/pack.py +0 -0
  137. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/render.py +0 -0
  138. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/centertexttoplogobottomtext.png +0 -0
  139. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/circlein.png +0 -0
  140. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/circleout.png +0 -0
  141. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/fizzle.png +0 -0
  142. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/largecentertexttoplogo.png +0 -0
  143. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/rectangle.png +0 -0
  144. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/spiral.png +0 -0
  145. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/topleftmusicalnotes.png +0 -0
  146. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipein.png +0 -0
  147. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeleft.png +0 -0
  148. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeout.png +0 -0
  149. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wiperight.png +0 -0
  150. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/utils.py +0 -0
  151. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/AvenirNext-Bold.ttf +0 -0
  152. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/DMSans-VariableFont_opsz,wght.ttf +0 -0
  153. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/DMSerifDisplay-Regular.ttf +0 -0
  154. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/Oswald-SemiBold.ttf +0 -0
  155. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/Zurich_Cn_BT_Bold.ttf +0 -0
  156. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/arial.ttf +0 -0
  157. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/georgia.ttf +0 -0
  158. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/verdana.ttf +0 -0
  159. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/lrc_to_cdg.py +0 -0
  160. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/lyrics_file.py +0 -0
  161. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/plain_text.py +0 -0
  162. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/segment_resizer.py +0 -0
  163. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/video.py +0 -0
  164. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/review/__init__.py +0 -0
  165. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/review/server.py +0 -0
  166. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/storage/__init__.py +0 -0
  167. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/storage/dropbox.py +0 -0
  168. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/audioshake.py +0 -0
  169. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/base_transcriber.py +0 -0
  170. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/whisper.py +0 -0
  171. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/types.py +0 -0
  172. {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/utils/word_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lyrics-transcriber
3
- Version: 0.66.0
3
+ Version: 0.68.0
4
4
  Summary: Automatically create synchronised lyrics files in ASS and MidiCo LRC formats with word-level timestamps, using Whisper and lyrics from Genius and Spotify
5
5
  License: MIT
6
6
  Author: Andrew Beveridge
@@ -26,7 +26,7 @@ class OutputConfig:
26
26
  """Configuration for output generation."""
27
27
 
28
28
  output_styles_json: str
29
- max_line_length: int = 36
29
+ default_max_line_length: int = 36
30
30
  styles: Dict[str, Any] = field(default_factory=dict)
31
31
  output_dir: Optional[str] = os.getcwd()
32
32
  cache_dir: str = os.getenv(
@@ -109,6 +109,9 @@ class LyricsTranscriber:
109
109
  # Initialize results
110
110
  self.results = LyricsControllerResult()
111
111
 
112
+ # Load styles early so lyrics providers can use them
113
+ self._load_styles()
114
+
112
115
  # Initialize components (with dependency injection)
113
116
  self.transcribers = transcribers or self._initialize_transcribers()
114
117
  self.lyrics_providers = lyrics_providers or self._initialize_lyrics_providers()
@@ -127,6 +130,20 @@ class LyricsTranscriber:
127
130
  if self.output_config.render_video:
128
131
  self.logger.info(f" Video resolution: {self.output_config.video_resolution}")
129
132
 
133
+ def _load_styles(self) -> None:
134
+ """Load styles from JSON file if available."""
135
+ if self.output_config.output_styles_json and os.path.exists(self.output_config.output_styles_json):
136
+ try:
137
+ with open(self.output_config.output_styles_json, "r") as f:
138
+ self.output_config.styles = json.load(f)
139
+ self.logger.debug(f"Loaded output styles from: {self.output_config.output_styles_json}")
140
+ except Exception as e:
141
+ self.logger.warning(f"Failed to load output styles file: {str(e)}")
142
+ self.output_config.styles = {}
143
+ else:
144
+ self.logger.debug("No styles JSON file provided or file does not exist")
145
+ self.output_config.styles = {}
146
+
130
147
  def _sanitize_filename(self, filename: str) -> str:
131
148
  """Replace or remove characters that are unsafe for filenames."""
132
149
  if not filename:
@@ -189,6 +206,10 @@ class LyricsTranscriber:
189
206
  """Initialize available lyrics providers."""
190
207
  providers = {}
191
208
 
209
+ # Get max_line_length from styles if available, otherwise use config default
210
+ max_line_length = self.output_config.styles.get("karaoke", {}).get("max_line_length", self.output_config.default_max_line_length)
211
+ self.logger.info(f"Using max_line_length for lyrics providers: {max_line_length}")
212
+
192
213
  # Create provider config with all necessary parameters
193
214
  provider_config = LyricsProviderConfig(
194
215
  genius_api_token=self.lyrics_config.genius_api_token,
@@ -197,6 +218,7 @@ class LyricsTranscriber:
197
218
  lyrics_file=self.lyrics_config.lyrics_file,
198
219
  cache_dir=self.output_config.cache_dir,
199
220
  audio_filepath=self.audio_filepath,
221
+ max_line_length=max_line_length,
200
222
  )
201
223
 
202
224
  if provider_config.lyrics_file and os.path.exists(provider_config.lyrics_file):
@@ -432,11 +432,12 @@ class AnchorSequenceFinder:
432
432
  self.logger.info(f"🔍 ANCHOR SEARCH: ✅ All {len(async_results)} jobs submitted")
433
433
 
434
434
  # Collect results with individual timeouts
435
+ batch_results = []
436
+ batch_size = 10
437
+
435
438
  for i, async_result in enumerate(async_results):
436
439
  n_gram_length = n_gram_lengths[i]
437
440
  try:
438
- self.logger.info(f"🔍 ANCHOR SEARCH: ⏳ Collecting result {i+1}/{len(async_results)} for n-gram length {n_gram_length}")
439
-
440
441
  # Check remaining time for pool timeout (more lenient than overall timeout)
441
442
  elapsed_time = time.time() - start_time
442
443
  remaining_time = max(10, self.timeout_seconds - elapsed_time) if self.timeout_seconds > 0 else pool_timeout
@@ -449,12 +450,24 @@ class AnchorSequenceFinder:
449
450
  result = async_result.get(timeout=individual_timeout)
450
451
  results.append(result)
451
452
 
452
- self.logger.info(f"🔍 ANCHOR SEARCH: ✅ Completed n-gram length {n_gram_length} ({i+1}/{len(n_gram_lengths)}) - found {len(result)} anchors")
453
+ # Batch logging - collect info for batched logging
454
+ batch_results.append((n_gram_length, len(result)))
455
+
456
+ # Log progress every batch_size results or on the last result
457
+ if (i + 1) % batch_size == 0 or (i + 1) == len(async_results):
458
+ total_anchors_in_batch = sum(anchor_count for _, anchor_count in batch_results)
459
+ n_gram_ranges = [str(ng) for ng, _ in batch_results]
460
+ range_str = f"{n_gram_ranges[0]}-{n_gram_ranges[-1]}" if len(n_gram_ranges) > 1 else n_gram_ranges[0]
461
+ self.logger.info(f"🔍 ANCHOR SEARCH: ✅ Completed n-gram lengths {range_str} ({i+1-len(batch_results)+1}-{i+1}/{len(async_results)}) - found {total_anchors_in_batch} anchors total")
462
+ batch_results = [] # Reset batch
453
463
 
454
464
  except Exception as e:
455
465
  self.logger.warning(f"🔍 ANCHOR SEARCH: ⚠️ n-gram length {n_gram_length} failed or timed out: {str(e)}")
456
466
  results.append([]) # Add empty result to maintain order
457
467
 
468
+ # Add failed result to batch for logging
469
+ batch_results.append((n_gram_length, 0))
470
+
458
471
  # If we're running short on time, trigger fallback early
459
472
  if self.timeout_seconds > 0 and (time.time() - start_time) > (self.timeout_seconds * 0.8):
460
473
  self.logger.warning(f"🔍 ANCHOR SEARCH: ⚠️ Approaching timeout limit, triggering early fallback")
@@ -2,7 +2,7 @@
2
2
  "name": "lyrics-transcriber-frontend",
3
3
  "private": true,
4
4
  "homepage": "https://nomadkaraoke.github.io/lyrics-transcriber-frontend",
5
- "version": "0.66.0",
5
+ "version": "0.68.0",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "dev": "vite",
@@ -38915,7 +38915,7 @@ const theme = createTheme({
38915
38915
  spacing: (factor) => `${0.6 * factor}rem`
38916
38916
  // Further reduced from 0.8 * factor
38917
38917
  });
38918
- const version = "0.66.0";
38918
+ const version = "0.68.0";
38919
38919
  const packageJson = {
38920
38920
  version
38921
38921
  };
@@ -38926,4 +38926,4 @@ ReactDOM$1.createRoot(document.getElementById("root")).render(
38926
38926
  /* @__PURE__ */ jsxRuntimeExports.jsx(App, {})
38927
38927
  ] })
38928
38928
  );
38929
- //# sourceMappingURL=index-BMWgZ3MR.js.map
38929
+ //# sourceMappingURL=index-D7BQUJXK.js.map