2024-09-29 08:59:55 +08:00
2026-01-04 03:12:57 +08:00
2024-09-29 08:59:55 +08:00
2026-01-04 03:12:57 +08:00
2026-01-04 03:12:57 +08:00
2026-01-04 01:46:39 +08:00

bilibili-merge

Merge bilibili downloaded videos with audio files.

Install

cargo install bilibili-merge

Usage

bilibili-merge [OPTIONS] [PATH]

Arguments

  • PATH - Path to the directory containing video and audio files (default: current directory)

Options

  • -n, --dry-run - Dry run mode: show what would be done without actually doing it
  • -f, --force - Force overwrite existing files
  • -h, --help - Print help information

How It Works

  1. Video File Selection: The tool automatically finds the largest file (by file size) in the specified directory and uses it as the video file. This means:

    • If there's only one video file, it will be selected
    • If there are multiple files, the largest one (by size) will be selected
    • Only files (not directories) are considered
    • The selection is based on file size, not file name
  2. Audio File Matching: The tool looks for an audio file with the same base name as the video file, but with .m4a extension. For example:

    • Video: video.mp4 → Audio: video.m4a
    • Video: episode_01.flv → Audio: episode_01.m4a
  3. Processing Steps:

    • Converts the audio file from M4A to AAC format
    • Renames the original video file to original.<extension> as a backup
    • Merges the video and audio into a single file
    • The merged file is saved as <original_name>.mp4 (always MP4 format, regardless of input format)

Examples

# Merge video and audio in current directory
bilibili-merge

# Merge video and audio in a specific directory
bilibili-merge /path/to/video/directory

# Dry run to see what would be done
bilibili-merge -n

# Force overwrite existing files
bilibili-merge -f

# Combine options
bilibili-merge -n -f /path/to/directory

Notes

  • The tool requires ffmpeg to be installed and available in your PATH
  • By default, the tool will not overwrite existing files (use -f to force)
  • The original video file is automatically backed up as original.<extension>
  • The output file is always in MP4 format, regardless of the input video format
  • In dry-run mode, you'll get a shell script that you can review or execute manually
Description
No description provided
Readme 47 KiB
Languages
Rust 100%