Spotifyの楽曲データ(tracks)及び音楽特徴量(audio-features)を取得するスクリプト群
https://gist.github.com/gecko655/ae50a092215de1977733cddcb90eb157 及び https://gist.github.com/gecko655/ff9efbf404d7fb4a3c40a84f0dc54c2e のデータを取得するのに使用した
1プレイリスト内に含まれるすべての曲の情報を集計できる
Macなら以下で入るはず
Spotifyの楽曲データ(tracks)及び音楽特徴量(audio-features)を取得するスクリプト群
https://gist.github.com/gecko655/ae50a092215de1977733cddcb90eb157 及び https://gist.github.com/gecko655/ff9efbf404d7fb4a3c40a84f0dc54c2e のデータを取得するのに使用した
1プレイリスト内に含まれるすべての曲の情報を集計できる
Macなら以下で入るはず
| 曲名 | popularity | アルバム名 | アーティスト | URL | |
|---|---|---|---|---|---|
| カレンダーガール | 34 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目1 | わか・ふうり・すなお from STAR☆ANIS | https://open.spotify.com/track/1s1FMdNHcSpOfZR2cEjh0J | |
| ダイヤモンドハッピー | 30 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目2 | わか・ふうり・すなお from STAR☆ANIS | https://open.spotify.com/track/3jPCPEwTmiQT97V247njPu | |
| アイドル活動! | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目1 | わか・ふうり・すなお from STAR☆ANIS | https://open.spotify.com/track/0aLmO5jZ8AeHSRoFzB8gz0 | |
| Trap of Love | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目1 | すなお・わか・ふうりfrom STAR☆ANIS | https://open.spotify.com/track/60kngDFK7Nm65hx1Wtep9L | |
| 硝子ドール | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 1年目1 | もえ・すなおfrom STAR☆ANIS | https://open.spotify.com/track/5yFfhtvMQmPxppKzkMdrVe | |
| SHINING LINE* | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 2年目2 | わか・ふうり・ゆな from STAR☆ANIS | https://open.spotify.com/track/45s4b55fdR2SbKIMUOxCXh | |
| オリジナルスター☆彡 | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 2年目1 | わか・ふうり・すなお・れみ・もえ・えり・ゆな・りすこ from STAR☆ANIS | https://open.spotify.com/track/49H75OFzOhGIlhbI9qA1Ph | |
| チュチュ・バレリーナ | 29 | TVアニメ/データカードダス『アイカツ!』主題歌/挿入歌 3年目2 | もな・るか・みき from AIKATSU☆STARS! | https: |
| # require: https://github.com/kakakaya/goshindan | |
| for i in `seq 1 50000` | |
| do | |
| ret=`goshindan s -s 531740 -u $i` | |
| pr=`echo "scale=5;1-((18225-1)/18225)^$i" | bc` | |
| echo $i $pr $ret | |
| if [[ $(echo $ret | grep 'かほは優しいし可愛い。') ]]; then | |
| exit | |
| fi |
| #!/bin/bash | |
| # moved to https://github.com/gecko655/homebrew-aikatsu-story | |
| if [ $# -lt 1 ] ; then | |
| echo "usage: $0 episode-id" | |
| exit 1 | |
| fi | |
| episode_id=`printf %03d $1` |
| curl "http://www.aikatsu.net/story/story-[001-047].html" | \ | |
| pup '.story-waku-menu > :nth-child(2) json{}' | \ | |
| jq '.[].text' |
| require 'date' | |
| require 'holiday_japan' | |
| start_date='2018-12-22' | |
| end_date='2019-05-01' | |
| time=['09:00〜12:00', '13:00〜17:00', '18:00〜22:00'] | |
| (Date.parse(start_date)..Date.parse(end_date))\ | |
| .select{|d| d.sunday? || d.saturday? || HolidayJapan.check(d)}\ | |
| .map{ |d| "#{d.year}/#{d.month}/#{d.day}"}\ |
| git-clone-and-cd() { | |
| before=`ls -1` | |
| git clone "$1" | |
| cd `diff --new-line-format="%L" \ | |
| --old-line-format="" \ | |
| --unchanged-line-format="" \ | |
| <(echo "$before") <(ls -1)` | |
| } |
| # Slack team内で最近発言されたチャンネルだけをリストアップするやつ | |
| # channels.listのページングは何も考えてない。1000くらいなら取れるっぽい。 | |
| TOKEN='xoxp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #slack regacy|user|bot token | |
| curl 'https://slack.com/api/channels.list?token='$TOKEN'&exclude_archived=true&exclude_members=true&limit=1000' > tmp | |
| for row in `cat tmp | jq -r '.channels[] | .id +"," + .name'` | |
| do | |
| ch_id=`echo $row | cut -d',' -f 1` | |
| date_raw=`curl 'https://slack.com/api/channels.history?token='$TOKEN'&channel='$ch_id'&count=100' | \ | |
| jq -r '[.messages[] | select(.subtype == 'null')][0] | .ts' | \ # find the last HUMAN-made post |
| //console contextを `index.php` (IP直書きのやつ)にセットしておくこと | |
| //https://stackoverflow.com/questions/3275816/debugging-iframes-with-chrome-developer-tools | |
| //Safariの場合 `htmlwrap` というのをさがせばよい | |
| startTime = performance.now(); | |
| createjs.Ticker._getTime = () =>{ | |
| return startTime + (performance.now() - startTime) * 5; | |
| } | |
| createjs.Ticker.framerate = 60 / 5; //for saving CPU usage |
| (function(JSON) { | |
| regex=/characterId/; | |
| var oldParse = JSON.parse; | |
| JSON.parse = function newParse(str) { | |
| if (str.match(regex)) { | |
| str = str.replace(/"isNew":true/g, '"isNew":false'); | |
| console.log(str); | |
| str = str.replace(/"rarity":4/g, '"rarity":2'); | |
| return oldParse(str); |