@@ -104,6 +104,19 @@ test("detects a direct Google Takeout archive from its YouTube metadata paths",
104104 expect ( await isYoutubeTakeoutArchive ( file ) ) . toBe ( true ) ;
105105} ) ;
106106
107+ test ( "detects a Spanish Google Takeout archive from its localized YouTube metadata paths" , async ( ) => {
108+ const writer = new ZipWriter ( new BlobWriter ( ) ) ;
109+ await writer . add (
110+ "Takeout/YouTube y YouTube Music/suscripciones/suscripciones.csv" ,
111+ new TextReader (
112+ "ID de canal,URL del canal,Título del canal\nUC1,https://www.youtube.com/channel/UC1,Canal" ,
113+ ) ,
114+ ) ;
115+ const file = new File ( [ await writer . close ( ) ] , "takeout.zip" ) ;
116+
117+ expect ( await isYoutubeTakeoutArchive ( file ) ) . toBe ( true ) ;
118+ } ) ;
119+
107120test ( "detects Google Takeout transfer archives before decompressing their parts" , async ( ) => {
108121 const writer = new ZipWriter ( new BlobWriter ( ) ) ;
109122 await writer . add (
@@ -114,3 +127,14 @@ test("detects Google Takeout transfer archives before decompressing their parts"
114127
115128 expect ( await isYoutubeTakeoutArchive ( file ) ) . toBe ( true ) ;
116129} ) ;
130+
131+ test ( "detects Takeout transfer parts nested inside a folder" , async ( ) => {
132+ const writer = new ZipWriter ( new BlobWriter ( ) ) ;
133+ await writer . add (
134+ "downloads/takeout-20260905T223911Z-2-001.zip" ,
135+ new TextReader ( "not a real nested archive" ) ,
136+ ) ;
137+ const file = new File ( [ await writer . close ( ) ] , "transfer-01a07621.zip" ) ;
138+
139+ expect ( await isYoutubeTakeoutArchive ( file ) ) . toBe ( true ) ;
140+ } ) ;
0 commit comments