“朝鲜艺术”网站的音频和歌词图片下载方法
“朝鲜艺术(조선예술)”网站提供了大量朝鲜音乐和相关资料。然而,该网站不提供直观的下载链接。本文将介绍如何进行单曲下载,或使用 Python 脚本批量下载该网站的音频文件和歌词图片。
中文介绍视频
单曲下载方式
通过在浏览器开发者工具中找到歌曲对应的响应,并从中找到相关链接。
首先在网站“F12”打开浏览器开发者工具,在顶部活动栏选择“网络(Network)”。

打开“网络(Network)”工具
选择想要下载的歌曲,注意左下角的歌曲ID,在“网络(Network)”工具中找到“select_music”开头的这条信息,点击,选择“响应(Respond)”,复制其中的文本。

找到“响应(Respond)”
在随便一个文本编辑器中粘贴这个文本,格式化后的json文本类似于下面:
result中的两个jpeg图片,一般一张是封面图,一张是曲谱,点击展开“响应”文本
{ "result_article": [ { "id": "4879", "videoDownFlag": "0", "class_kind": "1", "subtitle": "", "article_title": " \uc0ac\ub791\uc740 \uc2ec\uc7a5\uc758 \ub178\ub798", "article_short": " ", "article_cont": " ", "write_author": "", "compose_author": "", "pub_year": "", "art_group": "0", "favor": "0", "timer": "", "lang_kind": "1", "kind": "33", "view_type": "0", "display_none": "0", "created_at": "2025-11-24 02:19:05", "updated_at": "2025-11-24 02:19:05", "del_flag": "0", "sort_num": "0", "new_data": "0", "first_page_view": "0", "famous": "0" } ], "result": [ { "id": "15440", "article_id": "4879", "article_kind": "33", "file_title": " ", "file_short": " ", "file_hash": "1d64629377cf6072022a58f096bd87af6bca69bfc5990ae8590bf50586dbbf6b", "filename_origin": "\uc0ac\ub791\uc740_\uc2ec\uc7a5\uc758_\ub178\ub798.jpg", "file_name": "02dbed1a35e5f940bd6506cc561c9717.jpg", "file_size": "50.38", "file_path": "uploads\/stage_articles\/33\/02dbed1a35e5f940bd6506cc561c9717.jpg", "file_ext": ".jpg", "file_type": "1", "file_type2": "image\/jpeg", "img_type": "2", "kind": "0", "main_page": "0", "created_at": "2025-11-24 02:19:55", "updated_at": "2025-11-24 02:19:55", "del_flag": "0", "sort_num": "0" }, { "id": "15460", "article_id": "4879", "article_kind": "33", "file_title": "", "file_short": "", "file_hash": "265149c5ccdf30f352d5c28a8709fcb97bedc83c4cffa39df76ec30c1b091213", "filename_origin": "\uc0ac\ub791\uc740_\uc2ec\uc7a5\uc758_\ub178\ub798.jpg", "file_name": "0602c9f911ab4536659ccc2794e64223.jpg", "file_size": "298.44", "file_path": "uploads\/stage_articles\/33\/0602c9f911ab4536659ccc2794e64223.jpg", "file_ext": ".jpg", "file_type": "1", "file_type2": "image\/jpeg", "img_type": "1", "kind": "0", "main_page": "0", "created_at": "2025-11-24 02:20:24", "updated_at": "2025-11-24 02:20:24", "del_flag": "0", "sort_num": "0" }, { "id": "15480", "article_id": "4879", "article_kind": "33", "file_title": "", "file_short": "", "file_hash": "3935b0195c44a192bde203d6ab9202d4004b09c3e54d65299be6e9a847bd615a", "filename_origin": "\uc0ac\ub791\uc740_\uc2ec\uc7a5\uc758_\ub178\ub798.mp3", "file_name": "54de613c1b11b6ba9aa27ce4a5755806.mp3", "file_size": "6199.08", "file_path": "uploads\/stage_articles\/33\/54de613c1b11b6ba9aa27ce4a5755806.mp3", "file_ext": ".mp3", "file_type": "4", "file_type2": "audio\/mpeg", "img_type": "0", "kind": "0", "main_page": "0", "created_at": "2025-11-24 02:20:54", "updated_at": "2025-11-24 02:20:54", "del_flag": "0", "sort_num": "0" } ] } ```file_size较大的一般是曲谱。mp3即为歌曲音频。将
file_path复制到浏览器地址栏,删去其中的反斜杠\,前面加上网站域名http://www.korart.sca.kp/,即相应曲谱图片和音频mp3文件的下载链接。- 例如这里的mp3链接即
http://www.korart.sca.kp/uploads/stage_articles/33/54de613c1b11b6ba9aa27ce4a5755806.mp3
- 例如这里的mp3链接即
批量下载方式
使用下面的Python脚本,可以批量下载指定ID范围内的音频文件和歌词图片。请确保你已经安装了requests库,并且系统中有curl命令可用。(该代码通过AI生成)
点击展开Python脚本
import os
import requests
import subprocess
# 设置下载文件夹
save_dir = "./downloads"
os.makedirs(save_dir, exist_ok=True)
# 日志文件路径
log_file = os.path.join(save_dir, "log.txt")
# 配置请求头
headers = {
"Referer": "http://www.korart.sca.kp/index.php/stage/productions?p=1&class=1&famous=0&language=korean",
"Cookie": "csrf_cookie_name=eb0c308648f337ec4baa71f0daf872d8; PHPSESSID=bn6ru1clfdo4988j3bp105av22",
"User-Agent": "Mozilla/5.0",
"X-Requested-With": "XMLHttpRequest",
}
# 基础 URL
base_url = "http://www.korart.sca.kp/"
api_url = base_url + "index.php/stage/select_music"
def download_with_curl(url, output_path):
print(f"📥 Downloading to {output_path} ...")
try:
subprocess.run([
"curl", "-L", "--retry", "3", "--progress-bar",
"-o", output_path, url
], check=True)
print("✅ Done.")
except subprocess.CalledProcessError as e:
print(f"❌ Failed to download {url} — {e}")
def download_music_by_id(music_id: int):
print(f"\n▶ 正在处理音乐 ID:{music_id}")
# 请求 JSON 数据
resp = requests.get(api_url, headers=headers, params={
"language": "korean",
"music_id": str(music_id),
"kind_id": "33",
"filter": ""
})
if not resp.ok:
print(f"❌ 请求失败:{music_id}")
return
data = resp.json()
# print(resp.json())
result_files = data.get("result", [])
result_article = data.get("result_article", [{}])
article_id = result_article[0].get("id", music_id)
max_jpg_size = -1
# 遍历文件并下载
with open(log_file, "a", encoding="utf-8") as log:
for file in result_files:
file_name = file.get("file_name")
if not file_name:
print(f"⏭️ 跳过:music_id={music_id},该文件无 file_name")
continue
file_ext = file["file_ext"].lower()
filename_origin = file["filename_origin"].strip().replace(" ", "_")
file_path = file["file_path"].replace("\\", "/")
full_url = base_url + file_path
save_path = os.path.join(save_dir, f"{article_id}_{filename_origin}")
if file_ext == ".jpg":
file_size = float(file.get("file_size", 0))
print(f"📸 处理图片:{file_name} ({file_size} bytes)")
if file_size > max_jpg_size:
max_jpg_size = file_size
download_with_curl(full_url, save_path)
log.write(f"{music_id}\t{file_name}\t{filename_origin}\t{file_path}\n")
else:
print(f"⏭️ 跳过:music_id={music_id},该 jpg 文件尺寸较小")
else:
file_size = float(file.get("file_size", 0))
print(f"🎵 处理mp3:{file_name} ({file_size} bytes)")
download_with_curl(full_url, save_path)
# 写入日志行:music_id file_name filename_origin file_path
log.write(f"{music_id}\t{file_name}\t{filename_origin}\t{file_path}\n")
# ✅ 在此处添加你需要的音乐 ID
music_ids = range(4784,4803) # 示例:下载 ID 从 4518 到 4527 的音乐
# music_ids = [4363]
for music_id in music_ids:
download_music_by_id(music_id)
歌曲的ID号可通过浏览器开发者工具查看网站源码获取,也可以将鼠标移动到该网站对应歌曲的图片上方,即可在左下角看到歌曲ID。

在网站上找到对应的歌曲ID