您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Copy playlist info for export
- // ==UserScript==
- // @name Spotify Web - Copy playlist info
- // @description Copy playlist info for export
- // @namespace cobr123
- // @version 2.9
- // @license MIT
- // @grant GM.setClipboard
- // @grant GM_setClipboard
- // @include https://open.spotify.com/*
- // ==/UserScript==
- function copyPL() {
- let svPlayList = '';
- document.querySelectorAll('div[data-testid="tracklist-row"] > div:nth-child(2) > div').forEach(row => {
- let svTrackName = row.querySelector('div').textContent;
- let svArtistName = row.querySelector('span').textContent;
- if(row.querySelectorAll('span').length > 2) {
- svArtistName = row.querySelector('span:nth-child(3)').textContent
- }
- let svTrackInfo = svTrackName + ' - ' + svArtistName;
- console.log(svTrackInfo);
- svPlayList += svTrackInfo + '\n';
- });
- GM_setClipboard(svPlayList);
- alert('Copied:\n' + svPlayList);
- }
- function copyPLwithTime() {
- let svPlayList = '';
- document.querySelectorAll('div[data-testid="tracklist-row"] > div:nth-child(2) > div').forEach(row => {
- let svTrackName = row.querySelector('div').textContent;
- let svArtistName = row.querySelector('span').textContent
- if(row.querySelectorAll('span').length > 2) {
- svArtistName = row.querySelector('span:nth-child(3)').textContent
- }
- let svTrackTime = row.parentElement.parentElement.querySelector('div:nth-child(5) > div').textContent;
- let svTrackInfo = svTrackTime + ' ' + svTrackName + ' - ' + svArtistName;
- console.log(svTrackInfo);
- svPlayList += svTrackInfo + '\n';
- });
- GM_setClipboard(svPlayList);
- alert('Copied:\n' + svPlayList);
- }
- let bindEvents = function () {
- document.querySelector('div[data-testid="action-bar-row"]').innerHTML += '<button id="copy_playlist_to_clipboard" class="btn btn-green false">Copy playlist to clipboard</button>';
- document.querySelector('div[data-testid="action-bar-row"]').innerHTML += '<button id="copy_playlist_to_clipboard_with_time" class="btn btn-green false">Copy playlist to clipboard with time</button>';
- document.getElementById('copy_playlist_to_clipboard_with_time').onclick = copyPLwithTime;
- document.getElementById('copy_playlist_to_clipboard').onclick = copyPL;
- };
- window.setTimeout(bindEvents, 1000);