Page 1 of 1
Chromecast backgrounds RSS
Posted: Wed Jul 17, 2019 2:38 pm
by Antonio Linares
I have been using John's Background switcher for years, and since I tested the Chromecast screensaver I wanted to have all those great photos available on my desktop too
Today I found a GitHub project that provides a list of Chromecast photos with 700 photos, so I used this small PRG to turn it into a valid RSS:
https://github.com/FiveTechSoft/chromecast-backgrounds
Code: Select all
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local aLines := HB_aTokens( MemoRead( "README.md" ), Chr( 10 ) )
local cRSS
cRSS = '<?xml version="1.0" encoding="utf-8"?>' + CRLF
cRSS += '<rss version="2.0">' + CRLF
cRSS += '<channel>' + CRLF
cRSS += "<title>chromecast-backgrounds</title>" + CRLF
cRSS += "<link>https://github.com/FiveTechSoft/chromecast-backgrounds</link>" + CRLF
cRSS += "<description>dconnolly chromecast-backgrounds collection</description>" + CRLF
AEval( aLines, { | cLine, n | cRSS += StrTran( StrTran( cLine, "![](", "<item>" + CRLF + ;
"<title>" + AllTrim( Str( n ) ) + "</title>" + CRLF + "<link>" ), ")",;
"</link>" + CRLF + "</item>" ) + CRLF } )
hb_MemoWrit( "test.rss", SubStr( cRSS, 1, Len( cRSS ) - 2 ) + "</channel>" + CRLF + "</rss>" )
return nil
So I forked the GitHub project, and added the RSS feed and it is working really fine from John's Background switcher:
https://raw.githubusercontent.com/FiveT ... r/test.rss
Re: Chromecast backgrounds RSS
Posted: Wed Jul 17, 2019 5:28 pm
by hmpaquito
Impresionantes fotos.
Re: Chromecast backgrounds RSS
Posted: Wed Jul 17, 2019 7:39 pm
by Antonio Linares
Re: Chromecast backgrounds RSS
Posted: Sat Apr 04, 2020 9:11 pm
by Antonio Linares
Here there is a JSON file with lots of ChromeCast pictures:
https://chromecastbg.alexmeub.com/images.v9.json
This PRG generates a RSS file from it:
Code: Select all
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local aImages := hb_JsonDecode( MemoRead( "c:\temp\images.v9.json" ) )
local hImage, cRSS
cRSS = '<?xml version="1.0" encoding="utf-8"?>' + CRLF
cRSS += '<rss version="2.0">' + CRLF
cRSS += '<channel>' + CRLF
cRSS += "<title>chromecast-backgrounds</title>" + CRLF
cRSS += "<link>https://github.com/FiveTechSoft/chromecast-backgrounds</link>" + CRLF
cRSS += "<description>dconnolly chromecast-backgrounds collection</description>" + CRLF
for each hImage in aImages
cRSS += "<item>" + CRLF
cRSS += "<title>" + AllTrim( Str( hImage:__enumIndex ) ) + "</title>" + CRLF
cRSS += "<link>" + hImage[ "url" ] + "</link>" + CRLF
cRSS += "</item>" + CRLF
next
cRSS += "</channel>" + CRLF
cRSS += "</rss>"
hb_MemoWrit( "c:\temp\images.v9.rss", cRSS )
return nil
Here it is the resulting RSS file:
https://raw.githubusercontent.com/FiveT ... ges.v9.rss
Re: Chromecast backgrounds RSS
Posted: Sun Apr 05, 2020 5:49 am
by Antonio Linares
I found an easy way to get all the photos that ChromeCast uses from its url:
https://clients3.google.com/cast/chromecast/home
Simply open it from Chrome, inspect it using F12 and select "network", click on "Preserve log" and wait...:
Let it be there for hours, the log will grow, finally click on "down arrow" (Export HAR) and it will create a JSON file on disk.
Now use this PRG to extract the URLs from it:
rss.prg
Code: Select all
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local hInfo := hb_JsonDecode( MemoRead( "c:\Users\anto\Downloads\clients3.google.com.har" ) )
local hEntry, cRSS
cRSS = '<?xml version="1.0" encoding="utf-8"?>' + CRLF
cRSS += '<rss version="2.0">' + CRLF
cRSS += '<channel>' + CRLF
cRSS += "<title>chromecast-backgrounds</title>" + CRLF
cRSS += "<link>https://github.com/FiveTechSoft/chromecast-backgrounds</link>" + CRLF
cRSS += "<description>chromecast-backgrounds collection</description>" + CRLF
for each hEntry in hInfo[ "log" ][ "entries" ]
if ! Empty( hEntry[ "request" ][ "method" ] )
cRSS += "<item>" + CRLF
cRSS += "<title>" + AllTrim( Str( hEntry:__enumIndex ) ) + "</title>" + CRLF
cRSS += "<link>" + hEntry[ "request" ][ "url" ] + "</link>" + CRLF
cRSS += "</item>" + CRLF
endif
next
cRSS += "</channel>" + CRLF
cRSS += "</rss>"
hb_MemoWrit( "c:\temp\clients3.google.com.har.rss", cRSS )
return nil
It will create a RSS file with all the photos URLs into it that you can use from John's Background Switcher for your PC desktop images:
https://raw.githubusercontent.com/FiveT ... om.har.rss
Re: Chromecast backgrounds RSS
Posted: Sun Apr 05, 2020 6:16 am
by Antonio Linares
Re: Chromecast backgrounds RSS
Posted: Sun Apr 05, 2020 6:28 am
by Antonio Linares
This version creates a md file that you can post on github:
md.prg
Code: Select all
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local hInfo := hb_JsonDecode( MemoRead( "c:\Users\anto\Downloads\clients3.google.com.har" ) )
local hEntry, cRSS := ""
for each hEntry in hInfo[ "log" ][ "entries" ]
if ! Empty( hEntry[ "request" ][ "method" ] )
cRSS += "![](" + hEntry[ "request" ][ "url" ] + ")" + CRLF
endif
next
hb_MemoWrit( "c:\temp\backgrounds.md", cRSS )
return nil
https://github.com/FiveTechSoft/chromec ... grounds.md
Re: Chromecast backgrounds RSS
Posted: Sun Apr 05, 2020 6:54 am
by Antonio Linares
And a great music to listen meanwhile you watch the images
https://journeyscapesradio.blogspot.com ... layer.html
Re: Chromecast backgrounds RSS
Posted: Sun Apr 05, 2020 11:02 pm
by Antonio Linares
Re: Chromecast backgrounds RSS
Posted: Mon Apr 06, 2020 7:14 am
by Antonio Linares
After saving the Chrome log file, use this PRG to save the images to local files:
saveimages.prg
Code: Select all
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local hInfo := hb_JsonDecode( MemoRead( "c:\Users\anto\Downloads\clients3.google.com.har" ) )
local hEntry, aImages := {}, cImage
for each hEntry in hInfo[ "log" ][ "entries" ]
if ! Empty( hEntry[ "request" ][ "method" ] )
if AScan( aImages, hEntry[ "request" ][ "url" ] ) == 0
AAdd( aImages, hEntry[ "request" ][ "url" ] )
hb_MemoWrit( "c:\temp\" + AllTrim( Str( Len( aImages ) ) ) + ".jfif",;
WebImage( hEntry[ "request" ][ "url" ] ) )
endif
endif
next
MsgInfo( "done" )
return nil
Re: Chromecast backgrounds RSS
Posted: Tue Apr 14, 2020 7:18 am
by Antonio Linares
Enhanced version that saves all the photos, and erase duplicated photos
chromebg.prg
Code: Select all
// Download images from the ChromeCast backgrounds images log file in Chrome network inspector
#define CRLF Chr( 13 ) + Chr( 10 )
function Main()
local hInfo := hb_JsonDecode( MemoRead( "c:\Users\anto\Downloads\clients3.google.com.har2.har" ) )
local hEntry, aImages := {}, cImage, aFiles
for each hEntry in hInfo[ "log" ][ "entries" ]
if ! Empty( hEntry[ "request" ][ "method" ] )
if AScan( aImages, hEntry[ "request" ][ "url" ] ) == 0
AAdd( aImages, hEntry[ "request" ][ "url" ] )
hb_MemoWrit( "c:\Users\anto\pictures\" + DToS( Date() ) + "_" + hb_ntos( Seconds() ) + ".jfif",;
WebImage( hEntry[ "request" ][ "url" ] ) )
endif
endif
next
aFiles = Directory( "c:\Users\anto\pictures\*.jfif" )
ASort( aFiles,,, { | x, y | If( x[ 2 ] == y[ 2 ], FErase( "c:\Users\anto\pictures\" + y[ 1 ] ),), x[ 2 ] < y[ 2 ] } )
MsgInfo( "done" )
return nil