@@ -202,8 +202,8 @@ describe('YtdlpCommandBuilder', () => {
202202 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
203203 const result = YtdlpCommandBuilder . buildOutputPath ( ) ;
204204 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
205- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
206- expect ( result ) . toContain ( '%(title).76s ' ) ;
205+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
206+ expect ( result ) . toContain ( '%(title).76B ' ) ;
207207 expect ( result ) . toContain ( '%(id)s' ) ;
208208 expect ( result ) . toContain ( '%(ext)s' ) ;
209209 } ) ;
@@ -212,22 +212,22 @@ describe('YtdlpCommandBuilder', () => {
212212 tempPathManager . getTempBasePath . mockReturnValue ( '/tmp/youtarr-temp' ) ;
213213 const result = YtdlpCommandBuilder . buildOutputPath ( ) ;
214214 expect ( result ) . toContain ( '/tmp/youtarr-temp' ) ;
215- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
215+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
216216 } ) ;
217217
218218 it ( 'should include subfolder when provided' , ( ) => {
219219 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
220220 const result = YtdlpCommandBuilder . buildOutputPath ( 'TechChannel' ) ;
221221 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
222222 expect ( result ) . toContain ( 'TechChannel' ) ;
223- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
223+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
224224 } ) ;
225225
226226 it ( 'should not include subfolder when null' , ( ) => {
227227 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
228228 const result = YtdlpCommandBuilder . buildOutputPath ( null ) ;
229229 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
230- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
230+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
231231 } ) ;
232232
233233 it ( 'should use temp path with subfolder' , ( ) => {
@@ -243,8 +243,8 @@ describe('YtdlpCommandBuilder', () => {
243243 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
244244 const result = YtdlpCommandBuilder . buildThumbnailPath ( ) ;
245245 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
246- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
247- expect ( result ) . toContain ( '%(title).76s ' ) ;
246+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
247+ expect ( result ) . toContain ( '%(title).76B ' ) ;
248248 expect ( result ) . toContain ( '[%(id)s]' ) ;
249249 // Should NOT contain extension since yt-dlp adds .jpg
250250 expect ( result ) . not . toMatch ( / \. % ( e x t ) s $ / ) ;
@@ -254,22 +254,22 @@ describe('YtdlpCommandBuilder', () => {
254254 tempPathManager . getTempBasePath . mockReturnValue ( '/tmp/youtarr-temp' ) ;
255255 const result = YtdlpCommandBuilder . buildThumbnailPath ( ) ;
256256 expect ( result ) . toContain ( '/tmp/youtarr-temp' ) ;
257- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
257+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
258258 } ) ;
259259
260260 it ( 'should include subfolder when provided' , ( ) => {
261261 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
262262 const result = YtdlpCommandBuilder . buildThumbnailPath ( 'NewsChannel' ) ;
263263 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
264264 expect ( result ) . toContain ( 'NewsChannel' ) ;
265- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
265+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
266266 } ) ;
267267
268268 it ( 'should not include subfolder when null' , ( ) => {
269269 tempPathManager . getTempBasePath . mockReturnValue ( '/mock/youtube/output/.youtarr_tmp' ) ;
270270 const result = YtdlpCommandBuilder . buildThumbnailPath ( null ) ;
271271 expect ( result ) . toContain ( '/mock/youtube/output/.youtarr_tmp' ) ;
272- expect ( result ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
272+ expect ( result ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
273273 } ) ;
274274
275275 it ( 'should match video filename pattern without extension' , ( ) => {
@@ -278,8 +278,8 @@ describe('YtdlpCommandBuilder', () => {
278278 const thumbnailPath = YtdlpCommandBuilder . buildThumbnailPath ( ) ;
279279
280280 // Thumbnail should have the same pattern as video file but without the .%(ext)s
281- expect ( outputPath ) . toContain ( '%(uploader,channel,uploader_id)s - %(title).76s [%(id)s].%(ext)s' ) ;
282- expect ( thumbnailPath ) . toContain ( '%(uploader,channel,uploader_id)s - %(title).76s [%(id)s]' ) ;
281+ expect ( outputPath ) . toContain ( '%(uploader,channel,uploader_id).80B - %(title).76B [%(id)s].%(ext)s' ) ;
282+ expect ( thumbnailPath ) . toContain ( '%(uploader,channel,uploader_id).80B - %(title).76B [%(id)s]' ) ;
283283 } ) ;
284284 } ) ;
285285
@@ -599,8 +599,8 @@ describe('YtdlpCommandBuilder', () => {
599599 // Check main output template
600600 const mainOutput = result [ outputIndices [ 0 ] + 1 ] ;
601601 expect ( mainOutput ) . toContain ( '/mock/youtube/output' ) ;
602- expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
603- expect ( mainOutput ) . toContain ( '%(title).76s ' ) ;
602+ expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
603+ expect ( mainOutput ) . toContain ( '%(title).76B ' ) ;
604604 expect ( mainOutput ) . toContain ( '%(id)s' ) ;
605605 expect ( mainOutput ) . toContain ( '%(ext)s' ) ;
606606
@@ -609,7 +609,7 @@ describe('YtdlpCommandBuilder', () => {
609609 expect ( thumbOutput ) . toContain ( 'thumbnail:' ) ;
610610 expect ( thumbOutput ) . toContain ( '/mock/youtube/output' ) ;
611611 // Thumbnail should use same filename as video (without extension)
612- expect ( thumbOutput ) . toContain ( '%(uploader,channel,uploader_id)s - %(title).76s [%(id)s]' ) ;
612+ expect ( thumbOutput ) . toContain ( '%(uploader,channel,uploader_id).80B - %(title).76B [%(id)s]' ) ;
613613
614614 // Check playlist thumbnail is disabled
615615 const plThumbOutput = result [ outputIndices [ 2 ] + 1 ] ;
@@ -878,13 +878,13 @@ describe('YtdlpCommandBuilder', () => {
878878
879879 // Check that output contains the expected template patterns
880880 expect ( mainOutput ) . toContain ( '/mock/youtube/output' ) ;
881- expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id)s ' ) ;
881+ expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id).80B ' ) ;
882882
883883 // Folder should have channel - title - id format
884- expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id)s - %(title).76s - %(id)s' ) ;
884+ expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id).80B - %(title).76B - %(id)s' ) ;
885885
886886 // File should have channel - title [id].ext format
887- expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id)s - %(title).76s [%(id)s].%(ext)s' ) ;
887+ expect ( mainOutput ) . toContain ( '%(uploader,channel,uploader_id).80B - %(title).76B [%(id)s].%(ext)s' ) ;
888888 } ) ;
889889 } ) ;
890890
0 commit comments