<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: [Release] Unportify v1.4.3 in App &amp; Features</title>
    <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/2002359#M887</link>
    <description>&lt;P&gt;runs well but does not create a .txt file instead i get error message.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;listen.js:1161 Uncaught Cx {message: "Error in protected function: saveAs is not defined", Xrb: true, cause: ReferenceError: saveAs is not defined&lt;BR /&gt;at scrollAction (&amp;lt;anonymous&amp;gt;:121:9)&lt;BR /&gt;at pageScroll (&amp;lt;an…, stack: "ReferenceError: saveAs is not defined↵ at scrol…71dda72389b50b7b2ed6815356eaa/listen.js:1160:261)"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am so glad you made this and it looks fantastic, I just need some help getting over this step.&lt;/P&gt;</description>
    <pubDate>Fri, 08 Sep 2017 21:31:13 GMT</pubDate>
    <dc:creator>dstoppseiu</dc:creator>
    <dc:date>2017-09-08T21:31:13Z</dc:date>
    <item>
      <title>[Release] Unportify v1.4.3</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1388158#M832</link>
      <description>&lt;P&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt; If you don't care about my story, jump to the bold text below and ignore the rest.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After using Google Play Music for a year, I started to miss some of Spotify's details.&lt;/P&gt;
&lt;P&gt;On Google Music, you can be listening to calm, relaxing music, and get jump scared when the next song starts playing because the volume isn't equal for every song.&lt;/P&gt;
&lt;P&gt;I also missed Spotify's humanized shuffle, where the shuffle feels random even though it isn't, or Spotify's artificial inteligence, that always recommended me amazing&amp;nbsp;songs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A year ago, I made the switch because no matter how many times Chromecast support was requested, Spotify wouldn't listen. That, together with a poor GNU/Linux client, made me dislike Spotify.&lt;/P&gt;
&lt;P&gt;A year later, Spotify now has Chromecast support,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;with a poor GNU/Linux client.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Because I miss some of Spotify's details and they, finally, listened to the community, it's time to come back, hopefully, to stay.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now, the subject of this post says "[Release]" because I have a 931&amp;nbsp;song playlist on Google Music and I'm not transfering it manually, so I made a little script.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Tested on Chrome (&lt;SPAN&gt;02-01-2017&lt;/SPAN&gt;).&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Unportify" href="https://gist.github.com/TheDegree0/29137b5abf7be44dd46e29ad8ff39e2e" target="_blank" rel="nofollow noopener noreferrer"&gt;Github&lt;/A&gt;&amp;nbsp;\&amp;nbsp;&lt;STRONG&gt;(The instructions are in the script).&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;/*
Unportify is a script that exports your Google Play music to text.
Copyright (C) 2016  Arnau Villoslada
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copy of License:
https://www.gnu.org/licenses/gpl-3.0.html
*/

/*
HOW TO USE (Chrome):
1. Go to Google Play Music
2. Once loaded, right click anywhere in the page and left click on "Inspect" (or press CTRL + SHIFT + I)
3. Go to the "Console" tab.
4. There's a little dropdown, select "top".
5. Paste this script next to the "&amp;gt;" and press enter.
6. You can now close the console. (Click the X at the right or press CTRL + SHIFT + I).
7. Go to the playlist you want to export.
8. Press 0 to start the export process.
   If pressing 0 does nothing, reload the page and make sure you you inject the code on "top" (step #4).
9. Follow on-screen instructions.
10. Once it's done, a file containing your playlist will download, paste it here:
   https://labs.villoslada.me/unportify.

NOTE: If the number of catched songs is lower than the number of songs in your playlist,
      you might have duplicates, if not, try lowering the scroll speed.
*/

/* Pre-start variables */
unportify_url = 'https://labs.villoslada.me/unportify';

message = {};
message['startup-1'] = 'Unportify v1.4.3 injected, you can now close this window.';
message['startup-2'] = 'Press 0 at any time to start exporting your playlist.';
message['albums'] = 'Would you like to also export the albums? \n(Not needed for Unportify importer)';
message['scroll'] = 'How fast would you like me to scroll? (Leave at default if you\'re not sure).\n\
Lower if it\'s not catching the entire playlist', '100';

message['scroll-error'] = 'Please, only use numbers.\nDefault should work fine on a average speed Internet connection';
message['scroll-startup'] = 'I\'m going to start scrolling, I\'ll warn you when I\'m done.\nPlease, don\'t switch tabs.';
message['open-unportify'] = 'Would you like to import this to Spotify? \n(Opens ' + unportify_url + ')';


console.log(message['startup-1']);
alert(message['startup-2']);

// Sets the starting variables
function startingVariables() {

    // JSON containing playlist
    playlist_string = '{"tracks": [';

    // Google Music uses a main container to scroll instead of the browser window, get it.
    main_container = document.querySelector("#mainContainer");

    // Ask if the user would like to export albums
    export_albums = confirm(message['albums']);

    // This function keeps asking for the scroll speed until a number is given
    function askAutoScrollSpeed() {
        auto_scroll_speed = prompt(message['scroll'], '100');
        if (isNaN(parseInt(auto_scroll_speed))) {
            alert(message['scroll-error']);
            askAutoScrollSpeed();
        }
    }
    askAutoScrollSpeed();

    // Scroll margin. Used to make sure the script detects that the bottom of the page has been reached.
    scroll_margin = 50;

    alert(message['scroll-startup']);

    // Set the scroll speed to the user's desired speed
    auto_scroll_speed = parseInt(auto_scroll_speed);

    // Go to the top of the playlist
    main_container.scrollTop = 0;

    // Set the starting auto scroll position
    auto_scroll_pos = main_container.scrollTop;
}

// Gets all of the loaded songs from the playlist
function getSongs() {
    var i, j, playlist_div = document.querySelectorAll('.song-row');
    for (i = 0, j = playlist_div.length; i &amp;lt; j; i++) {
        var track = playlist_div[i]; 
        var title = encodeURI(track.querySelector('[data-col="title"] span.column-content').textContent);
        var artist = encodeURI(track.querySelector('[data-col="artist"] span.column-content').textContent);
        var album = encodeURI(track.querySelector('[data-col="album"] span.column-content').textContent);

        // Clean possible characters that could mess up the JSON
        title = title.replace(/"/g, '\\"');
        artist = artist.replace(/"/g, '\\"');
        album = album.replace(/"/g, '\\"');

        // Checks if the album needs to be exported
        if (export_albums) {        
            var song = ('{"artist": "' + artist + '", "title": "' + title + '", "album": "' + album + '"},');
        } else {
            var song = ('{"artist": "' + artist + '", "title": "' + title + '"},');
        }

        // Only add if the song isn't already added the list
        if (playlist_string.includes(song) != true) {
            playlist_string += song;
        }

        // Will contain the last processed song
        last = track;
    }
}


// As Trump would say, we will do many many things, and it will be great.
function scrollAction() {
    var last_song_pos = last.offsetTop;
    var window_scroll_pos = main_container.scrollTop;

    // Checks if we reached the last loaded song
    if(window_scroll_pos &amp;gt;= last_song_pos) {
        getSongs();
    }

    var limit = main_container.scrollHeight - main_container.offsetHeight - scroll_margin;

    // Checks if we arrived at the bottom of the playlist
    if (window_scroll_pos &amp;gt;= limit) {

        // Stops the page scroll
        clearTimeout(scroll_delay);

        // Get the playlist name
        var playlist_title = &lt;SPAN class="pl-c1"&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN class="pl-c1"&gt;querySelector&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class="pl-s"&gt;&lt;SPAN class="pl-pds"&gt;'&lt;/SPAN&gt;&lt;SPAN class="x x-first x-last"&gt;h2[slot="&lt;/SPAN&gt;title&lt;SPAN class="x x-first x-last"&gt;"]&lt;/SPAN&gt;&lt;SPAN class="pl-pds"&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;.textContent;

        // Remove theh last ,
        playlist_string = playlist_string.replace(/.$/, '');

        // Close JSON.
        playlist_string += '], "playlist": "' + playlist_title + '", "exported_by": "Unportify"}';

        // Convert to human readable JSON
        playlist_string = JSON.stringify(JSON.parse(playlist_string), null, 4);

        // Exports the playlist
        alert('Catched ' + (playlist_string.match(/"artist":/g) || []).length + ' songs.');
        var blob = new Blob([playlist_string], {type: 'text/plain;charset=utf-8'});
        saveAs(blob, playlist_title + '.txt');

        if (confirm(message['open-unportify'])) {
            window.open(unportify_url, '_blank');
        }

        // Awaits for the user to press the start key again
        window.onkeypress = function(event){startExport(event)}
    }
}


// This funcion makes the page scroll automatically.
function pageScroll() {
    main_container.scrollTop = auto_scroll_pos;
    scroll_delay = setTimeout(pageScroll,10);
    scrollAction();
    auto_scroll_pos = auto_scroll_pos + auto_scroll_speed;
}

// Starts everything when the user presses the start key.
function startExport(event) {
    if (event.keyCode == 48) {
        window.onkeypress = null;

        startingVariables();
        getSongs();
        pageScroll();
    }
}
window.onkeypress = function(event){startExport(event)};


/* Everything below is not my code */

// Used to save the playlists in a file.
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&amp;amp;&amp;amp;/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,i=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},a=/constructor/i.test(e.HTMLElement),f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},d="application/octet-stream",s=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,s)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(i){u(i)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,s){if(!s){t=p(t)}var v=this,w=t.type,m=w===d,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&amp;amp;&amp;amp;a)&amp;amp;&amp;amp;e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;i(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&amp;amp;&amp;amp;navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&amp;amp;&amp;amp;self||typeof window!=="undefined"&amp;amp;&amp;amp;window||this.content);if(typeof module!=="undefined"&amp;amp;&amp;amp;module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&amp;amp;&amp;amp;define!==null&amp;amp;&amp;amp;define.amd!==null){define([],function(){return saveAs})}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Aug 2021 09:04:01 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1388158#M832</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2021-08-10T09:04:01Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1442253#M833</link>
      <description>&lt;P&gt;when I run this and it gets to the bottom of my playlist nothing happens and if i try and scroll the list keeps bouncing back to the bottom. &amp;nbsp;What am I doing wrong?!?&lt;/P&gt;</description>
      <pubDate>Mon, 12 Sep 2016 17:01:12 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1442253#M833</guid>
      <dc:creator>CTYSS</dc:creator>
      <dc:date>2016-09-12T17:01:12Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444004#M834</link>
      <description>&lt;P&gt;Hello CTYSS&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;You found a glitch. The script is not detecting that it has reached the bottom of the page.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What browser are you using?&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Sep 2016 16:21:59 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444004#M834</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-09-14T16:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444335#M835</link>
      <description>&lt;P&gt;Chrome on a Mac&lt;/P&gt;</description>
      <pubDate>Wed, 14 Sep 2016 23:15:16 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444335#M835</guid>
      <dc:creator>CTYSS</dc:creator>
      <dc:date>2016-09-14T23:15:16Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444413#M836</link>
      <description>&lt;P&gt;I assume you're injecting the script through&amp;nbsp;the console, does the script throw any errors?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, make sure that you're injecting it in top, here's a screenshot, I marked it in red:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="84dbcbeac5" style="width: 508px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/48590i06CBCA29E0979C7D/image-size/large?v=v2&amp;amp;px=999" role="button" title="84dbcbeac5" alt="84dbcbeac5" /&gt;&lt;/span&gt;﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Sep 2016 00:26:30 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444413#M836</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-09-15T00:26:30Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444844#M837</link>
      <description>&lt;P&gt;Getting the same behavior on Windows 10 Chrome using the CJS plug-in.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Getting a message on the last line (var saveAs=saveAs) saying "Missing '()' invkoing a constructor. A constructor name should start with an uppercase letter."&lt;/P&gt;</description>
      <pubDate>Thu, 15 Sep 2016 15:38:19 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1444844#M837</guid>
      <dc:creator>kertsman</dc:creator>
      <dc:date>2016-09-15T15:38:19Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1445105#M838</link>
      <description>&lt;P&gt;Oh so it's the part that saves the file that's failing. I didn't write that part of the code so I have no idea why it's happening.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Instead of using the CJS plugin, try using the default Chrome developer console.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Go to Google Play Music&lt;/P&gt;&lt;P&gt;2. Press Ctrl+Shift+I or right click &amp;gt; Inspect&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture1.PNG" style="width: 270px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/48664i518DEDD6C686972D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture1.PNG" alt="Capture1.PNG" /&gt;&lt;/span&gt;﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. Go to the console tab and make sure you select "top"&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 508px;"&gt;&lt;img src="https://community.spotify.com/t5/image/serverpage/image-id/48665i058CFD890E90DF18/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4. Paste the code on the text field that's on the right of the blue "&amp;gt;" and press enter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That should run the code in Chrome, maybe it's the CJS plug-in that's causing the problem so this might solve it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Sep 2016 20:53:33 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1445105#M838</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-09-15T20:53:33Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1445993#M839</link>
      <description>&lt;P&gt;Still dosnt seem to be working for me. Not getting any error messages I can see and injecting it in top &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 17 Sep 2016 06:25:37 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1445993#M839</guid>
      <dc:creator>CTYSS</dc:creator>
      <dc:date>2016-09-17T06:25:37Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1446773#M840</link>
      <description>&lt;P&gt;Made some modifications to the script, hopefully this fixes the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tell me if it works.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;A title="Click here to copy the modified script" href="https://gist.githubusercontent.com/TheDegree0/29137b5abf7be44dd46e29ad8ff39e2e/raw/aede0c68403821b9fba8f0ea899a12e29b6f7e91/Unportify-v1.4.js" target="_blank"&gt;Modified script&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Sep 2016 00:08:45 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1446773#M840</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-09-18T00:08:45Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1447711#M841</link>
      <description>&lt;P&gt;No go for me.&lt;/P&gt;&lt;DIV class="console-group console-group-messages"&gt;&lt;DIV class="console-message-wrapper console-error-level"&gt;&lt;DIV class="console-message"&gt;&lt;DIV class="console-message-stack-trace-toggle"&gt;&lt;DIV class="console-message-stack-trace-wrapper"&gt;&lt;DIV&gt;&lt;DIV class="console-view-object-properties-section expanded"&gt;&lt;DIV class="tree-outline-disclosure tree-outline-disclosure-hide-overflow"&gt;&lt;OL&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN class="value object-value-string"&gt;"Error in protected function: Unexpected token in JSON at position 56886"&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="name object-properties-section-dimmed"&gt;stack&lt;/SPAN&gt;&lt;SPAN class="object-properties-section-separator"&gt;:&lt;/SPAN&gt;&lt;SPAN class="value object-value-string"&gt;"SyntaxError: Unexpected token in JSON at position 56886↵ at JSON.parse (&amp;lt;anonymous&amp;gt;)↵ at scrollAction (&amp;lt;anonymous&amp;gt;:149:47)↵ at pageScroll (&amp;lt;anonymous&amp;gt;:170:5)↵ at c (&lt;A href="https://play-music.gstatic.com/fe/300176712979b46b690942d8cdc239da/listen.js:895:126" target="_blank"&gt;https://play-music.gstatic.com/fe/300176712979b46b690942d8cdc239da/listen.js:895:126&lt;/A&gt;)"&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="name object-properties-section-dimmed"&gt;__proto__&lt;/SPAN&gt;&lt;SPAN class="object-properties-section-separator"&gt;:&lt;/SPAN&gt;&lt;SPAN class="value object-value-object"&gt;Es&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="console-message-wrapper console-error-level"&gt;&lt;DIV class="console-message"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="source-code text-prompt"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="console-view-fix-select-all"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Mon, 19 Sep 2016 04:31:48 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1447711#M841</guid>
      <dc:creator>Scoutconnor1</dc:creator>
      <dc:date>2016-09-19T04:31:48Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1453089#M842</link>
      <description>&lt;P&gt;On my windows 10 (chrome) setup, special 8 bit characters (such as "üöäèéà") don't work. They are saved as 16bit (?) characters in the xml playlist, which will not get recogized when importing to spotify. They still don't get properly recognized if replaced by 7 bit (ae oe ue) or 8 bit (ä ö ü, standard windows charset) characters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 25 Sep 2016 09:34:56 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1453089#M842</guid>
      <dc:creator>michael-b</dc:creator>
      <dc:date>2016-09-25T09:34:56Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1453199#M843</link>
      <description>&lt;P&gt;You guys seem to have a different problem.&lt;/P&gt;&lt;P&gt;Is it possible for you to share your playlists, so I can test a couple things?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 25 Sep 2016 13:59:44 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1453199#M843</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-09-25T13:59:44Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1454323#M844</link>
      <description>&lt;P&gt;I'm getting a similar problem. Gets to the end, but no saving dialogue (which I assume is what it should do?).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error in the console:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"Uncaught TypeError: Cannot read property 'textContent' of null"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Seems like a problem at line 140, there's no div that has class 'info' when I check through, perhaps Google have updated again?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried editing that line and set "&lt;SPAN&gt;playlist_title" to a string. &lt;/SPAN&gt;Seemed to get me past that error, but then I got this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;"Uncaught SyntaxError: Unexpected token in JSON at position 1558"&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I've got some songs with funny characters in them. Could be related to the other issue people have had?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Still a bit stuck but hopefully that gives you some useful info!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Sep 2016 20:40:22 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1454323#M844</guid>
      <dc:creator>fxkqwan</dc:creator>
      <dc:date>2016-09-26T20:40:22Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1455834#M845</link>
      <description>&lt;P&gt;Hey, modified script works for me using Chrome for Mac. &amp;nbsp;I disabled any Script Inject browser add-ons and worked first time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Great tool, thanks very much!&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 12:47:10 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1455834#M845</guid>
      <dc:creator>antsmallwood</dc:creator>
      <dc:date>2016-09-28T12:47:10Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1459346#M846</link>
      <description>&lt;P&gt;reply to&amp;nbsp;&lt;SPAN class=""&gt;&lt;A href="https://community.spotify.com/t5/Social-Off-Topic/Release-Unportify-v1-4/m-p/1454323/highlight/true#M18246" target="_self"&gt;fxkqwan&lt;/A&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The HTML seems to be the same, it might be that the title is unloaded.&lt;/P&gt;&lt;P&gt;Try using &lt;A href="http://pastebin.com/pAHkqxL5" target="_blank"&gt;this script&lt;/A&gt;, you will get a lot of jibberish on the actual playlist file&amp;nbsp;but it will, hopefully, avoid the crash.&lt;/P&gt;&lt;P&gt;The result of this script will not work on the Unportify importer tool.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you could paste me the file you get, that would really help me&amp;nbsp;understand what's wrong with it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 02 Oct 2016 05:05:54 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1459346#M846</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-10-02T05:05:54Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1459366#M847</link>
      <description>&lt;P&gt;reply to&amp;nbsp;&lt;SPAN class=""&gt;&lt;A href="https://community.spotify.com/t5/Social-Off-Topic/Release-Unportify-v1-4/m-p/1455834/highlight/true#M18256" target="_self"&gt;antsmallwood&lt;/A&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Thank you, I'm glad it worked &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 02 Oct 2016 05:02:24 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1459366#M847</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-10-02T05:02:24Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1466289#M848</link>
      <description>&lt;P&gt;Unportify is also not working for me. It scrolls until the back of the playlist (speed 100, 50, 25) but after that does not offer any file to download or another message from the script bums up. what am i doing wrong?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Windows 10 - Chrome 52&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EDIT:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;A href="https://community.spotify.com/t5/user/viewprofilepage/user-id/1199899" target="_self"&gt;TheDegree0&lt;/A&gt;&amp;nbsp;script few posts above me worked and i generated a file. but this file does not work properly with the importation website Unportify provides. just stuck in the importation process on first try. second try i get the mesg that importation was successful, but just 2 out of 75 songs were found on spotify and added to the playlist.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;EDIT 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The modified code from this website&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;A href="https://gist.githubusercontent.com/TheDegree0/29137b5abf7be44dd46e29ad8ff39e2e/raw/aede0c68403821b9fba8f0ea899a12e29b6f7e91/Unportify-v1.4.js" target="_blank"&gt;https://gist.githubusercontent.com/TheDegree0/29137b5abf7be44dd46e29ad8ff39e2e/raw/aede0c68403821b9fba8f0ea899a12e29b6f7e91/Unportify-v1.4.js&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;also didnt work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;tried it with the CJS extension as well as the normal google chrome console.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Need help&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Oct 2016 10:20:37 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1466289#M848</guid>
      <dc:creator>earl_grey123</dc:creator>
      <dc:date>2016-10-09T10:20:37Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468164#M849</link>
      <description>&lt;P&gt;Works like a charm on Windows 10 Pro with Chrome 53 (actually it missed 2 songs out of 214 but hey). If I connect Unportify to Spotify, will it steal my CC info, run away with my girlfriend and sell my children into slavery?&lt;/P&gt;</description>
      <pubDate>Tue, 11 Oct 2016 14:13:56 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468164#M849</guid>
      <dc:creator>ouphe</dc:creator>
      <dc:date>2016-10-11T14:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468182#M850</link>
      <description>&lt;P&gt;reply to &lt;A href="https://community.spotify.com/t5/Social-Off-Topic/Release-Unportify-v1-4/m-p/1468164/highlight/true#M19051" target="_self"&gt;ouphe&lt;/A&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Glad it worked, the 2 songs it missed might be duplicates, some songs are the same but in different albums.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the privacy part, Unportify only requests access to public account information, that permission is required in order to create the public playlist. The only information it saves is the IDs of the songs and who imported what.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It saves who imported which songs so I can have a basic&amp;nbsp;idea of how many people have used it and how many return to import again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;About the song IDs, it saves them so it doesn't have to request them again for future users, so by using it, you're helping everyone else! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'll be releasing the code soon for the importer, I don't have much free time so I didn't get to do it yet.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for using Unportify!&lt;/P&gt;</description>
      <pubDate>Tue, 11 Oct 2016 14:54:28 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468182#M850</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-10-11T14:54:28Z</dc:date>
    </item>
    <item>
      <title>Re: [Release] Unportify v1.4</title>
      <link>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468187#M851</link>
      <description>&lt;P&gt;reply to &lt;A href="https://community.spotify.com/t5/Social-Off-Topic/Release-Unportify-v1-4/m-p/1466289/highlight/true#M19025" target="_self"&gt;earl_grey123&lt;/A&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the latest update of the script (&lt;A href="https://gist.githubusercontent.com/TheDegree0/29137b5abf7be44dd46e29ad8ff39e2e/raw/aede0c68403821b9fba8f0ea899a12e29b6f7e91/Unportify-v1.4.js" target="_self"&gt;here&lt;/A&gt;), change this:&lt;/P&gt;&lt;PRE&gt;scroll_margin = 50;&lt;/PRE&gt;&lt;P&gt;To this:&lt;/P&gt;&lt;PRE&gt;scroll_margin = 200;&lt;/PRE&gt;&lt;P&gt;It's on line 75 col 5.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, close the console before starting the export process.&lt;/P&gt;&lt;P&gt;Run the modified script and tell me if that works &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Oct 2016 14:48:45 GMT</pubDate>
      <guid>https://community.spotify.com/t5/App-Features/Release-Unportify-v1-4-3/m-p/1468187#M851</guid>
      <dc:creator>TheDegree0</dc:creator>
      <dc:date>2016-10-11T14:48:45Z</dc:date>
    </item>
  </channel>
</rss>

