media-info
9
总安装量
2
周安装量
#32502
全站排名
安装命令
npx skills add https://github.com/vikiboss/60s-skills --skill media-info
Agent 安装分布
claude-code
2
amp
1
openclaw
1
qoder
1
cursor
1
Skill 文档
Media Information Skill
Get music and movie information including charts, lyrics, box office, and ratings.
Available Information
- Netease Music Ranks – Music chart lists
- Music Rank Details – Detailed song lists
- Lyrics Search – Find song lyrics
- Movie Information – All movies database
- Movie Box Office – Real-time box office rankings
- TV Ratings – TV drama ratings
- Web Series Rankings – Online series popularity
API Endpoints
| Type | Endpoint | Method |
|---|---|---|
| Music Ranks | /v2/ncm-rank/list |
GET |
| Rank Detail | /v2/ncm-rank/{id} |
GET |
| Lyrics | /v2/lyric |
POST |
| All Movies | /v2/maoyan/all/movie |
GET |
| Box Office | /v2/maoyan/realtime/movie |
GET |
| TV Ratings | /v2/maoyan/realtime/tv |
GET |
| Web Series | /v2/maoyan/realtime/web |
GET |
Quick Examples
Netease Music Charts
import requests
# Get all music rank lists
response = requests.get('https://60s.viki.moe/v2/ncm-rank/list')
ranks = response.json()
print("ðµ ç½æäºé³ä¹æ¦å")
for rank in ranks['data']:
print(f"· {rank['name']} (ID: {rank['id']})")
# Get specific rank details
rank_id = '3778678' # é£åæ¦
response = requests.get(f'https://60s.viki.moe/v2/ncm-rank/{rank_id}')
songs = response.json()
print(f"\nðµ {songs['name']}")
for i, song in enumerate(songs['songs'][:10], 1):
print(f"{i}. {song['name']} - {song['artist']}")
Lyrics Search
# Search for lyrics
data = {'keyword': 'ç¨»é¦ å¨æ°ä¼¦'}
response = requests.post('https://60s.viki.moe/v2/lyric', json=data)
result = response.json()
print(f"ð¤ {result['song']} - {result['artist']}")
print(f"\n{result['lyrics']}")
Movie Box Office
# Get real-time box office
response = requests.get('https://60s.viki.moe/v2/maoyan/realtime/movie')
movies = response.json()
print("ð¬ 宿¶çµå½±ç¥¨æ¿")
for movie in movies['data'][:5]:
print(f"{movie['rank']}. {movie['name']}")
print(f" 票æ¿ï¼{movie['box_office']}")
print(f" ä¸åº§çï¼{movie['attendance_rate']}")
TV Ratings
# Get TV drama ratings
response = requests.get('https://60s.viki.moe/v2/maoyan/realtime/tv')
shows = response.json()
print("ðº çµè§å§æ¶è§çæè¡")
for show in shows['data'][:5]:
print(f"{show['rank']}. {show['name']}")
print(f" æ¶è§çï¼{show['rating']}")
Web Series Rankings
# Get web series rankings
response = requests.get('https://60s.viki.moe/v2/maoyan/realtime/web')
series = response.json()
print("ð± ç½å§ç度æè¡")
for s in series['data'][:5]:
print(f"{s['rank']}. {s['name']}")
print(f" ç度ï¼{s['popularity']}")
Use Cases
Music Recommendation Bot
def get_trending_music():
# Get soaring charts (é£åæ¦)
response = requests.get('https://60s.viki.moe/v2/ncm-rank/3778678')
songs = response.json()
message = "ðµ å½åæç«çææ²ï¼\n\n"
for i, song in enumerate(songs['songs'][:5], 1):
message += f"{i}. {song['name']} - {song['artist']}\n"
return message
Movie Box Office Tracker
def get_box_office_summary():
response = requests.get('https://60s.viki.moe/v2/maoyan/realtime/movie')
movies = response.json()
top_3 = movies['data'][:3]
summary = "ð¬ 仿¥ç¥¨æ¿TOP3\n\n"
for movie in top_3:
summary += f"ð {movie['rank']}. {movie['name']}\n"
summary += f" ð° 票æ¿ï¼{movie['box_office']}\n"
summary += f" ð ä¸åº§çï¼{movie['attendance_rate']}\n\n"
return summary
Lyrics Finder
def find_lyrics(song_name, artist=''):
keyword = f"{song_name} {artist}".strip()
data = {'keyword': keyword}
response = requests.post('https://60s.viki.moe/v2/lyric', json=data)
result = response.json()
if result.get('lyrics'):
return f"ð¤ {result['song']} - {result['artist']}\n\n{result['lyrics']}"
else:
return "æªæ¾å°æè¯"
Entertainment Digest
def get_entertainment_digest():
# Music
music_rank = requests.get('https://60s.viki.moe/v2/ncm-rank/3778678').json()
top_song = music_rank['songs'][0]
# Movies
movies = requests.get('https://60s.viki.moe/v2/maoyan/realtime/movie').json()
top_movie = movies['data'][0]
# TV shows
shows = requests.get('https://60s.viki.moe/v2/maoyan/realtime/tv').json()
top_show = shows['data'][0]
digest = f"""
ð 娱ä¹èµè®¯éé
ðµ é³ä¹ï¼{top_song['name']} - {top_song['artist']}
ð¬ çµå½±ï¼{top_movie['name']} 票æ¿{top_movie['box_office']}
ðº çµè§å§ï¼{top_show['name']} æ¶è§ç{top_show['rating']}
"""
return digest
Example Interactions
User: “ç°å¨ä»ä¹ææç«ï¼”
response = requests.get('https://60s.viki.moe/v2/ncm-rank/3778678')
songs = response.json()
print("ðµ ç½æäºé£åæ¦ TOP 5")
for i, song in enumerate(songs['songs'][:5], 1):
print(f"{i}. {song['name']} - {song['artist']}")
User: “å¸®ææ¾ã稻é¦ãçæè¯”
data = {'keyword': '稻é¦'}
response = requests.post('https://60s.viki.moe/v2/lyric', json=data)
result = response.json()
print(f"ð¤ {result['song']} - {result['artist']}\n")
print(result['lyrics'])
User: “ä»å¤©çµå½±ç¥¨æ¿æè¡”
response = requests.get('https://60s.viki.moe/v2/maoyan/realtime/movie')
movies = response.json()
print("ð¬ 宿¶ç¥¨æ¿æè¡")
for movie in movies['data'][:5]:
print(f"{movie['rank']}. {movie['name']} - {movie['box_office']}")
Best Practices
- Music Ranks: Cache rank lists as they don’t change frequently
- Lyrics: Include artist name in search for better accuracy
- Box Office: Data updates frequently, show timestamp
- Error Handling: Handle cases where lyrics or data not found
- Formatting: Present data in a clean, readable format