@@ -10,21 +10,29 @@ module.exports.getPlaylist = async (url) => {
10
10
let soup = new JSSoup ( htmlContent ) ;
11
11
12
12
//scraping...
13
- const playlistHeaderBlock = soup . find ( "div" , "album-header-metadata" ) ;
14
- let playlistName = playlistHeaderBlock . find ( "h1" ) . text . trim ( ) ;
15
- let playlistUser = playlistHeaderBlock
16
- . find ( "div" , "product-creator" )
17
- . text . trim ( ) ;
13
+ const playlistHeaderBlock = soup . find ( "div" , "container-detail-header" ) ;
14
+ let playlistName , playlistUser ;
15
+
16
+ try {
17
+ playlistName = playlistHeaderBlock . find ( "h1" ) . text . trim ( ) ;
18
+ playlistUser = playlistHeaderBlock
19
+ . find ( "p" , "headings__subtitles" )
20
+ . text . trim ( ) ;
21
+ } catch ( err ) {
22
+ playlistName = "" ;
23
+ playlistUser = "" ;
24
+ }
18
25
playlistObj . playlist = htmlEntities . decode ( playlistName ) ;
19
26
playlistObj . user = htmlEntities . decode ( playlistUser ) ;
20
27
21
28
const tracksInfo = soup . findAll ( "div" , "songs-list-row" ) ; //finding all songs info
22
29
playlistObj . songs = [ ] ;
23
30
24
31
for ( let track of tracksInfo ) {
25
- let songName = track . find ( "div" , "songs-list-row__song-name" ) . text ;
26
- let singerNames = track . find ( "div" , "songs-list-row__by-line" ) . text ;
27
- let album = track . find ( "div" , "songs-list__col--album" ) . text ;
32
+ let songName = track . find ( "div" , "songs-list__col--song" ) . text ;
33
+ console . log ( songName ) ;
34
+ let singerNames = track . find ( "div" , "songs-list__col--secondary" ) . text ;
35
+ let album = track . find ( "div" , "songs-list__col--tertiary" ) . text ;
28
36
singerNames = singerNames . replace ( / \s { 2 , 10 } / g, "" ) ; //remove spaces
29
37
songName = songName . replace ( / \? | < | > | \* | " | : | \| | \/ | \\ / g, "" ) ; //removing special characters which are not allowed in file name
30
38
playlistObj . songs . push ( {
0 commit comments