Playlist Maker für Spotify

Erfahren Sie, wie Spotify Web API (SWA) und Google Apps Script (GAS) die Bibliothek in einen flexiblen Builder für Wiedergabelisten mit kostenloser geplanter Ausführung verwandelt haben.





Mit Wiedergabelistenkonstruktor meinen wir einen Mechanismus zum Sammeln, Filtern, Sortieren und Hinzufügen von Titeln.





Links zum Quellcode und zur Dokumentation am Ende des Artikels.





Problem

Eine offizielle API hat viele interessante Tools für Spotify hervorgebracht. Betrachten Sie in unserem Kontext intelligentere Wiedergabelisten . Die grafische Oberfläche in Form von Grafiken, viele Steuerblöcke machen es für den Durchschnittsbenutzer recht freundlich.





Die starke Inanspruchnahme des Dienstes ergab eine Reihe von Nachteilen:





  • Mangel an Hörgeschichte





  • begrenzte Hinzufügung von Spuren





  • begrenzte Anzahl geplanter Starts





  • falsche Arbeit mit Kyrillisch





Im Laufe der Zeit kommt hier der Wunsch nach neuen Quellen für Tracks hinzu; komplexere Filteralgorithmen. Der Dienst hat die Entwicklung neuer Funktionen eingestellt.

In diesem Zusammenhang bestand der Wunsch nach einer Alternative, die diese Nachteile beseitigt.





Entscheidung

GAS JavaScript - Goofy. () .





GAS , . , 6 ; API 20 . , . Smarter Playlists, . .





, Goofy









  • , ,

















  • Last.fm , ,





. . Goofy . , .





  • SWA 50 . 51- 1-.





  • GAS Google Drive. SWA . , . , .





  • . 30 . . "" SWA.





  • - Last.fm. . , . , Spotify Google Drive. Last.fm Spotify.





( GAS) ( , ). .





1) : , .





Als nächstes erstellen wir einen Trigger mit grafischen Mitteln von GAS. So wird beispielsweise die Wiedergabeliste einmal pro Minute mit fünf zufälligen Titeln aktualisiert.





function createHelloPlaylist() {
    let tracks = Source.getSavedTracks();
    Selector.keepRandom(tracks, 5);
    Playlist.saveWithReplace({
        name: 'Hello, playlist',
        tracks: tracks,
    });
}
      
      



2) Zeigen Sie Ihre Lieblingstitel an, die seit mehr als einem Monat nicht mehr gehört wurden.





function templateSavedAndForgot(){
    let recentTracks = Source.getRecentTracks(2500);
    let savedTracks = Source.getSavedTracks(); 
    Filter.removeTracks(savedTracks, recentTracks);

    let startDate = new Date('2006-01-01');
    let endDate = Filter.getDateRel(30, 'endDay');
    Filter.rangeDateAbs(savedTracks, startDate, endDate);

    Selector.keepRandom(savedTracks, 20);    
    Order.sort(savedTracks, 'meta.added_at', 'asc');
    Playlist.saveWithReplace({
        name: '  ',
        tracks: savedTracks,
        randomCover: 'update', //    
    });
}
      
      



3) Holen Sie sich Titel von Alben und Singles von verfolgten Künstlern pro Woche.





function createNewRelease() {
    const playlistId = 'abc';
    let tracks = Source.getArtistsTracks({
        artist: { 
          followed_include: true 
        },
        album: { 
          groups: 'album,single', 
          release_date: { sinceDays: 7, beforeDays: 0 } 
        },
    });
    Order.shuffle(tracks);

    Combiner.push(tracks, Source.getPlaylistTracks('name', playlistId));
    Filter.removeTracks(tracks, RecentTracks.get(3000));
    Filter.matchOriginalOnly(tracks);
    
    Playlist.saveWithReplace({
        id: playlistId,
        name: ' ',
        tracks: tracks,
        randomCover: 'update',
    });
}
      
      



Links

Die Dokumentation wurde mit einem Fokus auf den Benutzer geschrieben, der mit der Programmierung nicht vertraut ist. Um die Verwendung von Goofy durch Kopieren und Einfügen von Vorlagen und Beispielen zu ermöglichen.





Quellcode auf GitHub , einschließlich Forum .








All Articles