-
-
Notifications
You must be signed in to change notification settings - Fork 0
Why this tool exist?
nanashi edited this page Feb 11, 2024
·
1 revision
Downloaded content from bilibili doesn't get saved as one file. It saves the audio, video, and subtitles separately. And they aren't saved with human-readable names. They are saved with their IDs as their name. Although the subtitle has been in SSA format recently, there are still older uploads in the proprietary JSON subtitle format by bilibili.
Example of the structure
download/
βββ s_34641
βββ 342865
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 35813381d9f4a5f623e052af678072aca867054e.json
βΒ Β βββ entry.json
βββ 346992
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 7678f3b1b74e728ccf8a301ac36bc2a440e2a983.json
βΒ Β βββ entry.json
βββ 350165
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ fae1bea747dfdbba0bc9734cbf36b66ee44ef602.json
βΒ Β βββ entry.json
βββ 355184
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 95422040af142e903cf3501f1efbbd4d650f0788.json
βΒ Β βββ entry.json
βββ 358304
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 38bb9688fba53f2b25b860cbf80fccdd4bfefb9e.json
βΒ Β βββ entry.json
βββ 359293
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 09d37641f164d657bf139b7ac6b6721fb8c22342.json
βΒ Β βββ entry.json
βββ 359295
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ b880308196740c89f6a591d51171f3586799a69a.json
βΒ Β βββ entry.json
βββ 359296
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 87829ca0dda97d9356ccd07cc9f8b642f85ec608.json
βΒ Β βββ entry.json
βββ 359297
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 4885e942e5c0731bff07b78ab56d696e08030b4b.json
βΒ Β βββ entry.json
βββ 359298
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ 45ccbcee9c73355dc658603a8a673cf8b4726f34.json
βΒ Β βββ entry.json
βββ 359300
βΒ Β βββ 112
βΒ Β βΒ Β βββ audio.m4s
βΒ Β βΒ Β βββ index.json
βΒ Β βΒ Β βββ video.m4s
βΒ Β βββ en
βΒ Β βΒ Β βββ bb6e5a10c0c917c9ed23bfb4cff66cd048708696.json
βΒ Β βββ entry.json
βββ 359301
βββ 112
βΒ Β βββ audio.m4s
βΒ Β βββ index.json
βΒ Β βββ video.m4s
βββ en
βΒ Β βββ f9171d78e6aa73b2079d15ceb9b5e4f9139cd157.json
βββ entry.json
Firstly, the subtitle problem, a program that can translate it to other formats compatible with FFmpeg, is employed. The files are then compiled into one .mkv file using FFmpeg. Folders are then created to store the .mkv files about to be extracted. The folders are named based on the entry title. Then the .mkv files are renamed and moved to their specified folder.