將大串燒的MP3歌曲做分割

更新 發佈閱讀 7 分鐘

其實這是第一篇的延伸應用,一些下載下來的歌曲是大串燒的歌曲,時間長度以小時來計算,並且包含許多歌曲在裡面,而這篇主要是將該歌曲做分割。

當然,我們分割的首要條件是必須要有song list,我們建立在txt文字檔中就行,格式範例如下:(請注意,有的作者提供的時間軸沒有一開始的小時的時間只有00:00,請自己改成0:00:00)

0:00:00 歌曲1的檔名
0:04:02 歌曲2的檔名
0:09:26 歌曲3的檔名
0:13:52 歌曲4的檔名
0:18:30 歌曲5的檔名
  1. 先選擇我們的歌曲
    raw-image
  2. 接著選擇輸出的資料夾
    raw-image
  3. 最後選擇我們的song list時間軸就行了
    raw-image
  4. 以下為AI生成的學習程式:
    import os
    import subprocess
    import tkinter as tk
    from tkinter import filedialog, messagebox

    # ===== tkinter 初始化(不顯示主視窗)=====
    root = tk.Tk()
    root.withdraw()

    # ===== 選擇要分割的 MP3 檔案 =====
    input_mp3 = filedialog.askopenfilename(
    title="選擇要分割的 MP3",
    filetypes=[("MP3 檔案", "*.mp3")]
    )
    if not input_mp3:
    messagebox.showwarning("取消", "未選擇 MP3,程式結束")
    exit()

    # ===== 選擇輸出資料夾(可新建)=====
    output_dir = filedialog.askdirectory(
    title="選擇輸出資料夾(可自行新建)"
    )
    if not output_dir:
    messagebox.showwarning("取消", "未選擇資料夾,程式結束")
    exit()
    os.makedirs(output_dir, exist_ok=True)

    # ===== 選擇歌單檔案(song list.txt)=====
    tracklist_file = filedialog.askopenfilename(
    title="選擇歌單檔案 (song list.txt)",
    filetypes=[("文字檔", "*.txt")]
    )
    if not tracklist_file:
    messagebox.showwarning("取消", "未選擇歌單,程式結束")
    exit()

    # ===== 讀取歌單 =====
    tracks = []
    with open(tracklist_file, "r", encoding="utf-8") as f:
    for line in f:
    if line.strip():
    # 假設歌單格式: 00:01:23 Song Title
    parts = line.strip().split(" ", 1)
    if len(parts) == 2:
    start_time, title = parts
    tracks.append((start_time, title))

    if not tracks:
    messagebox.showerror("錯誤", "歌單檔案沒有有效的資料")
    exit()

    # ===== 將時間轉成秒數 =====
    def time_to_seconds(t):
    # 支援 hh:mm:ss 或 mm:ss 格式
    parts = t.split(":")
    if len(parts) == 3:
    h, m, s = parts
    elif len(parts) == 2:
    h = 0
    m, s = parts
    else:
    raise ValueError(f"時間格式錯誤: {t}")
    return int(h)*3600 + int(m)*60 + int(s)

    # ===== 逐一分割 MP3 =====
    for i, (start_time, title) in enumerate(tracks):
    start_sec = time_to_seconds(start_time)

    if i + 1 < len(tracks):
    end_sec = time_to_seconds(tracks[i+1][0])
    duration = end_sec - start_sec
    cmd = [
    "ffmpeg",
    "-y",
    "-i", input_mp3,
    "-ss", start_time,
    "-t", str(duration),
    "-acodec", "copy",
    os.path.join(output_dir, f"{i+1:02d}_{title}.mp3")
    ]
    else:
    # 最後一首,切到結尾
    cmd = [
    "ffmpeg",
    "-y",
    "-i", input_mp3,
    "-ss", start_time,
    "-acodec", "copy",
    os.path.join(output_dir, f"{i+1:02d}_{title}.mp3")
    ]

    subprocess.run(cmd)

    messagebox.showinfo("完成", f"MP3 分割完成!\n共 {len(tracks)} 首歌曲\n輸出資料夾: {output_dir}")
  5. 或在此下載.py檔
    https://drive.google.com/file/d/1bClOQf95g9xRWeEXd0GVuIzpmTMzY4ga/view?usp=sharing
留言
avatar-img
劉權儀的沙龍
0會員
4內容數
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
當你想升級設備、投放廣告,或是為了雙 11 提前備貨,卻發現現金流卡住時,除了等銀行、跟親友開口,其實還有一個常被忽略、卻很有力的選項。讓房子,成為你事業的贊助商——國峯厝好貸。
Thumbnail
當你想升級設備、投放廣告,或是為了雙 11 提前備貨,卻發現現金流卡住時,除了等銀行、跟親友開口,其實還有一個常被忽略、卻很有力的選項。讓房子,成為你事業的贊助商——國峯厝好貸。
Thumbnail
由著名的日本歷史小說家司馬遼太郎所著,以小說的方式描述江戶幕府最後一任第十五代將軍德川慶喜的一生,此將軍是何許人也為何在歷任江戶幕府將軍中除了德川家康之外得以特別描寫,也是因為其活耀的時代乃是美國黑船撞進日本大門之危及之時。此時,世界正處於大航海時代,歐美列強無不積極開發海外貿易,從葡萄牙、西班
Thumbnail
由著名的日本歷史小說家司馬遼太郎所著,以小說的方式描述江戶幕府最後一任第十五代將軍德川慶喜的一生,此將軍是何許人也為何在歷任江戶幕府將軍中除了德川家康之外得以特別描寫,也是因為其活耀的時代乃是美國黑船撞進日本大門之危及之時。此時,世界正處於大航海時代,歐美列強無不積極開發海外貿易,從葡萄牙、西班
Thumbnail
《燃燒的劍》是一部改編自日本歷史小說家司馬遼太郎的長篇小說,由原田真人執導的日本歷史電影,原定於2020年5月上映,但由於COVID-19的流行,推遲到2021年10月才上映。《燃燒的劍》故事講述在德川幕府時代末期,號稱「日本史上最強劍客集團」-「新選組」興衰迭起的故事,從建立、崛起、興盛到解體。
Thumbnail
《燃燒的劍》是一部改編自日本歷史小說家司馬遼太郎的長篇小說,由原田真人執導的日本歷史電影,原定於2020年5月上映,但由於COVID-19的流行,推遲到2021年10月才上映。《燃燒的劍》故事講述在德川幕府時代末期,號稱「日本史上最強劍客集團」-「新選組」興衰迭起的故事,從建立、崛起、興盛到解體。
Thumbnail
趁著老媽跟兩位姊姊到宜蘭出遊,就坐著車到南港Citylink逛逛 好多年沒吃牛排了,決定來這家 試試
Thumbnail
趁著老媽跟兩位姊姊到宜蘭出遊,就坐著車到南港Citylink逛逛 好多年沒吃牛排了,決定來這家 試試
Thumbnail
殺死癌細胞!專家曝超級蔬菜抗癌降血壓:2吃法讓效果再放大 謝英彪(南京中醫藥大學教授、南京市中醫院主任醫師) 【早安健康/謝英彪(南京中醫藥大學教授、南京市中醫院主任醫師)】 心態好,癌細胞嚇軟腳 一聽到「癌症」,往往會想到死、惡、恐、怖。很多患者更是不想提及「癌」這個字。直到今天,我們還是抱著「是
Thumbnail
殺死癌細胞!專家曝超級蔬菜抗癌降血壓:2吃法讓效果再放大 謝英彪(南京中醫藥大學教授、南京市中醫院主任醫師) 【早安健康/謝英彪(南京中醫藥大學教授、南京市中醫院主任醫師)】 心態好,癌細胞嚇軟腳 一聽到「癌症」,往往會想到死、惡、恐、怖。很多患者更是不想提及「癌」這個字。直到今天,我們還是抱著「是
Thumbnail
訂閱我每週都有不一樣的精彩! 35歲的阿東,受成長環境的影響,大概從17歲就開始吸煙了,近些年煙癮還越來越大,每天兩包煙不在話下。再加上長期的熬夜,飲食重口味等,多種因素影響下,導致他年紀輕輕就患上肺癌。 確診後的他接受了醫生的建議,選擇手術治療,也積極配合後續療程。阿東的肺癌處於中期,在治療後,病
Thumbnail
訂閱我每週都有不一樣的精彩! 35歲的阿東,受成長環境的影響,大概從17歲就開始吸煙了,近些年煙癮還越來越大,每天兩包煙不在話下。再加上長期的熬夜,飲食重口味等,多種因素影響下,導致他年紀輕輕就患上肺癌。 確診後的他接受了醫生的建議,選擇手術治療,也積極配合後續療程。阿東的肺癌處於中期,在治療後,病
Thumbnail
桂昌院本名玉,日文「玉の輿」語源出自於她,出生西陣賣蔬果的人家,幸運被三代將軍德川家光看上成為側室。飛上枝頭變鳳凰,日本的灰姑娘,人人稱羨耳熟能詳的由來,桂昌院嫁入豪門之後呢?
Thumbnail
桂昌院本名玉,日文「玉の輿」語源出自於她,出生西陣賣蔬果的人家,幸運被三代將軍德川家光看上成為側室。飛上枝頭變鳳凰,日本的灰姑娘,人人稱羨耳熟能詳的由來,桂昌院嫁入豪門之後呢?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News