Import Instagram archive to a Bluesky account

Basic import for reels

+213 -3
+11 -3
src/instagram-to-bluesky.ts
··· 153 153 154 154 // Decide where to fetch post data to process from. 155 155 let postsJsonPath: string; 156 + let reelsJsonPath: string; 156 157 if (config.isTestModeEnabled()) { 157 158 postsJsonPath = path.join(archivalFolder, "posts.json"); 159 + reelsJsonPath = path.join(archivalFolder, "reels.json"); 158 160 logger.info( 159 161 `--- TEST mode is enabled, using content from ${archivalFolder} ---` 160 162 ); ··· 163 165 archivalFolder, 164 166 "your_instagram_activity/content/posts_1.json" 165 167 ); 168 + reelsJsonPath = path.join( 169 + archivalFolder, 170 + "your_instagram_activity/content/reels.json" 171 + ); 166 172 } 167 173 168 174 // Read instagram posts JSON file as raw buffer data. 169 175 const instaPostsFileBuffer: Buffer = FS.readFileSync(postsJsonPath); 176 + const instaReelsFileBuffer: Buffer = FS.readFileSync(reelsJsonPath); 170 177 171 178 // Decode raw JSON data into an object. 172 - const allInstaPosts: InstagramExportedPost[] = decodeUTF8( 173 - JSON.parse(instaPostsFileBuffer.toString()) 174 - ); 179 + const allInstaPosts: InstagramExportedPost[] = decodeUTF8([].concat( 180 + JSON.parse(instaPostsFileBuffer.toString()), 181 + JSON.parse(instaReelsFileBuffer.toString())['ig_reels_media'] 182 + )); 175 183 176 184 // Initialize counters for posts and media. 177 185 let importedPosts = 0;
+4
transfer/test_image/reels.json
··· 1 + { 2 + "ig_reels_media": [ 3 + ] 4 + }
+4
transfer/test_images/reels.json
··· 1 + { 2 + "ig_reels_media": [ 3 + ] 4 + }
+168
transfer/test_mixed_media/reels.json
··· 1 + { 2 + "ig_reels_media": [ 3 + { 4 + "media": [ 5 + { 6 + "uri": "media/posts/202407/450124567_850539960325047_1014258811537594829_n_17926160567808540.webp", 7 + "creation_timestamp": 1720384529, 8 + "media_metadata": { 9 + "camera_metadata": { 10 + "has_camera_metadata": false 11 + } 12 + }, 13 + "title": "", 14 + "cross_post_source": { 15 + "source_app": "FB" 16 + }, 17 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450124567_850539960325047_1014258811537594829_n.webp?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYC3h7V2vj_WxEU8cILUYqlu-1OWp6-Mfl4fpGGA4r7Zyg&oe=67AD75C8" 18 + }, 19 + { 20 + "uri": "media/posts/202407/450384793_3757102844577409_7210819267977332845_n_18030137863939663.jpg", 21 + "creation_timestamp": 1720384529, 22 + "media_metadata": { 23 + "camera_metadata": { 24 + "has_camera_metadata": false 25 + } 26 + }, 27 + "title": "", 28 + "cross_post_source": { 29 + "source_app": "FB" 30 + }, 31 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450384793_3757102844577409_7210819267977332845_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYA2W6Y05DojX0yG14var-pEjvM_JNfVQkWXSXzEN2pudg&oe=67AD7784" 32 + }, 33 + { 34 + "uri": "media/posts/202407/449873973_1204391817570870_1300270201787719920_n_18016994726159185.jpg", 35 + "creation_timestamp": 1720384529, 36 + "media_metadata": { 37 + "camera_metadata": { 38 + "has_camera_metadata": false 39 + } 40 + }, 41 + "title": "", 42 + "cross_post_source": { 43 + "source_app": "FB" 44 + }, 45 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/449873973_1204391817570870_1300270201787719920_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYDZ3SL6EljwbgS14K_VBIultlrr3UTQijPyL0QztC-eCA&oe=67AD458F" 46 + }, 47 + { 48 + "uri": "media/posts/202407/450090938_1457101201604063_7774123883513094186_n_17892332634027265.jpg", 49 + "creation_timestamp": 1720384529, 50 + "media_metadata": { 51 + "camera_metadata": { 52 + "has_camera_metadata": false 53 + } 54 + }, 55 + "title": "", 56 + "cross_post_source": { 57 + "source_app": "FB" 58 + }, 59 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450090938_1457101201604063_7774123883513094186_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYBYShzWgogdpcaSZ2-Ofg4hEV5BW2p_Hc9VJLpQnkvZpA&oe=67AD50C8" 60 + }, 61 + { 62 + "uri": "media/posts/202407/450103288_491061823396353_3794282564229224546_n_18040222816930131.jpg", 63 + "creation_timestamp": 1720384529, 64 + "media_metadata": { 65 + "camera_metadata": { 66 + "has_camera_metadata": false 67 + } 68 + }, 69 + "title": "", 70 + "cross_post_source": { 71 + "source_app": "FB" 72 + }, 73 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450103288_491061823396353_3794282564229224546_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYCOdBK8UghG9aijfw_KydgQwACdRlMOgT2udj2MDo2UpQ&oe=67AD61FD" 74 + }, 75 + { 76 + "uri": "media/posts/202407/AQNVWvxnmXorzrSI0J0eosdRGdRUnJ57Bnf2vKtZQymssIG7TF3Lj9IUeX3CPTLjOBbPKmQ45twXxXFJ6t4VMp_17995561811639023.mp4", 77 + "creation_timestamp": 1720384529, 78 + "media_metadata": { 79 + "camera_metadata": { 80 + "has_camera_metadata": false 81 + } 82 + }, 83 + "title": "", 84 + "cross_post_source": { 85 + "source_app": "FB" 86 + }, 87 + "dubbing_info": [ 88 + 89 + ], 90 + "media_variants": [ 91 + 92 + ], 93 + "backup_uri": "https://interncache-ldc.fbcdn.net/o1/v/t16/f2/m69/AQNVWvxnm-XorzrSI0J0eosdRGdRUnJ57Bnf2vKtZQymssIG7TF3Lj9IUeX3-CPTLjOBbPKmQ45twXxXFJ6t4VMp?efg=eyJ1cmxnZW4iOiJvaWxfY3BwX3VybGdlbi9PaWxWVFNVcmwiLCJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLmNhcm91c2VsX2l0ZW0udW5rbm93bi1DOS43MjAuZGFzaF9iYXNlbGluZV8xX3YxIn0&vs=943936170818949_83658459&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HS21IMlJxWHpaZHp2Qm9FQUNUWHJYZ281aTh3YmtZTEFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dNMkUxQnBnVGJYN1U4VUJBSTdQQ29EenRaMEtia1lMQUFBRhUCAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJuaPvO7Xmes%2FFQIoAkMzLBc%2F9G6XjU%2FfOxgSZGFzaF9iYXNlbGluZV8xX3YxEQB17gcA&ccb=9-4&oh=00_AYDv0yCACPligcyEsXHlOvSCRJLx6Sw-hhpVcUjI7ujdNg&oe=67A965C8&_nc_sid=1d576d" 94 + }, 95 + { 96 + "uri": "media/posts/202407/450098780_1665263484252935_8355389668902118342_n_18079198510496264.jpg", 97 + "creation_timestamp": 1720384529, 98 + "media_metadata": { 99 + "camera_metadata": { 100 + "has_camera_metadata": false 101 + } 102 + }, 103 + "title": "", 104 + "cross_post_source": { 105 + "source_app": "FB" 106 + }, 107 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450098780_1665263484252935_8355389668902118342_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYCeaMVOEXFnbMaLBwXHvF40WzKm8psBN7dGyom7Q-3qhA&oe=67AD4D66" 108 + }, 109 + { 110 + "uri": "media/posts/202407/AQOWGsXWS2dp_tAxcY2DOAqT1BrX_NAdDEqRo0__OIFqZD6yT3QwYttrPi5KZE255dYkwRx1QgrGDE4YbZoxND7_18233190331273141.mp4", 111 + "creation_timestamp": 1720384529, 112 + "media_metadata": { 113 + "camera_metadata": { 114 + "has_camera_metadata": false 115 + } 116 + }, 117 + "title": "", 118 + "cross_post_source": { 119 + "source_app": "FB" 120 + }, 121 + "dubbing_info": [ 122 + 123 + ], 124 + "media_variants": [ 125 + 126 + ], 127 + "backup_uri": "https://interncache-ldc.fbcdn.net/o1/v/t16/f2/m69/AQOWGsXWS2dp_tAxcY2DOAqT1BrX_NAdDEqRo0__OIFqZD6yT3QwYttrPi5KZE255dYkwRx1QgrGDE4YbZoxND7-?efg=eyJ1cmxnZW4iOiJvaWxfY3BwX3VybGdlbi9PaWxWVFNVcmwiLCJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLmNhcm91c2VsX2l0ZW0udW5rbm93bi1DOS43MjAuZGFzaF9iYXNlbGluZV8xX3YxIn0&vs=835407334819922_1041113555&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HQml6MlJybzRFRGk2WjRHQUhPRDVTbWcxemhsYmtZTEFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dCQzF6UnFMSmpjN1NtWUJBSGozdl90YVh0RmJia1lMQUFBRhUCAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJsS3gLrxwbU%2FFQIoAkMzLBdANcHKwIMSbxgSZGFzaF9iYXNlbGluZV8xX3YxEQB17gcA&ccb=9-4&oh=00_AYAkTmzdaP3Se5uFcj743XTT7PdHIyORVe0wkvqldEQQMg&oe=67A960F0&_nc_sid=1d576d" 128 + }, 129 + { 130 + "uri": "media/posts/202407/450386863_2125611097838429_8053143681447061885_n_18064275982571079.jpg", 131 + "creation_timestamp": 1720384529, 132 + "media_metadata": { 133 + "camera_metadata": { 134 + "has_camera_metadata": false 135 + } 136 + }, 137 + "title": "", 138 + "cross_post_source": { 139 + "source_app": "FB" 140 + }, 141 + "backup_uri": "https://interncache-ldc.fbcdn.net/v/t51.29350-15/450386863_2125611097838429_8053143681447061885_n.jpg?stp=dst-jpg_e35_tt6&ccb=1-7&_nc_sid=18de74&efg=eyJ1cmxnZW4iOiJwaHBfdXJsZ2VuX2NsaWVudC9tZXRhX3VuaXZlcnNlL2VudGl0eS9pbnN0YWdyYW0vYmVzdF9pbWFnZSJ9&_nc_zt=23&_nc_gid=At21s-bxBp9qaCqtNlpqmQH&oh=00_AYCfUJgmGskU-nLNIAwDvWVAZfLd2S7eMdbj85_O28TTKg&oe=67AD41C9" 142 + }, 143 + { 144 + "uri": "media/posts/202407/AQNf9UEV2xsOnDpeX9XC1nhKWFDTpknsIjhce1DvwiqgOQMM2LBtQb2WZM1G04ahrdYkJlkqjmACABV4tAGSycJ_18008063708546486.mp4", 145 + "creation_timestamp": 1720384529, 146 + "media_metadata": { 147 + "camera_metadata": { 148 + "has_camera_metadata": false 149 + } 150 + }, 151 + "title": "", 152 + "cross_post_source": { 153 + "source_app": "FB" 154 + }, 155 + "dubbing_info": [ 156 + 157 + ], 158 + "media_variants": [ 159 + 160 + ], 161 + "backup_uri": "https://interncache-ldc.fbcdn.net/o1/v/t16/f2/m69/AQNf-9UEV2xsOnDpeX9XC1nhKWFDTpknsIjhce1DvwiqgOQMM2LBtQb2WZM1G04ahrdYkJlkqjmACABV4tAGSycJ?efg=eyJ1cmxnZW4iOiJvaWxfY3BwX3VybGdlbi9PaWxWVFNVcmwiLCJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLmNhcm91c2VsX2l0ZW0udW5rbm93bi1DOS43MjAuZGFzaF9iYXNlbGluZV8xX3YxIn0&vs=994522832060125_1361240656&_nc_vs=HBksFQIYOnBhc3N0aHJvdWdoX2V2ZXJzdG9yZS9HR0VmMlJyQkMtaTNKS1lOQUV6WVBCbDNhUDBwYmtZTEFBQUYVAALIAQAVAhg6cGFzc3Rocm91Z2hfZXZlcnN0b3JlL0dNcEQxQnItUjdTRkYwNEZBRlZITE1LQ3RRQjlia1lMQUFBRhUCAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJubvx43dy6xAFQIoAkMzLBdAHUGJN0vGqBgSZGFzaF9iYXNlbGluZV8xX3YxEQB17gcA&ccb=9-4&oh=00_AYB3p0WxwiC7anVKohkB8zenurZNxspxhWEBGdx8NARyTg&oe=67A97CE5&_nc_sid=1d576d" 162 + } 163 + ], 164 + "title": "What an incredible weekend day trip to celebrate Momma Olga's birthday.", 165 + "creation_timestamp": 1720384531 166 + } 167 + ] 168 + }
+26
transfer/test_video/reels.json
··· 1 + { 2 + "ig_reels_media": [ 3 + { 4 + "media": [ 5 + { 6 + "uri": "AQPTSNLZ6iUA4HKv1fhGWroYyhb2Ccrm9A9xbXRR3sWTzEz_LSfVjCbA2OuODLVHivWjGmHSfLtjOh7aSdseiCpCC3OwLC4lkXLcByU_17898982279059393.mp4", 7 + "creation_timestamp": 1458732736, 8 + "media_metadata": { 9 + "video_metadata": { 10 + "exif_data": [ 11 + { 12 + "latitude": 53.141186112, 13 + "longitude": 11.038734576 14 + } 15 + ] 16 + } 17 + }, 18 + "title": "Pokemon test video", 19 + "cross_post_source": { 20 + "source_app": "FB" 21 + } 22 + } 23 + ] 24 + } 25 + ] 26 + }