现在该服务已关闭,如何制作一个脚本来恢复我的Grooveshark播放列表?

Peq*_*que 4 python backup recovery playlist grooveshark

Grooveshark音乐流媒体服务已被关闭,恕不另行通知.我有很多我想要恢复的播放列表(我制作了多年的播放列表).

有什么方法可以恢复它们吗?脚本或自动化的东西会很棒.

Peq*_*que 17

更新[2018-05-11]

自这个答案发布以来已经过去了三年,而且这个剧本似乎不再适用.如果您仍然需要恢复旧的Grooveshark播放列表,则可能不再可能.祝你好运,如果你找到办法,可以在这里分享!我很乐意接受你的回答.:-)


我创建了一个脚本,它将尝试查找用户创建的所有播放列表,并将它们作为CSV文件下载到输出目录中.它是用Python制作的.

  • 您必须将您的用户名作为参数传递给脚本(即python pysharkbackup.py "my_user_name").您的电子邮件地址也应该可以使用(您在Grooveshark中注册时使用的地址).
  • 输出目录默认设置为./pysharkbackup_$USERNAME.

这是脚本:

#!/bin/python

import os
import sys
import csv
import argparse
import requests


URI = 'http://playlist.fish/api'

description = 'Download your Grooveshark playlists as CSV.'
parser = argparse.ArgumentParser(description = description)
parser.add_argument('USER', type=str, help='Grooveshar user name')
args = parser.parse_args()
user = args.USER

with requests.Session() as session:
    # Login as user
    data = {'method': 'login', 'params': {'username': user}}
    response = session.post(URI, json=data).json()
    if not response['success']:
        print('Could not login as user "%s"! (%s)' %
              (user, response['result']))
        sys.exit()

    # Get user playlists
    data = {'method': 'getplaylists'}
    response = session.post(URI, json=data).json()
    if not response['success']:
        print('Could not get "%s" playlists! (%s)' %
              (user, response['result']))
        sys.exit()

    # Save to CSV
    playlists = response['result']
    if not playlists:
        print('No playlists found for user %s!' % user)
        sys.exit()
    path = './pysharkbackup_%s' % user
    if not os.path.exists(path):
        os.makedirs(path)
    for p in playlists:
        plid = p['id']
        name = p['n']
        data = {'method': 'getPlaylistSongs', 'params': {'playlistID': plid}}
        response = session.post(URI, json=data).json()
        if not response['success']:
            print('Could not get "%s" songs! (%s)' %
                  (name, response['result']))
            continue
        playlist = response['result']
        f = csv.writer(open(path + '/%s.csv' % name, 'w'))
        f.writerow(['Artist', 'Album', 'Name'])
        for song in playlist:
            f.writerow([song['Artist'], song['Album'], song['Name']])
Run Code Online (Sandbox Code Playgroud)

  • @Peque,我爱你. (2认同)

Ano*_*oyz 5

您可以通过检查localStorage变量来访问浏览器中剩余的一些信息.

  1. 去groovehark.com
  2. 打开开发工具(右键单击 - >检查元素)
  3. 转到资源 - > LocalStorage - > grooveshark.com
  4. 查找库变量:recentListens,library和storedQueue
  5. 解析这些变量以提取您的歌曲

可能不会给你的播放列表,但可以帮助检索你的一些收藏.

  • 你没有要求一个剧本,你问你如何制作剧本,我给了你一个策略.它可能对每个人都不起作用,但这不是一个程序化解决方案的问题,因为问题是服务永远消失了.对不起,我让你失望了,但这可能仍然对某人有所帮助. (2认同)