4

Grooveshark 音楽ストリーミング サービスは、予告なしに終了しました。復元したいプレイリストがたくさんありました (数年かけて作成したプレイリスト)。

それらを回復する方法はありますか?スクリプトまたは自動化された何かが素晴らしいでしょう。

4

2 に答える 2

17

更新 [2018-05-11]

この回答が投稿されてから 3 年が経過しましたが、このスクリプトは機能しなくなったようです。古い 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']])
于 2015-05-08T13:00:14.987 に答える
5

localStorage 変数を確認することで、ブラウザーに残された情報の一部にアクセスできます。

  1. グルーヴシャーク.comに行く
  2. 開発ツールを開く (右クリック -> 要素の検査)
  3. リソース -> LocalStorage ->grooveshark.com に移動します。
  4. ライブラリ変数を探します: recentListens、library、および storedQueue
  5. これらの変数を解析して曲を抽出します

プレイリストは提供されないかもしれませんが、コレクションの一部を取得するのに役立ちます。

于 2015-05-12T15:13:53.030 に答える