From 9a7e720e7e33ac05f0d8088c6a594a833334c04f Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Mon, 19 Sep 2022 08:48:39 +0200 Subject: [PATCH 01/18] wip (almost done) --- img/music-automation.png | Bin 0 -> 193546 bytes markdown/Automate-your-music-collection.md | 957 +++++++++++++++++++++ 2 files changed, 957 insertions(+) create mode 100644 img/music-automation.png create mode 100644 markdown/Automate-your-music-collection.md diff --git a/img/music-automation.png b/img/music-automation.png new file mode 100644 index 0000000000000000000000000000000000000000..36be4194b7e59a0fe39181cffc30c54f8f164d58 GIT binary patch literal 193546 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV4T3g#=yW}_xYkK0|R4Arn7T^r?ay{K~a8M zW=<*tgT}<#iMAex9b}HiM{m^<b+qoVNLevgr=!avOSCIM@e0>ks~IuBSbe1?iHN%& z-1^|b@uaH<k4A>GhdT=VVJIvq3M!c>^nbcY)RBsUJN@O~<;veP)bBkLvN>5M!1T0- z>LVw$-C8X17n>PN5~Tt=Xa1U_q4v;n-@Av8U&r>OSI+-k{6*7pGNWB%#k7}gu6rD9 z_GZ4E^S$%%8V$`O&yOUt#ZLG!@%5(D`E$7Wepja5@L2w=^Y9U;g}qPB(p;TY=PC7R ztaAJLuje$^bKP@UJ5SB}{zRYW>6WRf>n_VUGId8ZaWERK(pbpDZ5U-5<g+Bh{@p|Q zvOh{YQ;Mb@II*#TE5xHu{ttg$dG<4P^*c)fWM0&4eA^$Wu!GwqYun%2oZG#^3Lki4 zGIi^h@|~%f6qlVjQF%eV^o|{QnV;keb~5wWzMQ0J8Pu@Mem?uX^Dky^I`BaE!tQ6^ zuH8BQl6k_ib(72w98?t04fwX}`0m}etABs@*}PwVd0x?;IdWQ^3=9lxN#5=*4F5rJ z!QSPQ85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfGfp9H7Sp57j&m3o7$i$vBTAg} zb8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7!(*hT^vIyZoS!?IVB~%RCQOmOG-*w z>e<gKQ$uD=U`TFOl{EBVyKN(&!1G$N`RVsvZ{`18%sa_@`gGjs8)=Mtcg?(3eauAR zGsF7pTV|@HNzI#Ru*Fb;)6>JlL+e6-kk-_!pk7Otv?G=FM(_5f|5_BpyiMZJw17~z zV+HTO&&{7-`|W1C{Ey$yxfmE0{oDIvKa0ZG`zH1w^~wKK4&RsfXYb*V^22J%ul=jj zy}znQ{@M9YRdS!m*Uw+l*W8<S__|Qr^K17H+H9|~JG4EcE}lX0z_Z;~&Kv8m(3`Sf zZ_#?$yQQn@^y}q!eSiF6S3$+xjCqd5+dE!K>HQ1+y8G(t%~f?@W&Y1w@-yhl`GEba z_S;;&zH(mJ|0!2pSI4dSHK+Ug%q73?ot<s4SLxT%w*89l+%Ck4{{8;Z`tl!(m}{@H zg4^CZ7yHk8ZS^PYS?}ui3GXNFUiEG7E7QdFk00#~xxQ=Py0fn7MZ&MHPk6T3u#TrT z{Lm&PuWYCKX=#5`%C%$Izu)VQURPN=tG4NvUH89r&o=KWUwh5Jc=H*xTs_Of)hWME z-7(gS^RIos*>u+b*kaq%9m_ALE`R6xPt$GxK9PE>nzk3EtXo%ZzTY!nwXSW)x~2P! zF8zt#)SKok<i4kDtL>NNo30<v{d6cxr`G@fZlA|FKkaV6UH?zzpS0=qWA0z9G+s!= z9T(p|t&~CXUE$vRi1)RD;$1%-7uWd|)(eRLZ+)07;@5k0uajnsy4dv<eI74`N<RjC zxh1~6=FIfN$v4akT~p`ZuP-lt$)&yOXN?KtdMjbh@1NfY2RsxlZdv`>y_WyVUbPES zi*!2J>XVoQ_a@9d>>~N^arjQ2_bm>0*ZkU>!7sRRxtZ(!q+<573k_Ii@cvlcFu!T7 z(%1BenmksWyHBUE*>o|jNlLn+#F1cQIs3fo)&Cu~r;aq+i`J^X`<=FP#cX?<9^Q(j zJI*e0m|(Je^<8eRnXiSnvu!^dF2o+)F7E$|dnUuoUw0)Ah`+vi=+~~UxGld_R;-^| z+po6an)&{n*LoHlJ1okiz!|oF;@krn*ElqtKbXfnFIjO^-TtbmoSsFapTv=zOV5gV z-k0nR{A->d%wl4dRA!*n5OUw>*yfJI*Vnw~%37e!7vWhnp{vh3sD5FR#q@~+ZKX}l zTXPNfsEP2|AAjT+R{!>4by)n4f9GFGpM3OJC~&#b-Ce8q&%N?G_KfeT{kvnIp4l|{ zS?Sf?nG6Ec<#IQ5nw&Q|pC)+gNY30v`**0sujlDf`5ls!JawlVQ>m7KWNE@T(^#Vd zp%W(yoGKZ_-}7C~RC^W`Y}@YYp#SdQlKav5@e`jN2v(ojBCA-omp9pcvc$^!Vzt|p z7VZ5I+n&C7#g3Q!(xTBiKQ2F?5_@~mxtna!m)7*Eot*Tfc&9qsl4o}7_|_l35xU;T zOu{K<&D5Ms7M=qWGv|mbu)F&6A>*DGn-A3I%N}0sQuJe|?vKT8A2oZH=*;tdrk?b; z^F?jQT-L+x-Ww_|#t7Y)iMi?}%=tS!>xSw#1ChP48RB(94>Nx5vSR4q)_AtMJ9V+j z?zxv*GDFxckJd)<dPuXlZ<K6r;l3p^$DlDJ>%%Pv$74AzAq^Ta@+<udZ)H2oJ~{d9 z_T}ogV^%DQU3%6qG~WMK!m%B>ulG-G6TNKR8?b=K(%EZ?NY3U>M`ZmLB~3lg6!Rc+ z-AX4XHIJ^-^Zw3S;<cvzLGq3|r42Go7PbDX9K2ZX)U4B<rMir>WY%G`1m~PR;-wSX zn`g>RIb2&8czs!<MR$&4vB88#uNky<W*tyze;voO_`t8<7aG63`qwq%tZas(;I-qX znd_^C=eIe88g4P#lU}B8q|?e((4FMqAzq@hG2=Uf@h!V%ZL7Jx*F&5GrOHmo`<r;~ zobg!0a@CbxYp$!jnK$)|cZAq6nNN#^FEOo9zWQ@P()PsnNpGTkHkqtXD%fq^Rbu2L ze%)lj^5lC)H_ioIJ;7I>wxhp^$!=Tw`dz_SPR`{o(n?N~ec!gbqqV5j&qDUW#8-b^ zgy#6Lx9Tdtc${=LQcK|4oiORosVv<&5&rRuRwu1pz*sV=R)2=AZkt=0f`_A-r;_E9 zwiykdh5l@}I1r<LjNuqt@l0C@J)N0F3)P%vygFf^x51O~^_@ns;+L<2_FlfKlsU1m z(`(Y&iIE8zd}_W^Hzuv((VQXwBWP;%-P5brr|EU9aMgLH;BVwwniX`%s_gglEpK{$ zd#Qz7ocBQSb;IeiD=j_cT{T#%X8ImGx8eM3?MEAS>fX%GIJ-<lzWn!xC_@j1R|!@z z5ld_}Tx<ER@CaQ#>gUbd9&>xsTuWp3>86+F@P)-W@C&KF>H4)GAxdu3g`0IrTlrSC zILe+eId0{vu<Tc#=!~-=tR?KltaaKS4kj|J-t-_u!r+g%Fq_xJ{Aq7RH$K(uY-c$u zE3=L%_EO1r{~0w7`{j@PKfGan$)z<ntIsA}z7qGsD~tE4BBM#Fsln6^{>DW&rx(6n z{kkb2wliDvleg42_m3SS5@Cg_&oTydKG<uS?|o*D#x&P1)$c-LU77t!tKSN)TUE@r zVfCrW4#rQCPB-!Kh3DAXzMd8582CtWl}uymyP%vENkNC)I~)zBc<%hdS-LI6AwbGN zV<AJL(R8hi7f&ueo3o0mUt(J*^I0|L%lAVc6e|m=G3?soq?*bo`9$H$fzabWqNK&V zD@{6gM|FEGS9-_BwX`!`N}Xep@!ii4n<8!ntA-Rw=-)9FWBs$z&iLy2mIRLlF)RY= zQ3*`Su{P_3zb(A7Zt7kAsw?WNWM+vpw)P1LM99v4+I*!{sQvCNZjBWUQ*U%hdp9_> z`fYSLnNjQWtUIb+BXY~N@6*NDoWdP%PFW-MKv^#$M6&%#>dRl>BX+S*Y702)6foo2 z6f>#tS;{L*Q#MGHq$E0<M8Aj-YpcE}v#KpY$n9?0*|^MGbJTA0>}fY}i7RfX+~(`` zi<^yiL1W*udmKmJ+nm3%LU`J&gKFJ3O<OY~kBDuOU<}^6!?GpgQB(fZyO*v8o^jMT zA+odNz#6t2EB!n#Z!uZ3xi)m`dDTQllLd?PKYGf}Ox@AHVxqy-Um{26bWiqo@RnI( z_pG--iG%;>Bx|9Y^LQjq7$_z&%~-nO=1h%li6uNdrrf)B&-lpU+oTq_jQQ4^xTMq; zz7HMgVw>MDni2l%k!55vf4}?W%ZKKAE>b9&=Ie3eeA0u$z?KB1JcfmyDN~w$bwBI7 z*qF(pps{kzgjH{>mrP^|URP4Nh?7&7F+-?uqSMOzCt_6_-di;WZ<-@DA?VVlwQD(2 zRl_t-XiH?j3{`cFdFnmgI&<<zSDvRrrkWm{OG4)BsaTele43@KwtTxXN2YRe>)KbZ zI9LA=%r2YORUleuI5lOhanNzq(5)FCe{DbV{;yZ?QjJv4oBOA1le(wg9-X<rEkHR) z)kt*ts|8w*jV^PgIB+{2ULt96K7~U!Lv$Cz@>9E#4oo>E6;tWXEEM=Wx;8>FVPOid zr|;PgkuKw;%jb7olwBjZ{<wEj!l5ZaFLeZF1T2qSqPx({N;%qT?IxLtGj18|J-_dX z<K}%zi+Y!a2A0-Vt<9Kb5_t7scH5N3`wO&LuS72OXuPof=8X40CWLG;x}&!4;F83| z%;xo+v!=0bZ=B`(^2q-a7oYa}Ojk7MKEkXP!+dM2`*QnDJqr&kGyAgjGs6VesZKMN zo#}cUn(B7(`syYBS5B%*Ou7A{#CyY=W(y0MxY!q5J{oJh4B1z$sCEfnqNP%@NTGA( z8IO6j8NS9ZQ&fU%6pnUmQ`&v`NXhIiVODx-)%IQbDsnatxg#Q`xr=goPEav55EDuK z`qJq;E4R96XwMbTn$IjN9XTaGhAh5Z-Yf69S(bPC%F>cGoV}|oTXxM(ni28rYk;SU zZO>9uCEqZWBL$klt0zretopEe_4|}UX4k6;b63R9VX)osCGT(44E>!2PC5d)lMdP( zT%~Os($b=m(i$P5Yxk&Ixn5-ReUk~7l3pYRUA!pRcgV>y>~3?CXWW^#YcAV;V<a*n zW5pMoXK43upK)=g$<L5==Qjv#@S3mjfoH;v)<xbKl6%*l)VlbzyJuTyz5SBbg{N=s za!{D}G37<yXTw>1BAbqA1l4A^^{#JGIW|@9YqmtgiCuFvSE-&3dzi69ee#;_%M&}! zecAf1pY!&k{p-^mkGyg;QWIoakQ(niWBR<!=WguTcxy_Em+UDeuiIi)C6VR}ZcI<P z=P<eSXV}wkPozw*inN_E*XDj@H1~YMi$lpPlP7I8)4y51D#j-~KjD(h<7R<GvF^J( zhb0WGuOC{d9BWgxquJTrs^UuocYEK~f}FM)FQ@)a+kAY}x`d-k65e((URxuR@b(nr zwRLd^ZiRlHAtS%zbFkMQhn~t4R#Dsn{l4-qPwtv1*`agjRbuQzclCfv8-z^`Ufllf zl1N~%sAz8bhQ{(KD_#X=FYPRx_w}3AZk>-_)giJRy>I)MRZU^ad3JK@DR<Qjhp&zL zY$x0n`E@!?v3A>Ar1ENk>&ru5|0(GnSo?6>O|3^?W=WN3Sa$Dx;*-3f_m}R~4^0QQ z1bB9?>Gn`!xUwg3ZFBmRGVR`i*k2)QDlS!XtlsxkWaU(ciq1BZLzO1`R6d^3nG>?L z=A8VKusahxY`?TlpE9|$x2b#m1;g!ksvR;m+CNzG_n^u#hFLn2!l6<VR04&U&nZY; zTsiN@gBcqGlcMKu<=7UWvC@i1wPCwk|AMVG3p1SqPW*c@KjmA^QI9KM`oex^bJcSM zo19tl?g7&yTa#6hTD8fJCi7B~b?jVMX20@rep7zhB(z|balX34+_xGAPHX)aM}7(Y zbg1D%vh>U=cb6{wmOhCo?3+`T{Unp8&czmLVwUqnSMEBy@~d1O|ApGRG%;==t6f>! zqSw5-&^>!CTTBk;wslMfYC?-jXHB}stfJlYqIBKV2qx|e49t8|yB7p3Ggz9ZeYcp8 zl}X0NrjPx5&*OJ@V{JC<?^S<ocvpE@^$}(FsE6s+*Z4ndxm;yY`q}2%+Si&JExrHb z1u{+A{LnYG`Q521hqQI={rArmojC4X=*PmN$840s?tXK<OFM_}t(mnJTiT3##H6R0 zsnzUsog(tc#;rr~kLarPD~_y|6Wyh^J2-ONj_;dvxVvBZo>h50-B;Lc?u)Llgq@p~ zEXZp)qjg(};}U1#g&VsJB@EYPZJM}*^O%q}qs>Z-cZIyFO|^w_+J}y49ebg)&}%jC zg-vGzS#LI)oYmj@rBgI<u~4b6$LlBaPL?f8W6%7^mMQgo&(YWm?bVOmCuc62RQvsj zpVwyXD>2jkwOjHxnI(To*N_kFiMwFtA#@=mxZ`FYUxKMeywZV`C3>L?)m<+yTcw|5 z)B5WDq!)6z^BedMalDZiTA?bpvRj*P^2>_~^As1b%;vwn@K(yyE7E(Sek|Jj&LdP< zDxy={xP!Ork?Y-qF>3?tigzwm6f-jBIr;YP7rh1A>$@W+<_P6y?q$mocyjdFLZeBI z?~ce%l6x@uVM3y3wNjjFvOYtp^VD}ezD%<cm&$gSeAo4l39JkaeHv`VwTUm`;@`9# zeyU$zTskY7Xq)yrn#;;c@XVRAg7eI$3og$U)^zyoX<sIvk@&rllR@~#o~(v=+wJYf z{&SB$agi@raCp6rW>KZiG}ni=GE?_?YTQ#<#b~%I=fU0|XX>{keZ2BQ#@&*C*Sc!K z?Am2B)#LS6JFqVGJMkuJ!*Z?W?=HcgdM?av-O<Ivwrf@Ju^WfD4quHs|08nc+jAMK z6PDP@`>?7_;`{Pwna)lg&&k%tA)7ll^BKfVTzY85*@UBIr!U=Fa8dNm);~&{78~5# zw(@hY2rsAa$r*YR*CmCokU3zwvCB&SNYteZ_4ervIzqE;vJONr{W&=MvU7&oR;I?Q zO`g75rhNis#lkH2|9{^vR;hi`dTG|=wEvS&ZJ2rOGoRv)i@zjQ{g=P%SabAEx4%@t z)Uz@hE~}d6tI0+mKmE&SqL1{V{JcHN(^R+2_h8Bv?BtmozpCNk$_kZl0v@MK0zXcf z+WeN?P)z#Y*AfMXomUvs=Q=-?Jo>93v1_Ksf{ZC^POrS=;v~3WDpP#BWYf;l$o)$W zE|}4~p4TdN?cs1^(bYn;EtL}b-6!38b*j7Hg-ODDQrSkgo9nj3Z=TJ$ehQ~wCX@7M zrM9K)L6<Y5>$WG%jJkbfh4<E3al7_M*T~q~wY|S@+xq^FW#2yr|CR2$Sz}7_`1hBb z(+Sgy_n7l$$$`k;q@4mY9<1_Q=I5=NC92Dj{=rK>+P;6=60_HP6Mmg}lvryNoG^cz z`@Zvs9rg1UY5P>Arg?UrbaGYCR@D5hDOSaEgsDl*-=~R1_V&Y6`AE+RKTElmol`pb zUh&<<f@@C<J%Z|tqsrX9bEbDzh-ZB4+4AJswZpF_rrzA7rRF}PSzX)UeVbS9=F8WO zt@2bR?YI%?dzXJ9JKGGewZG>4dVcWG+DK<vXBX*seTxmpmt>2tlD@dm|7)$v$*`<# z`Wf7NEp!AFOoha+uMO|~<0@0GlUcj?<{!`LttzEivkh*(4lUK`=GKa0Pq*4Bls4s< zc!1N&=2LTK<r#7r$@=Y^lpCXw6A)-pVyM^s_S07@CEcvFokmOl-k8y#w0noU_*&n- zC#iK)LR=Tl{mts@KJDVZpjN(30*_a&TN!?A=lQvOlMBD87I03|j@+!`eQJrgUE3jl z!HcrLd+t>_9y^c`b!x`m+moh-9X2Yn$j&#?zH7+7bbAN`>*dR`cRn?X{<y|}tULP6 z{a+X58UEL}i{Jm_D1P34eS7+R^X8Q&?F1OOx%W)TKe)jx!strG&o0Z(7S2<RKE{Hc z#cezWCpQ$n@>u?{Kk3k#1!?M1Zwfa#UsuoB$rW{}sa&(t_27d!mY1Jh$@#i}^^UtG zNhWf|x8f&--53A5YG!Twk(W-3Y;qUw`g=4~K&Co_F>Ud6b9ec_Tcp<~mU}LG!ggg+ zS%!J|`IDcDBV;uq4cRVSm=#jHR_3?3lz~L8DTjXM$;stx4Gj!wf2%t#PrfddG5`Ov zgead-XE#-;cXi#rWD-|(RITpQ&AhbzbEVMLX>nVP(?bsMtGgXAtGIHsB7U{rlF2<! z<D#9!zV3~fo_zSdf|O=PiSEKPZqaXq3zywl_3r(_)k(^=oyYfw=XA@@wY-p8zS43F zA8X#(h;)g<1Z_#}<r#k$oEMm_W3tA7OY(+e3cKz+vH6<8Tz|Rbz^qu|tBThRYCcwQ z@GRr}7&rUb-OtLaqm0>vOqKV&35h<rV^i788w+1HefbpH6@IN{*IHe714AXz@O6ug z1K0M>7ru7rY>1Az%+WK!4~|P3ZE%=6)2#HzMYXLbWj3A?f5&bg)A)Lyb?45?N6Q~7 zZsK6czjO6yzFoT5^LdutW!lAN9=j$TeO)wDrMBsY_i3f;Pt_NDSS6jkUMz7;Hf+~H ztCOF)Ee<#wf51|9(6lf0fL>$oq$%y(thY@btvqw@$f=Ohc@ht$`}b5`VBWileQ8~a z^7@9UZPIDpp&~v`E50el)?Cb97UA39mwB*Zp9>Gin(u3RS4ZuB{=r#|*UO<$dFuLq zi(46w8y;Y}FpDKxIAJ&QBHKT2m`^0gZ8Bg^;L|;`s5j2**MYU0dv1Si-<Y|mvFJsU z_3SOXeM_em9;v=^eU>FhsY+uS<I*d&{uWh}UR+rekhP-yLFAIH1ryr}7f(}3n^ih} z&C6rFTY0SAdYBR(Jmc##uol?t#Pnm!b>9G`0HvjB-*SQ-eJu`oOyzUgWYTOAbl~WM z)ji#<or)PNCoGZh4_m&*Dxvnoa(OMzc`dOaWiq8ZLxhUj{lr4zawX5^F)eiIU6l5Z zWnb~l(#cxB+PSwx((km{Sv)!SVVB4Hrn+Fh^WM)Mg~~CRzm7;RS@+pd)iLy@Mnmb2 zpW8oFO;Owt@YKb6(v^jQ3$<_WUhOQs;q{tu#^6^L3u-p_cxqh<pH=<+#Y4S)zut!4 z_-i3$?ZP(U;3IoxNuIwu+@im@?L78qdd5c9ZEgPxURE8xS^0qb{>%g4-@klRU;U1A zP2}Ey6MQk^FFY7TgzrgBnt5r8h0=Ya9k&<{PU+`;{W$bo&L!>aegTsbv$u~q9N8`} ziYU{0eKFZp-TwZWmqGtzu3m6$keEJmis{km^HeQkHa}Wya%M$<`JxL_zg8Kq_$U^- zCadXP#uD#WDeAnJ{eCTDj!otLl5}e3%xv#uhE;aiR|?XSgH|_eY?%7shg!*Uv*es2 zU8~317iFd0m)~|>eKm_sG=u+fVvaNqTf~d67iP~teCUqhne#G-{&enj$hW^`Q56*E zdqe+`Nq1?^<P#a0#kITArk@Ho>^3}6YgoKT>1&C=tV~P4=+*x}*Vg~fUiN;g++(-U zb5kzOQD!}UM7D08h=H}Afcj+%rg)uVMX&$tM~|=wd*3>D@x>>R&2LV1IY%G)!TtJX z@WdA<jT^2tMebaE@>UQhhi~LvW1p2?Cp=wv=Dsx%Nn_ZnedOf@SMLfbhqD&F)`3Mo zmc=idFy+*~MK%Xdy>$Ijt{C#t-i)W^TDfLvRp#2I622j3)uMW<x2m}R*`t=7e#ovu ztT)Wc!R_UG-G}Cj*Oy$>n_oF^hNZX8#%H_4+E^4nX!JZ=lf<@Ny-IEF=9j;7*7bV} zu>3f<PV~pAufY;0f*9u~T!>%sf8zXrxieIv-unIZ-}Y>id-s8*;^!Vork`zj-yJmb z4EO$-jS~d-C-ZGp^W@)cbz_gkCUfokl6zO^D>|8`O)+U(!PvclVQP^5<EA~z52GSl zCPucL@VdJ0x7Eo`O)euz>(x1STP87GEG=g<yLw9Z$X@Z%LlJZH*STmNbUjd4VC!ev zFL?9SsYkYnznf#7v|F`3oR%~@rb{0Se|zLfm+p+1eNuDJUHX1C=*5qpt*mEc?3->T zR~wXnsoNqh=f=%#=;5`Ed+pT_mDE{2)0ec1IL@DU;xzYTg-N=PXO-l<`NF$fib3m2 z){W5Pe=3X4Px`d6L!r~ac}n0Sl~&Fl7Yo*<%&c_x3R+`kqqFJzq(kMJGf%DPi@dl^ zcV5Gk2(E%}Musd0cqg3SYQXb&t<nX~X#&eMAE(r|zI%V?kS>#Ygm35d$dt+MEn)1* zZOa4CN`%E;6EbPq(tO2N^)B0)fF{+sOL=09o0h%!d}l*az*bp)?^$+VYgwDbX3EK= zT;e<)v&iRH>AN=^b9Q-8@DY<_6-cx``}o&}@9VFv?K0(Gy8p+c`tZUF2jx5){e||% zamVkk<IUS!p5u9N@BMg(`i1R|`~T+$z02KtJEMG8#&+wSj?1h6oI1z4=SP$9i?XF0 zAxm!D60Po@?Uzv9|20mxQC-Dzj!5`fj$UV`D*-R6`V*9X38brCmb7vE7+P!pXNBwp z@t3E*E9RSW+}xPaXn(p_e%Xv=cKVs2W(zY98Nbx)Tvn{JA&S3e+l7;kwXd?5cXWp> zQu&(x`O*C?7xHtD{FwFGVC%0Co#=f+Yp?D1Q~#e}aNx_w#WU>wC{(q-cXH=r(Mc4F zyZH3WvWFXAt_r`Z5dTTH@xYTag3~{w=SCbeT7Ie3sBl_9ElbV)`|%of3f<pCg*ac_ zGpY*G$oJCVt=?uZ`>?>1mcx2-UOF1TZY~YD)%nWM+_LZGNzXGq<%ZYaCak-B%xQP) z!Gg<M6*IoF-fgv0d-mMW@cQ8+XJpj;eGW@RN*}pa640jir0ZMz4Yj#G(FvMDyI0Dd zFic9|Um-MYgWhk|*bv3#sh1u<dlNTfmX4)B7n{W88(tE5t1fJvGkZ%`fpgSV9oM#h zXIK7yA&?UKK2%8Ou#djx%H{{peGZkfR0~~T|9j!$+)@FhbpDeCYB!E3Xy&WRwHx?s zj@tjobctl|!KRg4tS{V^$~*G1Z=u(0=S`pY?%eL~U-F@~KC0WcJxX2oz22Gc7vg6e z4_>C+;<DSg?Oeq7C8>{cv)O*Ujkj-{diwX%PoFz><?l7SYN{i?eU?^-sor@<0q&*G zBsg>SItiV(?a|t;G~e>5;GS*a^PZ;NiWEB6wAM4l_jBLhqDv}f>^@sQUF0%OJ-v0y z(T%Sb7Pju3(y3FgAN$k8dnc3nYe`o%71Od5U*V`c6@fB^yT%4vA5Py;bT+NTYOX5d zwtIJE`s8f8gfCyVsQY8_OYdg(_S+HrYAlyc(>;7@s`f=$`FNoPF%c05HoD6n{POSi z#aDOv7p>ow6MOK)mj7xWd?Yr0^W4?y{`Qzf|LrV&XHCCJOPWlXH8_$>Wn0x%53Vw@ z<p~Wo`&_5mvrDU>LW&{FciIu5jX%$b==AhHym(c6WBpYTxtX(${5`$P;+KVSd!gVQ zv&)B<32(kp@Py@>O%==CnUU&qh0LFIKKtCE|J%wwB>CG6pIZrzvnTCVf5PLtPDx`* zs`f3}d&-7QjA9|1WJ1>{P5PwP<;Tu@x>fM=q}a~TQhj65Y3bn#)_>e0j;r`&M_GAq zDxS7(^6NYOo(@HKR^?R~8R;GCzvr(S=qVigwrL~p?TqhxdK*<DE(&dCJ$CHIf0vW< z<3!l`dLIX0Uw7<dWFK4IUb$b~dsW|loI3fyxm@O)80{Gn>R~>-0j=EgmZaR0XE?sB z^JZkif5k`h+B+5-dw1);^%I}_E<<5QlGBIX`ty#pm405yqqrvZ>Vd`2XH5>doc2ky zuf%N2_99Iefs<*wrs-G**eKX?XgY@-&tuzeCmDEs0@LjHG!btx-)kwBo^6xZHZSP* zka|_~T=zsvW7EZ|sX}~{-*8WUa%=nk&dEYOZ!X(<&J-%to#`1+b-;z)sLm`b@2BXR zn5}YO(zjjuHh;#vWAkjQH&lPmdvj|m_x5{L+WWq)&0lyu`qsSnWxIF0Sk(PtO}Z_2 z`utk6vNtyxbECH>-Q1Mgc{Y^Us9)By<8k%=_HTD=8Q48tkHiKS3NLE88Q6QV%qwJ) zPJLSUN*+ncb_*MOrIinV+Z8Qj*!gZ(n^_X;%t@wIKY~_g{}<m_oXa}1<;K*snbj{d zCs>&qHny9sJNV92yWsdI&Oa*Lw$|xYH-5e_%(+|6ak^iQJ6C04tJ|bcl}u4JCoj&j z^I#D2zF6^6j?dTdvj4rJeYLkZ?Jh68I(N>l)@w7rF+kS>Y<ccxEIE4?54+|3O%oTK z<5rG&zHpoGN8>o-{i=5r&pqfD`dX8A&N$P}tM7~Wm$WrUKh{_tSSp${&D*zRQBK5% z<@q_UKAL}$i;&mibbco*pWxoJf>W<#sg6Pd_XWSU0P`0Q-PJy>d>z*N;*+S(m#T;v z^QCvztM5Lr-Y&O6_BPv%9dR3yD&-fyZS*cSe0-5jz`dXOH{X^G)%=Bz=N>uZd2Y$M zfIV?c&cewDUdP$=u9dEiDxC8Eca!KWk>}4>)$)ryI=RAWeQI;hyy;7udr#V=+}<;x zBO>SJZP^QFrZ{QtIsNn7#T@UH|27LcbEeBpePG9X*F>v0Z&hGMP{t!+$%99<@-6Z= zifSBNlC*GhiD!y*=SkbcC$?OCW0<gezsI8ccB0zb{z!$bz1t&}>3HKqlx@`ygLivA z`^D7%{rcm}a{J!e-`{LkKL2&BSNh|t@cmNaaTSW^Y`@2>iQIeZ=-Q*_jU{*rzFdft zxnHep#a-RBam)3P3!eHV7pDmR72m7Io2U{fCe(X>?pyD)^Pz&aq6{vp6bg@qrPuK+ z*WWTBzQ0WH_SzMPX6|UrzE<fPRC{{C)kF7sUvJ31oK=(m^T~cs*YxK;{LkN2i$s5a z<6K=Q*ZA+s8=g~pTU(0i{6iTwhP+(WCsvoi={aL*q=nlH9ltI4)7S!gzHuZ5v2wSD z%;yaZ+8m)YyWvpG_f>CPPAr|ic9YV?gZ}HLOnX%^$6q;^o4N2`)4n&!zI&wq>MmBc z-+X@IbA#iS_vBjGKOMb!v?bqp`!1m=4o9OR@{Ocz&f0!tzPNPeWM6UiZ#J8F=I<yI z72}$DcftOKpF1Nvro_&#&wS2s-YUN#c-t4lYnroX8@!otY}=u(?{im{f70USKEPZZ z_2b^$BWu6+1q5$w-T0An%dN_t*=u<J+{^b#e!VR2;4z!{t7e@E6P{j)eOVPVHL3Z? zW?oJ8sBNyF;u;liPMUG$U~Ls=5Sz$N?~}nob7Bf6UU%Z+()k>{(du!QS?B(la@px= zo4Zs#o|`FSy)0Jdv4?pp6PH2t-kB1o)t4#67i`Kj**5jUx*4BV1U5+&Nbbs>-(DJh z-f{U|ztii>-`{FoA6qVK_h({%LRHnT_@^=P+j1oTJ-GkBde4ia`o}EO=g*zCQ2bY| zOx2I}2#X5lTQmGt7gW7jb$4r>Ybt})<S5JDt^38(Bp8FgFD*I$La0Dv^P!)HQjzhm z9xqzHc2!|;*|gPPV}oS(cbSW4{NH}G|AzeQ2mf+s7d&2ewPMNTW5Ev%O$BVy{|nC9 z`8%;BJ&osdr^<~h+ha|w0wfn7Ge|10dBbOSGHmJm-C4)mGZWq&H@L{*$^EZM?Q#$I zjC-=TZk+FVQQ)(0y}YwW`^lW=O3XXc`Xx5<^67{+JYqlN`tsZE**CX5Trk<_{S)gI zlXGJ3hhO|xpSPyA>W5_S&yJJY`?kzmQU1Wxccz<Wvg(T+p@l3*1a8<B6)?&FK9zOm zd-1jWy1cxUo!@t!mv~@#KH|VF)8=QpRGe27*Onj5?W;3;laa{8AX7Ev$Gf+=e@?$$ zeELxG<Hs-Gm)}0{e*Y5|v$fF$*@-Pmy3BrAvv_?jPr9`{v98Lg=-_YTD%qJwG}P=a zPJQ$``0QWZqZVSPdn8V#dpGE5OzVj}m1}!+@#(z8^@cC!ZQ1DA!uq!0PKa+rfZcqL zHAyP+=4z8pWL>!#pgw8gPks5~$R}rd|F25jv83AU+MHiCKDzOe4C(8yANDoB+tOeA zCi%zl`aj3(FK_<4z3%n)54*1K<vU+_uGrw-+qU`g_H`oea(~Qj?fsp^r1C9B-22<X z$lL?7yPp1&+Sjybl3k#ffv2jTS6-X_-~9Ue#K%Qb&iHljD?Q7o=fwVf*7GZodoO<2 zxmEEjL$>cklgIbP;uqh~dweh0>~Zw$>klrLar+;24`&g7XWz8>T{Xwun~^P=SxL+1 zR4`w8w1IcIH^-Ve{14vsDCd6AJ>+WaEt+N`KC^twQNKeH7nC!F(vCiTGs`;1c*6A! zsp}3Y6wET8ZyK#{%_*(?>*iDCZ*F((&4iOD_;?j&^y_WARC3>VzOtsrnua1j520oK z%KuNxg;@GOn3;M1>gos~Pph?CRSx!6SAX#k|Nr=Ow!vlZGZWaEzdT!}*gWTJ^)tVN zs^aI8&%Saru`gdbYm;I1x=iIc;ps^xaZRo5eA_?xU*BHvdT;CAdsz#u_vvIUV9<HZ z^#8cGf5P2WtzYD%@44>bSr9VeGUv?<f!WhzW`;?=h;(Fq;kBk+<+6xZ5sQelvr)8+ z!u*O&CbkK7x$UfTj=3D4CHhoSZH~qDITJ&BG^Sn%VtBedQ)*qtxl}O+>!nkor)*iA z`aJ6YUDo6mYbx!`a_ZTv-frWJ|63<-e!s@p?#n{{hp*%R{|bJUv;WB??+@+uKiVt4 zZJyt|ElJxlg_-})5B38Or5$u4#5r>}&6{JmSZRaG-B)E(l5Z+LPO-hyW>b0JT~EYt z=?pg8Un1TNb6-ta_Hxyw_1f~c(+|A*`zRry@xjBh(jU$*&pR@2qgkDl+-Y`ZoA<}r zH$HBZZ$4>oY0W~Wf~MN_>jG}hbT^HRIBU|hQhWc$bnh*SONF}DHZ0AF%(1xquaI}~ zjIFabyxOGKw7%t^pR@?qnVAR5ay;L(ecL?4);iGaX~*4bY2S*Ld3YUpaP!9dOM5l8 zzwOYy*!1kD;mrb*Iqy8au^0c{^@we&`Rg;?PqvEBy!mNM`^_&t((?c3zb^Pt!Q%9{ zmG#W|vr86rT@5~<9lxdF@;3b^?mJCedrr3gIB9a`>O0rn-2eMpvQINO-1(lsJ^!!z zql?0o1#;5!U92^2*T(Dp_&Z(h_@<MN>%>nz%U%BYbm?IaBmG@d&RB?@czyTq4hN&m z+b7)06hEr^E)h8Kc4I1M5WnP2Ch^?OcUfgOiU;caPg8w!>#Wl2N4irgSD(GS!`NfZ zn;(`3&v~7E^?TDNk+(;d1{~JxeZ2YZ|C!ZH96UR?f}`t%v(0n(!{0Ts%N=O9|C3nr z=dpaf*ZjBpfA8MkZU3X${=mxR^Q7v&z4+H|@cYB{i_;$Wg%pOL=larSp_v~b^z>uY z{l&BHOxSXYb-$Za^U|d~xAcF%eVf1Sgt6tZt$&?!**9hI$gH~ch`0G~nk!etA4w}? z%f9@%<yPzN?qNGVZ_%3gZ!ae9NWUt=mlxCCd)c<<{JE+#Yu%Pk<rR5Tn%Mlw`9jEK z=_?O?jBlKI?Umr;xiY@NV^@fzTJ90Pi)s(Vt6#l3e7wl>$^)Nf^IhlP%(8s*eS_hg zltp_!NGBJ@h<1OLki6k}sgLvI=_4lJ7m3;Z4qwK*ahhSO#^W8{3*Thl$)23XwmJP> z38&c|`QJ`rF~;83bL31mPhR*t&hPcz7SW`{#vhNaUr#*0&_&$DzP<Hc&aU@*HsK#$ zP5-hXF?K)Wip3JPYCfh~?sa_{+<h5&UTV(_-eeq{6?#B_KJ%CABmLixmrH(m&ZzW) zX?gXLgU-no&$m==i86e-A!ltm@0N{A?+R|@Y<V|dtuseW*Fv-LqxHhi>z2&>v**Ws zmzkwvn^OylT%(jU3+LwfJn)_u^s094W8tf3o(8^365rpPqY&BttLj4D2Z7_9=}+dU z&NrMF67_jP$Zg&mEitN#HE%ywDKxS?xnwVEw%=}%)z|Vir9ZtRv+u`J{fG8{+W$Aq z&foV_vwqwCy5DbqoJqH9_ML5(`26Ma*($k3S*jM5T50`n-MQ6ul-EfAbQ0*lE|e8y zmHAye<g51fT(4bk?#5jWTv_{a^|t*tJLXRA4ead{)V-nEv(&KdtdGY6j=xRrZ|1F) z{xEa-+@{~^yMAQW%DmfB`25(`h>NnvZyk1@dLsNTQx|8Cp-klYZEDR4DGZY<^2NlH z8&<iVTyU{<idEs>v~_iv%b7nN?@sJFk+LS3$=tV?@$>bTt%56=msR(>>X@bo|2a@x z<-3^c*O_mtq|TRY;$+x&@i6o9hqEWV+UrtVcYNI@JDW)PT`4+ZOWGN1GtLyOwwv(9 zO15x^f>EnTeSA)(ouSE!`1iNX*B{LN?mGGT&wDz*KJT5fwdU*k?;r1cu9kScWEPuv z#Z)~*Ppu^Z-`tq^j;xu!)WpZ+|GSa~V}IeCh>M5j?lu;<(e5C|yX5NQ3x$hpGahbP z`?>M2b5@Ms;?AWvb_8!MRR7$eY*Q`qRpRTdl1cmvr-U3dOtN4*m6m4m`FQS6Ywt2+ z<+qbRR6OA*capL={h|7-T(;Y4)mfRZ)}}em^qBMcOi~fY>3f?F*cc{q?hO@AJmwH3 z`#$K`;m==<C2lu<P2VFDd^&tq`kTAE#ot#vxBfWq`=0cZVtW3ZP0Ozz-g-T*yY~0@ z$1nZst)}V6$NgVpZP&O_)Vko&3CAr@W>|Zl;?#_-4p;0oc<m7o5xsBIk!Ln%@9nL9 znR@&Fo2p$h+0%cnw2XH+xk+YLk*STVr|IV{TJN_+@A#Q%{o(1_*9PBHdaHh#*Kjoc z4%0dOWtZuVq8}1g+}vOP1SH>>^|0P_ho#IiHkPBCf^{mr7~)KO->B(U1ShmS;+(qB zfcZx^dtPu{g3-YvTi6euD@^g?H=nuY`*khev_;>a1ik2c#9n3`^~7Sri7gEGbIfK< zJ}}vDqWCFQk2t9de`3y9*oakj9EiK-8D|;)y|_to_1m9S0ojZEG+xYnmUZ`{%Kp;K zFUL=R{C{_YPSgIKGhKtz^|#Mp_;+`;*oNZcduDnp)-~JoF63~OQTiK+ZBnxx@;=G$ zFMHu+9sF)X)w5?`n~MEd-|g#vp}XUU;S1-KhO*;KkM91yePf$g#O77&S8*9?r8J$- z_z|n2{Bx?}*?pN$Bzt(3uEqq5Zr@@t*R$)<?)cnKM+#O{_VsC|d(XM@V`k;4S-<(U z>?Z#z?a26B^yy>unWH*p&sdq3cJAHUbL>vIY&A=Q_s#YNo-s37vyY#uO54P8gZp0? zi=o8r&ffGrEW(pd_n17mc02E|^t}&kHJ@kS|FhEe_WM1b{c2uE-#=9Od~W;M*=AQ? zZ!tD&dv_|>p!SKut-s37N;;oTs_&mw7qV!w@&$8Vp?xkMi!X0?@nbc;J$+x+Mi!l! zd_Fe6ms`7So~!D*Y<HKEkjBZQ|L4w?IllG01+)43n6~*_k2mJA^XJC2zdimu#B)cA zUI1&jc#h2KN6&xmn$^ttt}SqpwL#2Zi}PwZFRnf164QxFa!6muc(8C@+t2QqLX$Uz z&rIEXJh%8k_1?Z)byK#qoGj3lFkEymV^$#V&HAE*P{U|d_H9@0%IxxKm}%SdNljj& zEaZ%p!R(E%7*g`qJM%A^GhK4#`SNY=)9b(g=+v|Oc{MabqQLV({$Z^L-}PT79=^qT zIrQ9<6MBqFUejLm6v_Cjg&4C--xSq8yEN94bxyfe!TDz0IWs;h6ijG3P%ZcB!A$Gl zFUpR7<#$`Z=a+DYo_5rZtlbThlQz7zT64W^wodTgI$NpkPVE(z6J|{FX>RTP!IHD( zm%jF?>n9znnpHaue<>HUTxMPTnfJG*$&#BP0WW6zF8Z>_Ys0J^e#+na<}Kryd*a}Z zS!R|S-}&t0ni&86(mctYxox0meEeAW>u(-5=9uccr9T$i|5AQ)fB*mG|6=SbJ}B6I z-+BJwn$719y<9#&ZhfO)I?r9v+Xa7KFm7Q#?({e<WlHE)(L5HluU{Azaj15_*naB4 zt+bciix?YxPI*jP)nR-w@v`h2rS-S1dY^e6U!JVJ{6p*V`F+2SAOEoV*NnXF9~Sej z-njPq@hcmJ+YC7w+6{hb$LeM9z0+YXe(IvOR3rUCq+u`5-8ESYEoEn2IQ=<8k}XT^ z{JHkj!fl<&nig8;Lw<35oO_jXLzC9+F5U7C21gqX>X^>ga#|kzC1-7EUk0C<t;C+h zX><Hey?M*FChTO~U*nID-yGRA>xy^RQ=`T@zZYEnH<z+qJNq~6`bw?*@TLE=?(Mj) z#QEWBePs9E{;0e6o$}3C>t|nQnjU}c@G8;2PY#qa1T*s<%ha3HDKl~P?iUWN2Yv=F zTYaL)OI7st5tf2`evj_4cRb!K$ikFl(#XyH;KxU^dE1ijHB?lIT^HqB^KjFXhGV4@ zuH8SP+P_QY<#Ekhj}?+n<sR-0iwnBbIBn8QLqk`^&@GwWDJ#@^jfLLr^{)4r8epXS z;qu<JBuB+xKaBTsI`*)vHTgK<)-%`5OJ*r3#coyK#yCl1#_Ftlrq|i{ZbfhW*E3z} z*?N142gdV%^8EYa|6io};DhvMG4ecYKR!+0-=iD7?ZKSlbCEKJ>P>#jn>RkaZCLvw zaZ8F-I#bW{=Cga7wgsz)a2g6Nn_)2T@uUL>zAasU>tCAj8{N!<*JZ0#Cfn4yFZugn zlDaQL<KgVEN3)8{A2=-Uo&WVXQ|IpMYY$Ch-1z84Vd)1W-TRUI=b!o@?x@T*Im0OJ z>50->x5%<dCzayl)lR5>Y~++~s*8WtdsLzDm!gzhyXVP^;kw3`Z&(FXOHT`UR>p9` zz?FwB{EKnL#OX&~PSD-UsdLpu@FK6xuI@{bkAFn6^jyDK(a13;H*(SSCG8e{wgo!5 zGprU#_~$b&y3W0&^81Icbz7=g_x=3KxjX#X=aX`?!<g6CyXF^mwePZ97=6W8_2do* z&l&T7{WiQk-KT5uVmDJY8_!MCR_%Y$$9c|DcE|U|FowqFgO9%FYD#zgb&tNWhbv<H zviZ)}bJCV1GaOd`et)*x3+dtoOq>0e21}=Id9=83W-f33m$*j{yQk<bax>1Km0<Mk z>>oAnKoRBmo5~h<0}cggUYlOqx>4oz*XcdNYEl>6AHR;e+<MBW``;e@n)^A6c&<*D zEHJ$`r%ZF%vM`Ac-#h(lnCkytum5XYy{-OjcKqRAUtbsA+xh%jahr8=@`FulXIO8N z);(i=V#(|b)q+(=Yjt{_wB&2)PV%1SD8iuo`ulYmiLLV|Zfa|sQlxV9O@K(SMxMv5 z5C7Zr3oEXA)x64F{^*2%;Pm&x=Oh?v5}%8`xw+3ZSMBJls~qt+pLbZCowD_sp>kY| zdWT9*1Vib|6+-HB#WaGGHs-m0d7xi+EMk&S@T8OzF-yu$f0`Ba>T6`?q?U!d1^MPL zj944I%(^XVvE*~{M8nvV%Pb}xF_4aO&UgQIq*F4<s_O9--{>=++cp^Zs_y*f-}_;) z@0T18f!l{3z2^7Y8&`kEt9->89+w3=OFL%X<l9&EcgkJmzpYztmuEFqyj^O$W`<PO z{VC5QLw_xif1M=8(7RR0yD#$Vv@QSicb(DF`Mx{*IP=G7?V0-)NNx)~-FSa@$c7rF zb&Ff?>9Eymi~RY-8++#5wn=ZSru`I?zNq3b|5<bQ+_1+7#F-Z^eX3D+zEjiZ^=qwH zaUr|+B&4r>mw%@^=uYONd7-n8rW`M+DssNEyhZ!?tM@BZBN*AbZvD3V*Qw&;Jtc7C zyr<gdriZ_cU1)gg+>C(BXVh06G>$nGBy+XdH<NK8LzCXJZGYINt&h0-CRMQJneqIC z(f2-0oBwn3U)}slZoAJn&nGR&yY%VlYJ+_*TLntqa4praS+d$)D8E&5;Z2VZuWaI# z#8&)GcV-c~yzkm7XQ@Q7U6Rom3%XWJ-%=bj`{#C#*cA)el;mT#GF_ij&DFQPWB&Gb z9>)jw*3Q=5zJO)YqKzD-7Fh{_SC;?KWaY`<6R}GCcvs4T6IP2P6&rTsY?XSY`>tno zq_%wgoOp>tB?jiA0Wp_bF7pQ-YB9VRyG^uWYEY&BoZMptYr90=&u4tlHM2MVSS63w zm!mmeHzISylQrhnPq46A&zO9PVd<UVxQ$!3MH)nj-&}Y<#KC(;jJ{bO!z9yX4h5HG zwF{H_mfg8Id$wbl+TM4mwrj$A`5V>E>RKvwxBse}YFN88cQOwn*V&CLubZ$+r1~l; ztKPS(Z1bENzE<SVztbvbRjZ1Pk1_oIAyatxt?<XMs)r=@yB}I%c<jg$OOHq87mEFC zZ=|wLI@)WL%zQL*kDEtSnt;%)Cwp90?wD&kRqdy6w#a<L#eCdSWx@T<DJ&Zo>7)eo z9=_r^tLy&~|9Puh&TO3M^Nj1VuA!jG<b5IqOZ9WjeQhF*CL7Luw5+xCnvHz+l=Jf$ zcD&p5`ol8wy)U0X%c;LS`(DfIb-T~4*?Lua8{_J_tBPu@i&#&JUi<E|({9DgmqE&o zuUXfWPgrqdp6lFc_jgn+G@B|g^(QyatM%b?I$k#m?QXdt^W^g6$v^H~_B(j-+IjxZ z(^(hm&)vw{er^5M6U&qQj=ZdNI(cqmuBh&@v~?+A_Y#{<`26z=jY)jwkUvu^(9*TH z{>+Y*Ew;i(i`1AxJ-?_=(pmXx?or;#<Wk?PZy{UO#+~}>TH9-qJxz6T_R8IH+`)H6 zCa-G{3Ei-E;y$O9yS$ut&;9Ht#lGn5713kPvF+S!O;^wEm0eb|h-tdS%cWY<7yp<q zomuHH(ZKW7g@=VTzxxU&^L%->Ecn6SS>pT~N<TO4{N7gEGQVMRztrkg5_Rj$xEn4O z_<rFL_vf-(!r?rLQ=Lm7_pZv1x#FrH4R^Zz|I^IJXLsvkWUxkAaE+k<rKUB0e^xT2 zZk~3O!N+l4N!v4hro}dYb@I8&yA0TCUQXfS%*<g+I?TeIR^FSr)%8q-*^Ey9n;DX8 z_nT?DPx5%7X0git_cGPlH+G*6Kbo-gyZ6Lx0*};HL@R>q=lN_t(flqlV*lHhZ4Ue2 zUW@+NX1?d)^LIJ*ho$c|+|Jv3b<LBlx6irO=eVDXQWx&}lTswv_vi9+PS?|)bIJ}K z+T-;;>Vj6+^rfD1t6Zbj>lZ$Lq~OJ~Ufd@|_1SINny+_cZ~QM_@YDL{V)sYd&*wC~ z6b*j$%=5(tMX!Tq`ii%L8eZL)koasR^B#*?6%~h%E)cI>;Ii*XmB=EyoR(={O*<QJ zOf-A6AcMpF*@S5Y8NWW>+9o}{tfVw3Y1KjJ*j-z+=PXT*e#^fwJ^F12f9#=^!rGTx z9%ikVQaNPIx?zEBrgq*F3FS0B?@%w%cHcFpV^iLXyw0ByJk=#Ak(IS(wb9q|ecKP! ztowN{$LikOL!TRp&(GR?KYEI|e5QI(#Q{aZy3QMg(;tboyjvsA+r(7h)TlgB@aXZH zC)KvcvVW96pL_SX>vLBDjb_GYv7LY7^JMv17E5rbq}>l_?!Oq!?<-*#d9p)kO{6fJ zU)N6cq#5d()5_l-**iJ3H{(&qkr&Ci(H%E-_WiN$y363U(fQ)XX}&^H#&u_(i@RLA zdL%zI?VGaMYgTQUorexZSaz<}o9Z^<(3fbTmogH?`*<u`O_$rq%P#f5ySrTf->3Ee zxITaWY+wHT*PlN&U~cvIcWeKzyPKE%^BcF}fhF3k=Go2(k26D8tWG;sy>|D7*>f-V z6qK&dIDhWp|1D<>m%ealyt?S7_(J>NZy1yO4k|8?=sU3UVWxG#`6Ci_A0ujHGPi&D zT3o)!-t5{2wR3;2Y|HDOdwT8Woa28omtB*PUY?a2ULbh=>f6|F6Spoj_X$k>w`#+3 z-T3fL%x-$FOLA7du6=ds)AAcPFLMOBn?||&%W<6H{G|BS%H+~im$PCUUoFcz+?5iu z$i?o&(G)FjSx%kZ#tq`pPqh5nLdArgROUM^nz_Y<b9ttxnGVa_bh9-R67Dy0-r2aj zllgCJ>z>EuyoD!=)9-RPZCvWSk)^8GqR(Q_)}OVP7@n$b-FJPmrpE-q0{#=bTy1w; z+`UirK=(ZB1Jg`zdhDtEA}(e7AeVp3#}kc)+yBWFPkvQ1RnAA|^858|=?_#jExT2^ z4zy*T=Tlnbb8u4zb86&8lR(3H%pULdNu5`Vtef#-qZ8|aaNnaFTE5-7AlN+X>twgE z1>eLcGpbujelOf`vv1OZs`V%IkIKdSP1z%3vq$0XR`JBFpQnEP+`H3q&-cCWkFJZ| zU6*(MYwYf_hkNUPZ+~&tv^OXCboipJ&n!I;PYge}>Pgs@oa(~;;p$9P=l06o^v>3K zC#7xJW4P_l>4oo_U8g+AIyOnI`PQt3hlIY*-6VN^eN<b#&6~&nIt}kseamFq*%`6; z&7^fp-~CwA*!W}F{<cb?ja_Q>1;!#VA)!H&q7s89DmZPP5PR!h#+|f_yx&UOQ+1=i zl<`dZHOno2U4=yOYkpT9iOWf~Zy&9DZFBI=t^-j!Dst}Xs#w05#e084%OZ!SBbMhM z9ZcGJC1Xw0tD8$E?c(@#^Zcxa%Mto{b&_>yw?6$XxO?}*->1($M87z@r228{^fSqO zv>DrHIO}K@a!gnss(Y)QY16xPnN49ann9l$XKvWtqPp(hrn;BKvyK{FWR0sVJhw&n zOPbH3&u`zCCrb*J?Fh;6@LcV;>(BdFGm?7GX&b~DN9!z0Et}gdzOS1xfX6jP(;;V7 z%ZdBTE!3mcE8-4^U3a?F$R_sk<+<`*&pWR(T<-J#@ayL)lX%q~hnzl7c+HS|EKu#u z);`WJpX54aZ=BJ~TlBoV@?gRnku`T~w(V4o|92|9;H>HOKX>N8zFza|@{dp9`;z|U zeSKzZc>iY54QaolalOV%ZC6X|-uS8}e0T8?!;3<z+;xjHI)r{)U%GIHqQ_I&=aW6E zx^`Slk&U)%U7r*GoqJ1oMNRr$t~Yl#UA&WWTldP8$d#-=E^V1+bn<Qh|Lndq0i_PF z-%OE;+mZO_(G0%D?gcrW{OfK;RJ>A<u~{j^+sk<>XoXYYPo<xmQk>)*W;?69$xmvq z{3<vnJeR5JDr16*sNds<_LEn9T5ED_jgq9Z(g)v_rk@p?0zQSEapYa)%A9EZ*Hz__ z+u=2@-m9$o9N1i4njvd*=jdGiK1~JVY{}aXAOGCXlXKrDpHDwNsrP&MnyWo!VOI}c zl)U@PK4V+gJW;;`GDaIFP7~aFtXIv!`^1`tx6v%qZC1|}h)>$JG{1gBFSE10>#D<c zub6CCe15M{Ce*{M^yqBA>NM`$&pt{{>A|7~^WC@TJ3T2VKAp>XR^^(5*WPZ8e8x*R zPkI<7@wurjt`94gUv}~oua`h5yMfWlwmi`%m%`Mt_i?`F`8QouL8R2#WOYRNla^AM zL=US^C2BQx42Q&)nf;xm`PXhkwfVhY*S7zA<REVcVmxZRdv?unzumo^z55@{dL-oL zx}baE8V1-}fOEC(CscRtop#;ps%V_vr>p;Ob6qi-?R=ompfGao;vJScyA2o5@T~c~ z=IspC`i)9%Hvcl8i=FB1U;c(^C38VC|D&XIVXm+JOJDw3D*ur4^+Sz<rAcnWL26$G zE}rG}`NQ+NO2IdF!mXtdhE-8la%MY~<moS+XmaeB^NcBbUo7LfaY!MdhVidjGSf1F zXZ-9F5_*;&?bx+=qW)Emy=n`$pNYFCk@QD0Qe)xE!m7lGootsDojkNhE#cPT*~cUb z&BR5y|Nh-A{Vo5(`{hgTuPl7D^ZYwjH^ILDUl{{(xR*@2Dt6>;lM`$6y4SLN63>qv z+of~X$txi=^hDPrMxnSbZy2ZbAOCSPe#Y?y_t*cgdA%;L#qEq$+S{`t!j~-<F+G{( z%5y-h`@tF0$xYpJvK1ADZ@hV~uP(~Oyf*WP6X!L<Am;5JvBn`nEf=S7ovWFBO09R@ zqrmm{fh~0sXP+0dOuIF0;nA&OZP9DXqgHOc@mjkxo9RxRzF+1=`OVd4VQX*3<WKr{ zhzT^e{NPBZu(#dky5HODrRV>BlfJR=@iFzUI<?<--|sEo_j#`WtL(g+n^@=nzVp1` zX6kg^pXGjYEE@UipD1@1^**eM-kK&XwrjcWI`zVduHlcqoc|J{d3EBwh!dCm)VOqt zo&_vqP&isTbH};3$&%Oe{!MDr51z$Tc>mkk9mSh|bGMXFI==X=*gK2IQ>vJ|&AbEd zF{^p2A8KK;t>60ZYSeS(i)$BiaU6DIm6+DGaD&>xUCU-lo-Mf%8d?;(W>M5aA3l|} zXT5j7S`sjAg@m@(!EZ;)`Y)+FG%cDQ|JQ|glaS&%i*<25ulabZ^%nk}cI=yLS5vtt z<Cb||6GTrwYMDN(SH|q5!L!AV4O8a2wdPFOl6E09vmk9<^LwocM)QCCWjv4{YjWU; z%l!vj8lOWx2Kd`Ne)^-}y33V__^DDUUT^(8&rH7bW5)`)EdrNkefDTnRbiPd+%!FI z%5Jq6*+1sS%KGrvGO}KJ(PEP%dOG7$qyCg{J#E2y4>|<e#iD*ZE0Hc<_VF0^O#vZ& z{fOoF{T(}In>Hyr?3LLwWm$yBkHvj+=arr-=}uaZ%lydIpJ!DryM#ob@q8;|fi<zb zvu*@walbl$a^Vx#5YtA_oXHbBo<_$Tw298HW7QSa&foV`tmcvM{D@DL-&ck2<$7Oz z|2HW59==+=zV4F4gWdQ4=Kc97|KD)kjz?YUyexV5_DIhEb!GX7Q{nrB-q-*C{qa=z zzM_-+e}j7d=J$)bt@1llrRPU}&UZTQ&>?qD;bKS3%g?H7_H5cZY2oko_m_>P?B20R zWOMGqmdypSB?ZQ<nlDO^fAGJ3?H|)!-H#vNmTDJNyv;hgZ&$T?8H;F3;pSC-J{>bI zW_|6j6b_DvJ|FQ+dsp>AW_#s;zML6)H#&{1zNSwUEcCwoYo3Bd{M8b-nd=Vw2le?z z&fT%hEh_B1$!*JH{^j>C7i`#evGrw*M(GTx|1O;M`e&B8MZG_<>Wyw^L+qK!sv9zI zavVsDRcTOLU8$|R<OS0zY18fhA5_e3_#*yHvAOOB^XzK^&*#}bXK32G^kc8^x(Q+r z)~Dn>Xu4pjeDKb_&Al&A$Xwn$Pw&<TVa^F!=hm+<JE4?d|9%al+4_^anxw@-S#H#? zxLecwpwPL0Pmj^rHMX5=A}&1U?QC|geRS*bk!bnM$8Y<$d^{_xyR}e4$mWOh*}0BP zxeo7gR;#w3z4)w^bIO#Y>6<w>z4P&Q4m9A--^1XV@n!Fo^ViS%Fka^?z0>yg^d-wc z-s88<2T!U=S)r|xoLqBn`;|MXYF*)sDK+Y0Yog-+zl~Yn&R_e&+1u{9-tIR>d*0W+ zKm6=$H_s#PxDQM*wO_B^*pPTw*vkI?*LCF&`~UywzxcN7;@h&qqoUytWZzdD7p^+% zJKGGDHjaIs_kGVS&YJ(f@ArrAc_ivx*9$Uu#_O-I?DgZf@^Rk{ewA`3ta-|ZzAfKR zdVG0w>#Jaor)FUE&#ikbqU4j5W+u;>;VL*`*^Ns_Wv#b8IN^Wky+6a5uZrzyiocgB z^3QL$Q_a%6TkhxscJ|rz?`&9pUQ9gUd|a{L$C>X8gZi_^eKt=W9{5^sXXtdfc_wD9 zH)j&dv4S<;YcGDBo97`RFWW98W-$3cw%Cy^3lD3boVDiq2BAm&_u6_FxrECYo2tm1 zcqGBwyYtjC8KsG;*}Ezpe`xF3DB}NA+jb5Mj{|peZSv+rMpIf?7U&tgRPkZr4%Fu~ zzvpQbcH;BjYe(5Q?xlKItG(o%ay9DJ_u1mH8XM}x=i56hpIhQOd($@K{jQAvS2D-i zR4!51ognx^bf%)(->XeBRmUa89(`j!eLO!nR@LB|*q#^R#c6Kwr(5gJRo;FnvoG6j zzTjH%#TGaH;~V6^cC44pe)#|1^@G*l%0Db#xbpi!yETT%b(4-PX%_2CzY}+I^||=( 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%0AKudPDvkNobcy=R$7y0|Cy$gG&OBYk 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/|0}7TZMl4p!O~@`l$Z;^$#kt^OT*>pWF9ty*zK( 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%0A)$?fNKxoHyTTsL*~bEo4rN|&9vwEVW{ zrkL(6b>=^_PhG29wO?dwc|fM)Yq=#qGbY?vwtxEc3;Pdmsy8|NXkTg0wCs=zfem~w zriH&c^^<RU`LZA4^79_>KRa+yv!KFBMow7WILS!3#7e57(ym<N%2Yoa!KX^E$~!(y z%QR?7dzpC4-kG-{(0fg9<J;1MH+>(SS*Bz2_r~jArxM)Pf6boNda>BvCP+f*slb9& zdo-LKO+Q`c%d2{x&f`1tg7#$7-t&rmg;U;hEHblDuQ_X#uvhdyi<P(U&Plv(i&?X_ zZ`;;a{QR8m&L5o1E^DT3*4(x3$M>zd-4|E5-rnY%ctgDI^G})0H*<dM(fd&K_a2jM z%8YH7T<8CH7utMNWb;j#%{OIY&E@ryFK?0Pb>pgx`7`&?-{pK?=f7#%nddM?+wsxG zr!lYIK3v=8;Iw4Uj^4X{3?aQqbGtkb)vUg={YP@ZdP9crnIGM<8fMkpWAW=S=5M>v zn7G5|UR3S7K<md#&OgXeaM7rHWYFUB-ujA+^PZEgNq?Q#dRH7Q+8m;nTd8RHZ;isE zxMjztNG%Vy-fjPIm8$NcGu?Xb`#bY<Ty+Z8OfXr$IOgJVC10DJ{`<u?#hVmqq}klG z%ZoFge(CP34+fLZbRIjMBk7sfv*U+}>(Vayd4evx1+!d2coG-ncg(-C)@-iNm#K?X zwKq)D+_IwR!(EZtJRwK3ri(>fGOv+)$*sfL<>RWuG-H-kXI{YDt!vvtyfo*uuCq;E z(#^Un^QtXl_=8$a_k^NdM;)GpHisqOzdR{{-D9@~)9khhd4WetFEw0RD7YY#<@qhX zbo0h{HQObYO>y0-q4Z+OhO)Wb6Ax@)*A2e&Ma5$7)!M}|dedE{I}5_Z%kmswZu6F& zzDzO7%whMBn+pY8x|gNixZj)O%I{#=>zG)-L}<BkUgT~OjVhN2({1mjNQnNjEIcbB zC9(I%l?;wZ_Y}pKVRe`IfA4l*EI4b~(Ob79KJV0-xR)<h-FsG<S<H-Wxf}QGYrB}y zvURKJnzg-#Qn~^=KHXpJ7|xLp8S|~=y-VQ!$*P+y4yP0?;#qQfQReN7Ol)~Om&~ef zGbnr1p2A~0U3S;H>k=kbe0Svo)TU*uny@^(_I5(i;_TUtYp(oBWDPu&wIk9p=ERI> zsh)&0j+%%6cNu)F?!A{V)3PkqPW)<JVDpj-{ZF?}Z8^JH>8#F#xeGZrua7P26?pWE zbJuznopTd-E-PmpE>x2dd1<ozm7iv}QsD-rNDYtG$z7MWHL?|cY*CwT(Yt3&w(;VO z3&++--??)_<qspT^@D|OMSJ@Kd;ENZ&fD_~cZA1Tv|Ko{bcTqm=T^Zst)<hMXKM1M zUsj&_>~wO?#lOZU^yZ{E*eueHs#&zPVFRmjXydcf<>o7Gd>pkq?%w;i$9uyoc54S_ z^P75XjU{L2L<E0Z=wA?gK<ww{DHAFzTP`SG<EbiSDHOQ#Vfm8iZw2N@P1p7P&YYdP z@w(2%4Q>b4IbUX!z2)kt!IZf}=MT#zP8X>Kf@fSWocdJldLgM%g>P1Aq1@z7zikpn zr%zGU)AwpNT6_EU0i6r`S~qN5DEA`b)^43{SKF7-7h<H}r+w%6&!c)i=SJC-KL6Lj zH?ODc(SPrJ)wgeklJdnDS2ws+ElzoK>%Z})x0i+Y)z!aU%P*!eN9XYszl){2JYqz; zx*5Ckenj<inf3N%XNsBccqnu*yKTL=Oa8<M4+CwIxBS{%v_(whZmZv#K=pY`C1lhU zW(pRp=P#MPP}`}bY^7`M&P_8;3#Y6Oog!WJfqnDVZ6_BRtiHXGS=KD=<g>qOH|M;{ zo>cnJGbHI`_LP(_^EVoJb?F5Ex^!vFGs&q(7VZynIh_A*U5GrFVXcW_^RrEIzHg<3 za?97wuv=7P7RmT**~_!VJGgt;wl<fw+2tNiH+@|k8S;2R{JPhRf>UmH?q0g6O)UFP z;3a*P6B=t4L?1F}yJo}pRODsJgtCHF8PC>i^P4bxCVx-QrWV87jr~Upgaj{%iMNHd zeYQ#o`)8TyX>jq{CWk1?6uuDUUE1PX&gT@b;^;A%TNh9}arV|-Li0o~uj!iqfYm5k zv5M2tbg8Sm$LdGEv;Th2nAg2>iOaNu4eWl}KCxeZpDc*qqW}G3TZ0Mr<rjS1DjTvJ zmPH2~?&T0`h~KX9ZPp~cOW!yW`mb>}1jhe3d8lL7G$AwRwM!fqv?py)lv2Df<xqhm zr}<I^m5bjv5^t|i+Mv*N?8m)GzKhbm*=%j4K8-8cj*HcQSAM^@WASv`-cR<Lsl~63 ze!uvF*F!e9uFz-p$*$I?6L#NrTq3Eb5Xt2rdwChR<-bKPQ+6=6HvYcOEXREGS#N*l zO0y{SUpiK2nBAuQD9x?ZTK8pwXko$4gyxxE*OIdOwE}&FS`PfoQT;UIp@fLKguncf zO^bik-Ba1PT0(T;c|KRB(1X$Ye+wNIcoTO#^ZD_bl*z90K74OZ1<K5NcFNy!`HOfJ zvn#bhZuUJViuaZ82)-v{p?9)@=b?h!Q4vRn$UW)P+$OEn>(x%Ls!g1x$)h8oQ8@ie zm|2@()FPEB0h?c(bj*!bb~JZM?{D!qs%)lzD<En&x5(dRb{;R-&K_M5W7u|azhv81 zWiL4ck-m9bOw`^<-MxNsnZYfC^`WOt)=dl4WIH)!&+(;MbKW|1ZQnJC;YO>Xl=S4_ zoz`Izhh>iWH%O(wp1QZR_8h0zB#|{2Ywb<cO<5&BcP(>&zOzR!-;se=>g9!r85<n_ zTo9Toa7j1JP2E8`V$RLj{roEqt-rq2^P1{W*|}HPK6tBah<p}h&Lx>670|IP_Qq|U z3y0Wp8raS@$lUt1<BfXEQn`!&GJ96O+-APaaentNZENermHSy4Pi4!k4O*?xoA|Nc z?Iz1RYtJv-KR+(mymEhr{%vdF<ONSvKle{k+2v$&Zi&;HMV%oUzC3FKOmo>Lc>FG& zWzl*4lu>u=r=E`a9M@t6A3GQ=V6&fcl{aakSer)a*V(`NZ>+p$Ve?>b_Li{Y(l=F@ zC92+C{QIip#X-^fc|3lai778n%quEpw)%H(C2t?6@JeYm=k^ZwRbOWYskv+Vd~u(q zZ^&7<<@eP6@+l9toH}A;+_h&?-I1R5t5>`yys@-6FB{QZU?a_z&QfyLSW9$ju1kCN zJg>vWN)s9RcOKQ5dAq<tMK>@apD}X6AxHi^Gp72vM>1w;iv65WU~&1Rj*ON~L_x-u zTjo+e$<LMql^oyYvp6eHNII|K_>+e3b+bwiKM>k<U}=-ZIw>x#c@wvsk5yVO`24Wz zuRC7?BBvd@V;IK0wxD^NZokuYW=Y?R-+9+>)E0i$d}eWU%mu%&Ejg<Sa#vh9&-#J= z)S?ZSH|edt`Tn9E!{Ps489h_f^@Tk9H%6W6+P`CZ`?F)l<*#HouIx+p;R#S!$gsw@ z?3LcldVTg65uZQ2umAJr^fkGy*|U`R#GX%@FXwZ(S>fFDaL%u-KNVW<S+HJRcT_)P zfzd{>6LI@Jy_b3vn!NpRO@!|zf1H8uQx}h5jx7^z^=G<HoRnLl!N1S!$r{D<TeG{* ze3jbw#AEUEpq#0Of((K8=K7vDGCsI8<9lTErr8e_zjvuDUKWvbFw4_S=c20-$KvTK zYYnbn>JScDe8Va;vc$)Ka?8o(tN%PMoF_T$MuLBv-~A)gJvY5NdT!5!vkV6VH&ne~ zi?m|Mde`qGb5iD%oy&Pc#xNo8DRHwiui5b~5H(C#eN!}7M)&51%}3_M{mqQkm~~4p z;?V7tNslFW-Lcm=DP*wERI7BUissE9VNH4Qn?1Jc>*b2APtRxGynwsnR*UTP3i0`` zQx?f;@pk>I6gY49bJnB@OB7_=GOJ$86`t>&#BXxi{?;N#Ziy-W8y2)}{4#Z#-`)#( z2mkf4C>}dkXL2lOc8=G(ip>|k@M>tzK6tiaNj8It)|n%9t0tA`pL=}qq{kY|iIX{Z z@|=v@Hi@ruN8_dq%sTPkPi)UBsq=fvdvu*;SxfiIIWNDw(-#r_b2{RmuUhrtXZK5w zO4`5stoWVdp2GaTZHZYggFKgomWW=mI1ttNXji%Sr=9OMhb?jWE&lm$%v{woJxrSe zJHxuC&-(D|dqjZN%J)v&OdhY2N$p?td(qaEqsy9}Kl#xAd;jN_H)kLA-qgLMq1fzF z^~KMebBRz!Hvi6ulIbsu>}S5>QnZ>eV`js>-HR%woV`8s$&)R$r-QaDOPSqOQ8+(S zB6_y8`#JA<XIG_KEaH)S6tb$t;783}>#I=`A4?T7%xd2Vl%8f6Noje>_dtqkxwLGZ z-s04&&02nU<j(ueT9hUs(kOqT@uDbGr1M*z(oD^tHRm@R-J0=p`i<*1*9TAXTDI6{ zcH^9_MdueT+~@56y52d5<7?H{O>Z}a<@}wtglp#+#;n-fq*ao)rpNVf|Fd`QteR=t z7(`>WGa8S)7jSf5`}sh7qJT!_bcUQ+j|^YU_x$*FyNhw!lkB5P^}n2oFWk1e{pCc+ ztS7RzbKgyRAiQ&LZV|h*gtp%~9_F<fCO4%zTmAj7JEpw-EA=-0-^LkDdG01=f`z{{ zyW5*woi{1DCb=KX_&kT}hN{oIw5r81dI?RelRbS>%Om?TQ(Y7JrR-%K=bK4ykUjZl z!=4J|f_1ZgeNFmOvb}U^o(%s<zIQdZ)4is88*C7JGU>(>lk39$YO_=>eLB1>weHyO zofoe5s|t%9tGMar*QJ%$#+ealGWEW|SKF(v9j`brSttk{-V{6YWX?sg<xBaQ**zFk z75v=X)g{x9J1^Jg32ttf{5itxW^DJ2;AlbVjA-$RA7r{53lr5+vfEDXe9FOmRFe0A zs=_umZwa>7Yc1mJeKMQObVJirS~TlB6oeUcqlCZgo}^KpaJ}HeXR}@De{Fqq=GQbQ zwaRVFOnN1G)a6*<JWp%S;D&EcbRv#2y!@`^wMZfEl7gH0yPnC@toB|C`DTClTZVnW z#$}r8w_I%f8t}hG&->;vjX+l6%V|p=i|)FUy4C;J#?_ANMAt|}##ZmzA#S9W$TwwI zRp0Nn(94%j@4p=p<H-5?tbCJjWHj?_R`>l6G@s37Fp>%~z4!k|WR1WjUAJfAx7a0J zPKZft(w#c(cz|?P8hg0t`tC1l<b^J-K3V4ClMxepr}D4xq>8N(2d1iQaytBi{dj=X zq`lj+zFPl?kL;cIR-;;X8PC1wo*LhZX=^(TnG=tPB)F}-E4xf~Z|mPoKCM`Z3YP0f zd@eh2D@mQzo~5$dKJmqeYVZE4TWw57mgJ;3PI8*xmRKBG`f={m!oR5(=G|$!IxWr0 z*nN-UW|bS;y(WBcty{I_jd|XxgSwj^Wt22UCFnhx@$7=ag@9`h8@{owztLg$yW%qY zPL0b+sV-~h@ume#2;6Y9xi@RWQVzGRce`D^e7Tne+&^kJ-8OR33cqO2=}brCuAiC~ zD&_q#S|hMmzNlk;XMsrX0}<QelD|bJrh)<aUW<}E(&KhG=_TB6|H0N7`DK~eyKVY0 z;x&;qYLjetrtLUi=W*1x;CpA()A-FYpEB4qPj1*gWABkujX8<uoYJ+Y^Ira7biIx% z_Jc*{Bk|M5&yW9;nY=LN|KXpn+qX@&Nj6q|zeLElEIp;-L}n?&q?7C^D++e|8O#<g zfB*M_gx>!DAA{8zmLA?)y*}BFeb>7AQ;Ih17yYj46K2SEmU*#ifakURzKE%|ijM!M z$=2|=uD-iOb?xbhkK8G&ysx`A?aSVjZ&)mNO*%>Q!;V!QrZZnu{c^bEbnBV!YhQi- zr_HY%c-@5`c&M%4pwu(%$vqamTbT#G<nxGZocBXa`QP$+F9UXm%)0!VucC4Hw50Au z0>U@Ce;&Oz<4lNi{*x=B3!|ey{`W5HZg2^X>N$LLVVmn^4ntGF%3Um?yX7|aPSPt; z3D;$^t87!eDOktaxzwdyxht~tjM69ZuTrY@@0y?Tcj@&A-s3LGvX=<a@C<)xaN4=F zbylgn-s;<iC3ReG;w&ZSTXes?S?3;~(|O(S@{-jvtmpo^X?!#K>H}%Zilnx`EhcAr zbUzpipZ#HTr6q1rmy}hO8BcBI6`w4&tB-;hrZ+Dy`E_NLp>?l}s!9H_uKqwdBLkPh z2X5|(RcCkeykBW!A6MrTZ&USfb<tY^QwQg>c{AA@nqpkVxBvQTe)veYL7~Ovv{~<x z)O(ZF8_r0*c^`lDZ1np7Hr`9(A3gFf`26g(g;kaG=ATVv+aKRsceunk@0q}q-?5sr zEaq;qPwkj-UqMOfsE(i8W#gXW;I>stqE|Jv-)#x`Xn6k2Q_cN#49+3P(l!Zp&2SFC zBz#H!U=klg@CUBT9h)6~3QWz`<P4n?D;WKvt@oC==cOelRvtJeRe4&RPw&g=_21nd zmk6wT{6@u@)g`n@Y1L1$#~avp_1=5AQ1hFg`;xPE#UlHk88s&t9{sxN_se4+Mebfw zKKE==hrZ8C4QGYs_Lqh~o}^Y6C%^4D!P6_=rgZ1k%spz6mzbTK_D*r$-@9GSc}4h~ ziZ4%_TG-SxuDB?>zuWgMOu;GLBrZTDF({-WasPDR%Rm2m`fA5)6kKVt;R>_9*X*;3 zce@(3wy6bnnSBuu{hB2d{^wb5zhgyYmrS6PS#8|X{oR4DeH}lpHvM|@Rf^_e1C_w0 zjUwl&K4m<A{QcpohcmZbHMT$G)xIbou8}uk!R6lvWpieQ8vI@<y1`^t`!zYoYbrsL z%){PDbR7M$mBZkD!_75^we9~{`T6zN<%zu1e|`MrOToDR7w;!ny%n2vda3&)vk1`_ zeK&8hWu#nR{itjHoOuFMDm)hS9kC2LDr&p)nZ8`+sm1=0Z5i?Wh9>LWpS<{1&UPo| z>SC>hvzOa4s#ZR%I{#|6rs4##!v?Hd+g~s2nyGU+Lg<o8$w$j$QVG(A-{ZsB=5$(y zr7rllLXqc|Ca+_f+dIaf{u4KOZ)8mD@bLZW(X8UPr1a&?{>$q`3ZGu{X5IQtY2FNG z<#%g$bvkU_IQiWj;qW!wF=E<tR6V+8-v|-p?_miP&P}k*y_j=Oeq;Lty+te@w_Hvd zFMBBE{c*d~%gWNT>PhQ+Beg8k&inkAyw_ZR&eDTx&r-L4HoJb9-Tl?-nC4!*+Vk?G zjDY4BQ&%^uxaLT(gru7XoJ~8`AG-AWTF;mxldf#*2tTz?<>r$9`8vK*dnYcJem8B> z0+;OS5M556i^oH!&e~{y>C2k>2N@Ew;pXbRi#)q0rsN#)y76!q|K|H1VF`Tav(GRK zm0OvA;65Xf-gWoEpO}49c;{_8aqsmmSHT~rR@)!p*8iis?D9$dzRFMb5BVp}@KOJ9 zj{E+RtE<;1+|w1jo_a4){mkR8FNtbmE5zE>D(8AG%vdy2B|Ir7$aQ{C^t7MRd12<3 zAG$?7^e*tfxBOE-tNl>l!*q^^n*>DrPh80KoRcv7R(76gsD@l~@|3dZW(H5!2a(^i z)K@KS(tA;%vA+7`x~-fwrc;g_2=oxzlP9_Q)fJ;7iy2o5e~a0@xct<Ie7id?&m-O9 z&#CTPp0puyw^!}H_17~pt=WveTy9<Fk{6ibQg<%rywA^0<ENWGWNqaY*sOn`!i;O` z`&k)TzB02Oq+Q`vP1}$fzRhFJ^Y&%uGJ{#vzVEUxY45hGS;%Q-_egNvffX6dDNidk z>bM0>U-lGzv+P*%h$ofHxOW?8_nww#)kmc`*|#aZ%I5vdBP!Z9fi)`q<dRJR(_VYd ze(wIb=DW|O%Ddj3F~#dHKJ34=zi?NDiC9>W{e8hS4PT|#4TbM!D@<eeKG7&zdER7R z`@Ko(KFKdiwRo=kn}>&Tmv5}y@#Wu{v<b(H<a!<6JT&l_cVtJ*?2|sv&hALdymn0e z$L#%;V)4IU??3eM<3)uzHUA&We=97hY1#kp_5LH9@BjFJVcX@SU*8nD+{(Ax#=!LE z$Sk*8e;z+JP7FOck>k{huBkaaF5>Kck&Ii`x;900I(tv}`u!N|e(`{A?Jb-3_)Wic zp}eeXS4VH&#p^d7S@d!TyzjrZNzJz_!7ILV`?3`e)(ZYlW?kMZU4QYe;ey04##wjb zpNR=He+vqEJ<+ju%L!K2uSXnOr$mVb<)mIVw>$hl%fziIH=tzw8N=jRrSj}EwsdZ? zEEg7Vk2v{3<!;G__lJe&N_U4WzIA7bwyRI0u}!ZI`+|Ha+g~0U7pp}dFQ5D2%lq>S z=Rad$3ro|@Zi!OA>G7?n;<ez$ke?H}6b;UrE*4OTHQ%T4PMOR3<JyC<8y6Zlu-^3* z(%T}MW_RYHzTw1Ok%rGKjJ4MsNx03nMq{sx_BB(kME5(3&wlC6FmHb$p8Qv2)9*Kr z99q*n)Wn*TCKMW`r(Zg2710!FymIRzueb)2Wt(Mo?fN+7h;8#q#XaI4fwrXu915|s z^*9zU^m+O2-X=%?5Z!(E1SHnaPuR1sKmXs`?H~Tv{XAXq{cibvd7hu_3+iI8Km7Ie z^^a52_xI%2eU83yXHWabTRghS;Tj!L(w@w3RBH<^2cMeR*Cq5g?bu<VQ{w4@58Jz2 z-YuMJRm<*f`HP|Cd6TV9>POf4)*D=PZnI52H!(*@vp|%Og>Bwhk9DpW*LTLZnCFQ3 z%P-i*$YkZ>w~EDI^@{JGT}_v#zP>*<MwqkbqQRK}HjbFUH^)WUBd6TB74c`*64?O5 z)Ay&QCUJKt*sl>icJ8v@o#(c9@BPmWd{nu=J4p3f_qU5FE^kX^!q3iXIVrL)FIVYg z%G{Y-dAX1BR(8}qldOGv<;T>G#S^V|37-=B_+7H|byxDru&&2{?iZN7lI&j9CUnMj zBhQAdYDM)6PY4ygJl?Qm)#3QdJ-a4NK4Wsvsqq<8<}(RJ&aS-mK^rG*VU0ChzRc8h z>3lBn@FOplaEIruZaW)rcUeT@A=#JNueeuA&0lmeXXE*$H(0dmWna$D&;9(kUDIg4 zZ}Ih{LR+5yno=(OPM*6o3@e<LEu6=so*ppEQQcI~ZAYq$=d(kiGorq`Zki%Ey->@S zd5f;09H-g#cZo)GAMd_jEBJoTU%tAh;dQL@f8Tjt@bQuB<jueTwJ%o{+oo6k{@zj0 za{2c)&#iY9KWE#v?fZtUrUxsoERr?Nm~~Xb+|%StzvktaU8aH4TCzm)GZZa3BVNB< z`+t6wgHTjq$9Jy07Zb&V-e#P?z`k@|rOVvA(i3#r7g#hePLO)zuJfYy_#fjt|F{18 zwYq)s$!(8=x0QOxYq_s%@yYuiTv?VM>aKb5%Wj@d&n0ueo_s$+OL<$_F25H(@x2rD za##4=YOkyf;Z$_}&+_)<Qf-}CA<67q7F^~5UUsI-I-c*n+pghg&m57=zx>|5L%+LR zV;3&n)^@{pqQ%4$HNF)_SKNQiT<vY%nmsAYgym#Ha>hgB`+S|!GM6&sn3Wl94fRSG zdCqiieiFpu6|g(fU{UqMQeMF(tIaCLze_hw{=a{3e)d)!+rFNN>iOQG;iuP%$+gYN z+5uY&kkjl?ckx8swblQ&#j%R@2yn0@=}cfh=A^$VCGzTYt+}t`4Ed|qe@%6Jw*9t0 zbDG<Q75dB1-As@Dbh@XbN5hl<RENP-HofJQSJVD(YAm>U<w|Cw-dgXIJoo;H&raQ~ z$e$3E=KRoR#@@cWr)_HAWz3P6nk^}paA8Fh|Nfp|z3Cx0&u?a!<@Max<>>K(<t%PX zY@X<Snj-sHZgI5nV-fMV6q60>*0W4Ck=5c85uGEjU1P@-!>&gU?(N+&W$G;N8J~&- z`rIFUo3>-W_`G<#1lzeEo`2W>vAq75aox|;@sHf?e+hz5K()UAlkeTTcY2cZ|L^~( zEN)|K`_RAsmvG(Z+4mnTxBsiT@7FJFf%7|d{}-CSr}pUIyG^^TA62OIwd)?)AlP71 z5L8$GtT=>wU*f!t9@@gO=Nuwfy`vAV^~|ZNU)1^ZMq2mzSeu1qbCrGnC%bm=)*d^V z-{2zd?xN{7iFNJVwv*c?wNH9}A?(O8{X;d)*FE26-`;oEfAQZbR_)K-)>$Ts?%fyg zZi&<?HB*P%wm!_+=Qh5b&%HEy(y}ULi|@ad3Ob!XC$zF`%R^(0#cG?i=X|pIyv>vA zb8taOz#H}o%O%sc{8aC@NO6k)^J|0T$yb7RFTU#8CbRN}^f~=!OBdG8kbloG`vAi< zKf|86ny1#kI_$-q^-J*PCdcUYo32-8Zu!opvT%V+^y)Kd@12@Atek$V;*!Abi2WC? zBzQgT)Av(5&-P&B<P?)b6aP%eVLr3T+UUzU=B<o3XY*HX+h}glxbUV_PS~{Nd|wQu z)=SPyGjR1-d1_*dVe|EAY>(&kslD6#<mhG{@pG%bSM1$$b$z}4pVZLFMvuK7{Ih8} zs3_T_^>`}dN1MKRi5HBYInGzV$?(4WW_7M&K}5%F=?CBZcGN#Ty80cX{MVl8&;37K zy?&^_{!j9sH|h3=K`TxF9Jc?XT=${*f8XxiyZ@`tcHoS-F52IJ{>Rz;x@OQR+&}KV zuWQ%e_k(G5oMTPv?ceS-zxXP?pKS8Kr?X>!Y=MnX`(eu~Rhl2I&m{On{8N~zwlKm~ z#&m_}md&QszHhv)?A`w}@jkbhwZO8eyB~4gwVLtFYR3sKXYP9|-8N6nIr2fVSo*eU zh0cqIE4CZ%RLOTYS{fa*`<tn5<+I5%1P|SKm$^?=_HycjnVE|7yk=&lJM`O3H_hu) zo4Y{5h0V~f@7+dY0o`M(Y?T&#s$7|}s3+uknr@NX$>>zoy^Y-8eH*R%W^SIH77{jL zsgchSJ!Lrw=9xjB$37VDbDePG!mAa(!t=NM{j8RvXv4nFI_y%-)9+~u=6(G9)KObW zHD}wF-6gxW6$UM?bUjhxI=!bS<%i7lgh@)L*X+pJS0!^~=H<vKf1^3KcDn4oIw{~) z)RL&nf7kT~g>iB=hH<X;UF8~`6YKx$XV15$EzVnaU6>YQ{7A@sN#JZthSnlp-s;^u zE-<Y6{rdDB-dXBrY<6vaIrYV^qikDyd0+L}wU=9~aEiYD&R3;T{ht30qi>Z4%Yzq* zuOiJK@prjv&8^?bdc>=NyTInvr7HrjS2YUhsN2;1;qvdVKe(%|>wiW4q2J%%e_S2^ zmur6AFU`6ihvgqt-~U}*^Y7>Lir?RO`;O1%HnNC)^H0C)li+D58~gna9zJAze}Dh+ z{QBR~e;$eNKQKMMuJUAXUF$V=nLhas&(3z0&)0eW?ET#)^L+6;_XM|_A9?5@Gi^uY z(gdDa<u2ZnlO9be{F3J9)GG4sTb1>~nu%@ScW~NT$n=&v99zbrl679MAj0si+srB2 zrX{-7%`slp4(4YHDrURQW}3k9F=eF)cfsPRcYe<~?d?BR_p#R(!^_pWt^yi@rP;iu z_D;Pv4ZH`%Dl6Zv=)CxNsj#`#jKbTqwq~_Txe6U^ZeHlC6#cFBnBgYtyK0Ns)l7uD ztM^C6M&7@W$+AmbWYXH6#k~&MpKjLv(bA~S;WCrv-5D91p?8^S**AsCY1daS%KQCW zde)kGPfD^y+g@9*39(YxuxW1WX2%~sMkR?WCRV?#RydQ>#T_I$@#Tey95W^z_wi2o z)|jI`^HlmNKh0xbtGY|>3x!?!J>kLOkN>$Wcf6f&q%tJwlw6o`iwb9tlzYSz-XBL8 z4z?HzyJ^k5aC_(SN@a=SMbY-**P`Bjbvz^3;~{zdUte3E_Ddn#y0Zs)n$A9uKkzE; zw$+K0Ev60Ewi)}xPQ2<NTqwi3%`fy&(M<+RIep26zi(|Xh-sM3{Gs4;*YV@}AHIAM zjq}SdD6VK<zyF_<{m+yB1?AuEKio{8|8V{PU;7`v|MxEc<KFjw|E?3iQ&RZ<tH8dA zQ;MwiKDz(^ukF9D@&C>1{{O!Jn7{r9^S(cyylw34=1K4W%DLJu!E(=oe{VVS-*x)m zllgE`{m5<e=g;1soz1#^`}6FYefOU4-sIxC(?(FqPS3Ve`|w+t2k$4aFd1)J+W2&} zl4pVI!%1JF3ZuiEzRsC_;KM(g>F0N_u8j}WD?4^eQ!M+k(#{L4TO$S6%Sz6YH=858 zyP!EQ`p`*sSC_<3U)T2bEo0ToJZ>Sd|F611wa$sJCr)mP?=_gISktgf)`X?kdGoP? z`j*5xt@qP|qP#`#e{C%-OJV00*SxqxBYM6`l<01^^k05jhclfI3DjPhBk@Y7C1*yb z|DH_4+T#<pu{@Y&9@s3gHDc4j&0ZZ6dk+7R%0Js4RdP%-c=?XlN&e3Nzomswe$UIS zR4cKz`&~w|gt=_C%hAqPFOUB?apk^J?n-Ut5Lb?(%%}*RoL_8aW+4t&1Gn`Ca<kmH zwsq&*<7zV`%Oz%Cd->7mrN@P&WovTsE1ZQ-&A8k>^Qa_){9NZcz0hqgL6gH?xt=<e z*YA)btuOs+$)`12OR6sadArwbyXp&dzV<1PPkcGtoFCepnsZ^BSD<X{w@ovOzZd;0 zKh9iW!(?uL;I8h6A0>w_UuL(lt?iwDSz6|U*z3pKa{oVc*#G<3|KoZ6zxfOe=k0#; z-2eaY`$zNo&)a`|x$OV(+uP_n_wGF^ut?aM@;lcxdA`WM^`>2xZyUr<d@Hef`17aa z`Sa&1Dk=_KkFW2o|GoYG<M@A1>mUC8ZQp*Z;Ap0;V@1;!!Q+p)@7)vnUVdb@IrqIg z`W2tsp6`Em{?`88(GMz|b=c?C|BuZN*4h6(>G-@}o&TGvmsYlhgcKfHB$_+B?&Qnw z-b+_rHmY6R?Wt#!{$<hf)r-r6%RO%`n>cq~xH0p82ho)ml9rb4<%uyCS)9EoGs4T} zQTxQL%Oc{gG@a0#|Kr&4hbC=PPncb3<;+_6$oQ3%Xwj$HWkp9;yzC5`;u|qfY~HJ{ z?~H?@BrB`B(xa45to3Pn>T>*nCD+n(*Y!V_J*k*iZfJee=HT7pHEEe4dp8z1<;!-S z-Kyv6x6OBYuST@8$csHf#}hoJe7(GKqQQdIv6;oYr+u8m-Vt{5nC9Nd-mnraEuNCc z*CJL%-^evn<~l7<eD1Q5-`^>QafWY$Bu}Z%x*Hnxr{l!cj9bb<GiJM*m1sLVv7eq+ zB6n%3<M*VhcVD-C6cfFWEyH|SRn4R<TZ!9O_N>Y_N5^N$68G6tci9;-nN4xs(DO3R z`svy)ukycH#(wRKP7C3wOSm>+QP7*NstktXe;1^bWt19K)V!E^`1Xlp8}mkHLyMf* z2e%)3EBo<_#vOace*XiXg+F}x(lPzH`<^{|5%K*Dd4)E64i@e_{9AwDf%EnMiYFZT z`&atT{riva?k@lF<#Kt&?{C7Os^Z7${l9qL-`jim?c29~BLC6_4!^TM|G(qgqaC&P zOJfx|LG6SO51IG<c;vmO{=fW>A0PF9e0a!gSMx)vzrP=pcy_IeIJZ-~qPFtLD)t6_ z3mLy1dm{_Wz3<$g`||GZ-NlE?>)r3fPP5B<-*NkK(_`L(n1al@WV^(*5uWX$%NAzu zPh9o$q?_;A`Td^kTdvO${u+B=Uel6>FkREnWiv9q%wV}aV}ab}`?HnxJROCPL?+J` zkFZXD6S&yP^KHu!wO@J1dp3zY-eQ<5p8GAcYWJ<bw^qMY*i}7$U)#=$-78oR+lC#T z{Ip8*neJDcT;mM3n=!xFW=0w9nzHZvjCV)nxYu{fPySOpe~bAw71qnfwS6V8R(d`) z*qdqgH+;2fDc9NWez!L&?|Bj1a^+dFTE0V2@Pm*ATxajqCTab4{8gG0@z=5V7VG7Z zIS<6tb|&_;+a`Wr8EJ5^B+zHBf|A_gm(M4zIh|tCQWwVd<dBr={>yg)zn+%QY)n|3 zzSzdhD@tf)Na@6*-dBrnP1U@t<89>pf5X#QCe3Z-ifsm+3hN8}9J5!wunXMrukf42 z%>!XNmICL>3YAaFOktlHr*OMTDA}M-DqjD2r15$S5zTAeFX9BwE;|49mBik(uI+-y zw^(*nEsNPR^Pb(2q8$s8x(jybw9E7#IxDzix9Yt4jlb0&{j5Ct*;ucBZAE3}zCT|X z`Sn>U`&r8^bj*Kz_$XOl`J=&p|9^e~@0|wu_v@NKJ7IrZ+rF=Ld;a}LXJ>D>kmHY- z#?05Q`b4qs{@a{AJLBecK26Fz+;Hio)BSZ3*M;Na{XyyD@L~6wuUD^E{Qr0U$B&Q6 z&cE|~U%XuN@-X+c%fcP%GJOYTD;E@3U;A|TUe1eq-~JzY`*!Ke-Ku$gM?P+N@Qg#} zbfoi+yW98Jif@(h5_Fk6*E=bB!ozG$<^6ubiju((q`w4J%GUFUdaNi`F`heNs*m|| zvuX~udATYxCh?trd2PqV+2%nP&HMt}XKY-?YI<Pr;?Fgj2iI-y{C4$E_<|WeK89<` z3>CuWI8<xQJ?|Bw?-V@S{%DZLU!fq$HF0x}d2fu<G-}zsJ)+7j=EFQbdxhh%p)VPh zuV%_wdHfRBs>mrpOZH~I<6`_<P;$)g>fFqglftf;KC`Sk`Dk6vBp1WWUv`@;N~rs3 zkh#}2dGU^zgX>bgO<HH1W9FPN&2PfZ%R;)-<~_gnT<yKEX7-aki$51`3x1!P>bxQ* zvr)BMEOJ&#{)bi1lVr|aek$<%Oo(xTq7MJk%`wiGCIzP5NZX=%u!VoKa(ZW*)Yse# zS9mt&Gj8SP&zPdS)K%MW+9N6D9JjSUj)X0kBOE8YWZCBM&bs6W^K#8|8MuwrE>06V zXwa3FqB%X@AmCY_@`+7*lohtsu1n^0(77~Y1y7*=?4wr}-zd<D4qn=Ad!}i2^M|VH zjh#D%=f#WJ*fZ<vA3Dwb;S<lEJxuHM51d~8;nSyv%P$$13l~}mRz)hvI>;)@6-MM0 z#Pmf>Q?~o}l-aKC&x9@Ir#HPR`RFG3K1^v(8xNmIVQl!C*Ik!iZkZi9*+=}_mVHUF z@f%*TUeZ1w`b1ldtNn1-<EP*4?+KWjKR@>V8QYG%kp<Po`{cHp-<f@AwsPSf+uM6( z#2)Psh-paeo*H$btuecKk!k$?jwwwkn=bA6a^=k8T~2)~69ksdTPCn;6=Tn`t>2V3 zg{K_7sgo%yeScGgsdtK8_QazucjR+pwd7{ajxakSVfC|U)~%|m?(hGKtXGe=vf_G? z&UH@W?TqcxH#fvyo!m3cYIn5r(#uwkMQl5s<c1t-7guAkh+cBxuYOeU>g<qpyZ=o6 zek|AdLb~IUobwZcy{_A|I=7yU6qtW`N2}N8s`c}ye+zlCzTaqJZ&bIhw)EQcYo5F< zHSRVYoehg(t+Nlmy<Gg}W#~rB*()6?To*0AwMljMES9F0!!s7!W!;KP4Ozw~HTAgn z{?qgR+TJ|uACS~B-^ZkK`sBA>@##h(vop^HndzK5CzU>5%R4vS<z&0xdLFiOGrdK1 zeb^ayE9=(E6(+UnPfgv}^Wp2+UpIO=-p$$P9h`pDBx0fS%C$31CTW;1*Zh)I?Y7u# z);2E@&Ae>6{v4b3MU2|bfsZ3J<@Wi@&ENVrKk}UA*5_&;dKlK7mON;+?$Ae%IeDG8 z!ykU(+OtP!{dBbtUqh#>O{l09jf-!*E?iJ08t1>>V(-33TkK+W(i)zJM#OWz=xAkU zc-}U_f<e1cJWeW5D$~KoXrED+vSWn4{`?J(dR{rM7l?D5cW&7k?!sz||L=}JZmW89 z=Z9?L<Byka#MTJq_dQSh@a);6*X2i8-&#lSk?EVx_U+Ne9j3J<#%`%vzTvG8*X(L8 zVc5lKm~Eo@V}60)o0pGdeoWrjCR1Q<Xq+j0rtO|n$@%>cE?;~)t^DWiH_|P)yk~v$ zD~mXs)M9awG1o+NRUUKr`poL|<=11UNnhUnHS)wdl}pdxb<Dq@R9rQ|$oNRw?A$B+ zXI0-m>8rH($cldNw)0yTb{~3iuVSCzhuN3I)^Q6u?oyCCcyj)xNB49jPxnsQduwz0 z%+D?U%4>=rTl?e`UtW=L_TcG-6DMqxVdHJ*DdQ^NuI;!p>={Rfi-~v3nq5nmu*jUv z?KL@hOwUEP`0VNRmf6Z%E91ANG0*82sjjQYQJHXq{l1raMQHjwmDy@Or}vt#ubu9Y ze~q`w^(Eu#&@ds-j=g*Vb|2ENlud5h(c*qiisehmoor{Z$gijL`~$k>Hf+6_Sn=P& ztW3*kM%^q+$rd%U{8@{4#70#7-1nlxEy(4|r`c=n><oII!m;Mqr;~*)DjOFTOi6hv zIPYxsqqD!h=^fv>CF*p-uO-FJB~hJUMJr+(cVCwLYCX5%`sJJUAHIIQ^kpy8^2^`; zKmT85m6^}rul{HYQ<Q(i_3NL_-fGP`xU2X}SCYfF-rJgvI(uSHe_ML`r<9KPkDqCl z<|*x|-u96N7IQM+A9j-AJMhs#$Nj;xf}hXV{<LOj-z#WiUUhu29<O}igQY)jue;v& z>*S&ti*lX%M3Ta8$KU+@wx{~_F|pQX6Hd;!yhc;!TH)LiK1RxyIoFnkUOJhy`jDDb zf7^7<>!$P9a&Tx&sh+lTrOZ*a7f!u(m#02h6W1xGxgoN8hHr;qW?4dq?}Dnwjbcas z6n2NWa=ADMM=t6-B`I}%kF%mn)&srvGs`|E^DUNLspmM|%Ph)ty7Y~+zH`IN!*x=Z zZroS!vLWb5M0-QZZQ)I?qL-ft2-TeWEPu}}BQHxc!NyG?xn?aDVH+IR{+*C>siQWk zVErV{&378Ert<36C%TIpFaOQ*Rx+1Sk#E7H9EsD+hw^@g++h7$r!|`|fA!@ppCl&C zRoq(?p>gj(-hNY_?}dpfeESr&t!?XFCNDhKDAsoNcUBW$h_gaSB%5*Toc;dpS2kTQ zV82zect)pQnyQ*Vt4e6jq@_l?gRah6clhPoLsz^4XOtYgx%istDc?s|=c%OVwS19F zaMZEOtExXUCF06rjn^)JDwA`~G}z7cOaxj>ZD)&ROZwh)a^x<IIp2Gy%6pDqQ`j5d zd%H}V)syZ@?JqTHifX*P^k%fb_<zT_`{#!x?!6Q9@=xvOgQ}<Ndh9kHd{A|8-^1Mn zmgcF`kL5&ekv5XoJ9}@FX`{GE!RObvr4KU~?D_L~+u7=fbM^Zrvzl$RGfzBZb>F<d z+il&&)5a_}UvXJYKU7zCqIQw}G;_PGM<-2|_pbE3<R-WA^*YCbsMinoKUvzga;|CA zuf_2Kg)vu_*`|HT)^A$6vSZ7$8(#BLH@^!H+uU>Oolnn-&e^?TDsFEB1m3+YF^+KT z4!yYQV$KZKUh96dKen~6XRB?yf52q5?z;9sHA8g|t@QzK^ti6GG=|<v^Zl|fL@HtF ztre3@r5^rndgMPz{10Q`h51TZ%ewygKHRWgMC-4y>Id`J+tLn%iqALS#<S*P(1)&G z)1$d<IrXZq?6lXWeRWy3CiIW2)*Y`We;$X02W~T9){+s*n`EL`8N0dgvcvYOm{{qQ z)4ZIF>CJ0*+4h>crd(^>e6ik`HD%Eqwlqn<Z+&YFr>?xF>OXJG#7PG<{ciT2+VW=E ziMK9^6DKtKoqf-fxZmq9Ut~)7Qki?<rsrR1+@1Bo>Y9S{!@|_gl7*FbmGq)+Syq-5 zCNXI}(%Mq|y03AC@4=h=$5S2k0#E;x-xBxl_Ok8P^Y;JDe7dtS`uy3)RZL-X|Ho;6 zsJgWD<ZYkj`o8y<{)`THeBJalDB)VeH&02I=A-TJdKKFHGIyG+J8d-UP%(2w-lu7Y zGer2Si_7z#^|8-O{-o!7@85Hc0?YJYMfqlt@2n4V&zi)3XyLqhnonOYQ}>T3DY(q+ zKeu37_?5<mrXTk>KjQjSdbIa^Vz=KT_Lht)Uyp@rKV;;+Pivia^7p2wsaIMaxS5G7 zpL`G(#MR-IENPy(s(bt5qHxuVvkp%15G?WDX~vsV@%i-Wn=1?o_wAnl<j^d24!*TF zkLm6Bcj_W{Syi&JbC_Gav90{YwfDBKH3@Ta{JyEPxFUXvskd&8sC4%ZQ6J~dTXIG+ z9}c8Q%eZPE&3D);Y_}**XqJ$VNM`o-oKqf4x$+jzD!gMhZ<>R!RgYBU`9+OB9FbF> z`@V|P-Xk3%cTrlj`bvrWt&4)^0=`zfl~X+2DmYhko!bJ%$I+6EclVla*4)&jXa4i) z);zt){hFH_l~xO!+sV7kCReTAgY8xM7lT<R%%{9wZEoSYIBR*s%+u-B(=B+??#4g1 z4_iBX*0FxsueWQb-IduFb<|~nO`h-Si);I(&#!sU*X`BAk+8~nwsb{H`qcHjZ@>6H zFRuFVW_scUFNO#{E)(6tJ2I=xMf@8N#WsFzdbaj;QJ$3ljs-QhujkL+JKcUe*XyT0 zBb=XH$qCjuy0$>(#GQ+0d@ol#>zJ;~{PU7Z(ZfC-J(UUz_pQ3#8A|&9<#w4&aWt5( zw!u|HCvEY=1*;fr{C;XCdF@@Kb8+db700@IVy*ME8rC}|tDKq8Tem!UYJ|(a!;JL? zO@ZIT=e(aB)5dpAMSjcMwl}QPcdgp;S+a1}ftyQ03>J9p?eq@!NITbhuy3(Jz_kTS z+WN%4Uo*NY8Cjrjc~*uyG$V9l&&kVa*QYy}^Cm@2=@2OpF1Rq|nB3N&t&2bWOuM7+ zZ`|1%{KmDZ`;f{4*3bX}sn@F{-+mGns$JfdKW{GMA{|AS*(<M0^{PsLS+Vn`Vs3{` zQ{{S-=o+r~Omo)-i>}>1z3=ml?G69l-d>)%B4n|AZcJTFMqrhr>A!$1d9z~@wq`>7 zQmpza-K(rh3>H3GRLCRvcdNxd!RQqs(#s?B6DN4iKCp(@H)#o1rQIG@NsWBL%Nxzl zcIYjipg7+(Iq}7;HS*qN+FH9#vhau`hZk3Fn0`T4;_||`YdyA{<4SjnN%>Z?<<ORh zzgj{Y1FHKur|I6dPu<h}+(f0a|JU{@wLA%DUG9`NKeyjt>SN_x@qE6-tV0h^x69s* z-rk&lcD8<0FW-%aKbLMX=ayJ-iktOxA@|AR;%yHuF?{;-_4L!v`Lo=MIA1(mFtL2f z#m&t6yAIF&)iEz}%Y>q%H?0nTWnS#ukr3ov`O529POWU(k(JBVp6t=d3)HooI^k=d z;kPwML@sum-ykTv-C*%v?nr(kmfUPXNB^FEDPqfW1Psq>zc^F;T03NO&*IQEX-==s ztzY}VURP1*T-<rTvl_{M1+&@QzDjO1`YSQlDYTRC_FC~IkvYw)4a@p>Sj{>kw$#LV zRlxV{+gT^f3@feKpOG(Uqjq({8=g<I7d=k44%nSK`HIW3$iq`F1hI#)o)$HWWO!RF z?5V9M*?eWj74-<^U(COb&3suVU9)E4gFC-YJ>D_ldJpf@yDu!Z@pT)|xG!FpqIZph z({RoS>CMuI-#trsX`ve0zH#H4qII%gKR2FF-_r0Ywf^j}tklouszSbZT&`SmxOi79 zH7#k~g6F(CLa%=>x*++nt78_g`&Lo@uImbdzbAfj-~NJ4`BqMyEuZIh=MY&gok@yI zo=muR>)ZG4-RletqDA`l%4zaQpAqAkSG?%%Rom)&Z?wN05iL3K>UY}{orCil(z~X& zpB9(X^OZL$+Q=PInJG4T=~0c6pli!2qK{aZ7G=w|i6yqL)&FM3bNS1r9yX?!bG9n% zI{S9m&vc)cWy7$^q#;Du^vl#PwLLxSUgikdPboFzd>g!b;q}aa>u!6NpO`8wxS-u( zR?KA?*{4_1b*}_APpYk4{37!0viCQNQmwWew_ac~Rkb%(?O5m>&!Wc*7yW&05HR(z zJMUEcz}Q7^BHbqkSccBNeQ8m9;jGl@vOK|&CDmffn(x?)O17MoklriJtD<sR@Yu50 zXPO<3t5^FR{mheXF=^?cV<u78_Cz>Z)*j;GX?eb>s=M{m*^>v3`o%sEns9RSf?G)< zPZZqZ4YPL_b@gYta9d7aJ+mPq<66d)`^)`YmVRhdvb}avzUKAy^2iteGN<|O&E2QY zZ!=@Bcb9ng?N5r6WaTyp<fev%oe-Ls%j`1A@7Vjd8&lq>MmcSh?UMCbbMa(${xl{X z<pOVmjm?w)uo)~oH$z8cXY{Kl+G<CSTP&G2rEa6-f+Hf5-+k}+ZQOp-yyjx+JBdki zzWxfByzR=>!pD!4ciqf-CB48+qPyneyw@7n|DBXs6Z~aqGKaEhOX4QgP1C1#8>ZO# zc;0{XD}<r_u;j(tQjM(_nH0O{Z8hcYGMOsR=Pl6bckQ4dkMHG&I}7w(dOoCIXqvF~ zrb3{PMa--X{uk38?72IA<I!o7=51Prz1KQ>+iMg8?Vpy--=4xHJ?-4FJeAsWY@f2* zp0+TGNjW}El~GDKFV4N<_O(A7;<tF*K6_L=xPVW;wQBXng7VohMU^hKovYWD$9cXq z`xnE0&1+Z7%Zfd@2j9La?@(E!wRW0VLCE8&za%ykS{-FR-!9#HrEhKDiM6UqS5Bo# zB(%@3lInfUvbjCJn~9BA-PUeF&Yf#hS~oTvZu5GtqwwnQTk+inQwxrGaJ3$sn2_x` zWt-c}FVi0uacX>9;I20J@jU^}pxJR;Ay0%nuittUbgG9faFXUNo2)e9UlxB{(oB!n zZoKo@Ltd+KN8J9TMXqHxp0cc3w7Jbhvpw6{Q(APw*I8wD8Y0gZsV>u3Il1lU<}y>s zhqoQ3OuG`YMls7<BE?swYS&e-z0d#enkOoI!&O}7dUN81t7W|*TQBaua%kJK*k#Je z1}3$ii@lt;9Zu|4R(}-MyFFpY33n@h2j!(VS}Mh3`Cm_2wea_;_O@4n$5)jko%tMc z@7&qRX+M+O7#IZ3dAc};R5-kU)OM29HF{a>$0NdPjOFfrO}RDOL40Pv+T3cp{49YR zoXcLnSi>N_WX+c;cW*S<YTXpOdhXhsQ_8CvorKHdzH^!6G_!A-#a5DVdTULrSW3>V z$!5F(y<Lmiy;Xegn;clXv+w?bU&+rapBdGjG5HWYMJ>75ST-qCB#oW_wB(0#2CrD( z1};>yH$LWiY+3Slsf{Uu`~lNXJ<B|kIrUG3dQy|4OJ2=|9m_H<q;e$e4!Qh)UA0h9 z#+34vuGd4fz4gtMBNn;6TakO<3Li_Mw(0ROOVdpAOEo9%yi{CYl;z^1^(yabkEqVs zc*%)ZE~Xg$((*ESRpj-lo5kx>>BXm-*G*bKx14-q5ic!obn4=%ISh}_dTx^F=8%=1 zn-;ye{c8Az#aoxj8oZzNOg4S@uV-g=*F4m0ar&aj^ibAkSET8buwcujtGM0b6jB+J zs*Y*=J5dq0ohR)2=gyZV-M$6t8D7<Lt?_G5zug;gN=89q<;`aq#*d%ZUf8hfdenxM z)<<7$-Z0~7p~TOS1wUHsCVXz0n%j8fbKV;!foXHo-&pT%n{mteVkPH+xEaz%a#x$_ zM!c!d{QoQQxzPXF$HLyRP1m~-xbW$Lk6#}qrf%5t@xtpb3Km^KpHgHvWYuOEFZNgb z!I&%OnEFKe7MEZ2-X48M<IOw|r8eAu&-Y}_VT<KWC+tFv7ezj{I&2p8ncMsFkt59A zZGSGA80JJVCZ;*9=y-HARc2vEOvs0@N3%Z1%Z9HC_1m*Rb)SZY$CEuvUnw}Hnq<{y zPT=1ZtF8HrS^VN_!{>+IU4F5z^F)qu(~B+k8C@GIR>UwgU&#-+_)qfBFQfE4Kkiaz z@kyQ6ynP){-R%hsyfv5QQ~HUsPs7AjBA%{zfAvDf!AY}tK7>CzT;9o1ob>&j?o$qN zHx+?W-2y({V-rhkrP_^oYqQp7D9w_}l4h=&bZn_x($O~;r<n9#RbC#+I^}=eK32JX z^F32<O_;k)w!=eq^B=G1yXU<{Z@#QkIyv)7`!W}|`d6nn8&3YIk?}}*_rkgtT!opl zcqVLoXOttseYq%l-uE}}*IRLzSn;{`JG3qjIH-NuC?qT0U3kLLu!*(iZsw};zudNZ z2A&OCD3!3`t6GYbo$_(f{bia;Rc0|_cb9dzD#yi(oA&O=v0mo4|Kzg60xCfVkE!}g zENRWp7kOi}CS=;__#4t&PjA1+Gxu?&d&^P&cWM_5#S7;2%UUfylf1gpbMMN_0ySET zHk$mO^)4Ym=9T)fqi1+sKIUk(C+2nS3i~_zYv>uKYbL=PWEhN%U&fra^yGNp!n{0| zWB2PCqdl|Z4;obN{(kjKrT@H?BE_pMtG*uFl+TfQrQF(NrTpTKgyi5iNjZ$I6F2ej zN=><xcC2w>)sI>C?9IIzqk{5{w^&D>yz}>L!Oj!WnNj!Ge$}1);Xv=IK+pNI-A^>b zW^a@YRBvxN@K~gKqlqt<kl5TS_UBjS2US+7tbQ!<y=b|#x!SV3aT7ByE0rEUW~`Wg zM(jwtWqrx=dFEObN}-*tYY%U`G-0oFvof!(<tgnW^=z@$$;!&#+G~xcO)}L~yQ;Fu z!!hIM#&x=SZya;FBxXOnwda_i$|~PQBCFl9vR+MUaAS;kbTM;5n|$uJJIl76(B@a( z&9>oM(S1L^V!2fl|E#;Ozqrg#ZIwf?nXvSG)yZnL*)x`&Qaa()p<j7?0^8Pz+!wMd zWT$tp@4j@~LBCDmV$AC|6&tVc*0SyGTI_REXhGVsUv08N|Cb5;IHQnOVpsh>%GtxT zX<we!s_;EGEALuMHVIU&j+Erpip%7g#^0-%-lUTAIB(C(!Y^L~Cp}#Fd0AiG>wwtL zN~!mG<xe@!S;y%<@nTQd-^-?2*FsjBssAhuN@I;$r4W;Lt@-`zS(}7n&dp?SX!U)* zujYW|n)PkZ^fcLL3GAv2x#V(N-TBOC!$Uo*HhZVd*v3`)!sA~_@m{BzpoQy9<)nKy z7T)4aj+aP$R(r*?<?i|o-_KX-vbnLk)=tP?^x{PCUT3buPK%y|_-*CUn)%QBZov(n z*pxhplGHV)o?o>%CHeBi>4(c2{+PyY{(I}DPKI-(tJ%&~o7@il{k5t-k@wxETMw?g z>U6a#txs?>{Jy3<oc+>y-j*pWDOV)-6@=E;_4NnOkU9K0wXX7|@3uVS%N^nZE{{9p zJM#TzDX2X=aw=}a)W(l&zDLvC-vr*viCo}hx$KurgNXjUiI(T2*M6OQbGm(U%z_z@ z9w*4nGHl<TbJl3_&V4_YmaRR!k>Au}ZqDj^KA&qB=z6A{xvsH;y&$PGWczMC-epp3 zdRt_@O+?f-N$;v&l6q=6^Ojl3mT@bR9Bv-C61O61-!cj9rI`+T<{c%`Q~h{UluK@1 zbT(XM<F#zbsV$XPE^hRS=X#qlbKg~Yvqf^VV%Xvy{xd#yUi(tVEvXGIr&iCkR2G|{ z{v><VPJ<<;fiW2?W7~St7QJ2j=+A!r%V&IpJ1Y+Fy#8^=!8+HX^KR)UEv=+ZCtTsa z7!cm3W*PW&8&?yXc+uzQuX8_z$ynAfmp@tdDyED-LNnXp<gt+1C%X+~<Ejrw@vhmu z&)`SGo9#Zc!#a1)D`<*8ku>*4pE7UqvJRyqzE8AHpP0DDi&HA~M4HPi=f&&SJxsp* zpHEj$N_w8`%iBKjt&^TT4#>I`q&A!P=FbW3SLaH(e{tB%%BXrU?A~i7_RUAMey+?{ zy!`vo@5uC-jakzQ_uXg|3vbRVyZt+?{QHa}6>J-pnaphS@eLA)5Ik^WBA=U&Xh@&4 zPA*T_J5HmZx!)&BE38>EA=PE(x9T!Y_uJD~Tom4PBI?A=o#$Ivv<zyEI72JHD_ck` zRniL&`1W|N_rysr>e-Ji+M>?veb;bpkn)u7)Vk}F=lz)NAn<H4ufy&*voe(_4~~72 zdnfO+GWM&4i22suIY;`wX+}?+a^mp>z5qL$*X!^2iRym2`9k4}Ia7%)Tk#)ZSuS&l zS##|cYwqLWxa1*ccq-bl{Gy5bE%96)-ACq$4ki-G>sn{7uD@|X?Ci=*-%C@ENuQ6% zYY&o{A-H13EY8gjmX!2`{EK-Sw{NrI!<L%Kilq|_y7Qzb?^Iji9`kd7@5?tUPw_^F zFL!wPbus7PMR%2@iVo+jKe&R|WVYb^!b`upbky{IeUs!<?|XF4C{Xf{9KV{+k2RZ` z@4N6$W1M+1#OA2`Tee)?Z+9-;P8K|Dl%ss<jsx#rGt+L3Q?@#(>Lxk7UVBcmxcraX z5_+YghE@F1Hj7Or^3|&*M##^ewD@(?l$EZJGg7v--95y~vT)+<x4k9xA2zd^lvywS zuvv&pO)aEg{ST8b_kFBH?^(O;R=jC#KJnHQxA{*iyw7fq`ElVyjnt9AwjlSNA>s-f zy!VGZK6~tIz+?WKDy!eTpWpNL?e_HK)05YfJ_(XiJ7u#}ah9^nq|GN)ZO_&F*)XiN z^xwL$#`5rm(~n*Tu6?-Wx4YSq{L0E{5)%5_F@lr6G&`<Z+V-u?mHBdog|W+}lpB*c z-<`Rr<MP@&#j<pcir||c6D7~QpWU~%`XAfjc)17PUK^E||M)q<(kC^m?;!`r2h%{; zuhL5eE`HOgODp=(SLjiAav4W|=J(mMCs%8)=G<rJ;=KBXOp1<5(Yci=i;m9?Ouo=& z`6TJdPES#_38qC%M?Opq@xEWywYR4(D#kB!Uh3AJ-|gS5P+Q{Gn%dU)JLhR=;I-<B z&6jRV8%H`FO4)bkV&L+Ziyv-2J7w<Nghk!UO`ab)e@R)(l<&$G^;75WsJK~wje43i zMed;Tvx=P|vvm4$&l~V5d9VDqG9}~D?rX=k?0?mEYs;0xak?i?z2kYk%x1xnu+ZF& zVzFx*wCo$)^rpSoed7J;73F7})x4j`Nzc;OUA)Vt?L=-)?XBlKDxK?ZZLr?*!X)p^ zvDDBfb7J$%tW$2R$-cFE-keEgA~9X(vkxcz*gf4YeoJ$p+l5GF!=(@Uq`vc<*x-BS z%7pJN|9`kDHKl*lb6|Eox=)4C|Neu(IT2i|`MW#=Ph3l#`)zunVAh=LZ}^rN%qV`4 zXS`tPOmojgP5n;h-*kU7uBtoWW*M>h(~9F|Z;tYRZz){7Zl;jz&ID<rIrbU1W-Oic zbLQ^%^Plfgv#x#i(VbIr?uQqZOOJoCaelL=q44*&0+TZ-nnj`0mt48g!dB~SsN1IY zeagWiMP0#^IgXpnmrU4qWBDe&jCG>H;U0;mJ7c$ngeX@|wreqZa^5snxW)KVi^uFp z*;~hCKCJzg^5U!ISJrHM@BWRKn2s%uu$r@!X;MGe%-AM9=kxnsT+Cayv8yrTaNzgT z7iY~oz!b8@>_PKdmNRP`az5*QH7v?L@GT(SpddN2z2)H=u5U)C{^d!tuD!v$;z|Hl zX70kx<ujkwDtS2uJmo2J3_g`|_TDV%()rADe2+O)>Q7s7&+pS=rJ@zzA`30kCSRD6 zc0%CS*@p|;WH<3u7KLozo_CU0<@lyx%j-8d%r_WER`)JpRGfA}fZtU9+8vP@i3W=| zN;^$kyrM8VLpS=yipe2UvX;sjmT0{TT)AN8ndlQ-I=3p;Nt7PgG(S7jPpk6F#Hqnd z)@3brsRiYS6#HLgABYY6y=BLl(3wu<Yc~W=`a09Yban8VlG(Q!)utUwIIcJGSYd$c z-OqQ<<UDLM_*kVMqdko$G5g%1S|bh<Ra-@W(d<nxn?m$+yU()E?RNKeKJw_0j83*Q zd%3N|Ro_iK(k{LH;STR5GR=B9eafsfpXGe__xur?CG;$#%_qHK#q03u{?z00>KWo{ zN0(Pweq(P_j(N)Jyxl}m<Z!|_ewVh7Qv>hMnq>S=P+E4ed6Cxq6M5xv?_Qpn^Lc*a z{WlE0k%5X9lMb-HSoz^tg4aupjRMxEgKwFhEPS=Rr-=9X>?;A!%~o#8YCEwiFi7~p zk}o|s10MX`a#nb@Zbitw^>?=m%*}M)G5OWJ8-o5jv;TJp1um<|z3d>xx5sy~%C_^# zrAC35R2;9)K2!VWQq`fQ+3(w@?40As`t#K6_gq#kl7DCLv0gZ_NNdM}nbF5prX-#B zi@(rps?IF&f>kzd50j<@6aNi2zb9ew!a@7JHf>24OTQ_|`)0z#zN{zgo8HxDAG_!s zHG{o-(s!TJ%3i)#EFPEf*!)ad`QpLMCq|MlLMop--<f^<8mI8C9j6z+H#wx^+|U%G z$o@jB#i*y)s&8qJ@SI8wcgf(h%^Tgy>g6-de1sKTe?|t{eOdkI&7}wWv!buvxawAY z;)1D!-><FnY;>yEY^^-g+T>^UYlr>9iB_90$SQRHb3fW?bj16jk;GBW&;w6u@~=s! zmfG$232d8bw?KS@n~k;m%VR|j3&T3JXUtgU5jTDH4(WP-vo6-#x*C^*_CJ>R_3Y;a zC9x{QTfrOdKHzIr3*fST{61nzgxSQ;3!W9&oZYin*+u#^@0Lm~-q<sT_C3oMnAN{b z{r*Hrt?hdS-zIT*g&)}v5fu1B-{GRtQr$_HuJp~FU2s38cRyQEyz<wArJjk_pPo!z z)c29&`-QXRmOhg_ucu$IiIM!q)YhJvb8yNVk0%YxzZ|w!aTs{GX>_mZW}R@NgIA{J zzS-fca!cp2U%9<AVfh;oX{k2d>j_o<S0C$Ev!04$emCo*=QrQXHWAIdMYqyT&QB6a z74$oLVvq1!S)KHhoeRZN)@HwnyrMYk%J)w9(;xPme%TwX=gq2WlE)(=G*j?p;XE^w z@+FKp$rU=UbSevst}Xj8+ippL-8_xJMV4%)pEhbSa&6>|mHN_<>aenInosnOFRcbU wQh8SM7n}@vC;GGJt41Qz-MI2T_rLZZTFnxb;v#Gq7#J8lUHx3vIVCg!0BhBnng9R* literal 0 HcmV?d00001 diff --git a/markdown/Automate-your-music-collection.md b/markdown/Automate-your-music-collection.md new file mode 100644 index 0000000..591e0ad --- /dev/null +++ b/markdown/Automate-your-music-collection.md @@ -0,0 +1,957 @@ +[//]: # (title: Automate your music collection) +[//]: # (description: Use Platypush to manage your music activity, discovery playlists and be on top of new releases.) +[//]: # (image: /img/music-automation.png) +[//]: # (author: Fabio Manganiello <fabio@platypush.tech>) +[//]: # (published: 2022-09-18) + +I have been an enthusiastic user of mpd and mopidy for nearly two decades. I +have already [written an +article](https://blog.platypush.tech/article/Build-your-open-source-multi-room-and-multi-provider-sound-server-with-Platypush-Mopidy-and-Snapcast) +on how to leverage mopidy (with its tons of integrations, including Spotify, +Tidal, YouTube, Bandcamp, Plex, TuneIn, SoundCloud etc.), Snapcast (with its +multi-room listening experience out of the box) and Platypush (with its +automation hooks that allow you to easily create if-this-then-that rules for +your music events) to take your listening experience to the next level, while +using open protocols and easily extensible open-source software. + +There is a feature that I haven't yet covered in my previous articles, and +that's the automation of your music collection. + +Spotify, Tidal and other music streaming services offer you features such as a +_Discovery Weekly_ or _Release Radar_ playlists, respectively filled with +tracks that you may like, or newly released tracks that you may be interested +in. + +The problem is that these services come with heavy trade-offs: + +1. Their algorithms are closed. You don't know how Spotify figures out which + songs should be picked in your smart playlists. In the past months, Spotify + would often suggest me tracks from the same artists that I had already + listened to or skipped in the past, and there's no easy way to tell the + algorithm "hey, actually I'd like you to suggest me more this kind of music - + or maybe calculate suggestions only based on the music I've listened to in + this time range". + +2. Those features are tightly coupled with the service you use. If you cancel + your Spotify subscription, you lose those smart features as well. + Companies like Spotify use such features as a lock-in mechanism - + "you can check out any time you like, but if you do then nobody else will + provide you with our clever suggestions". + +After migrating from Spotify to Tidal in the past couple of months (TL;DR: +Spotify f*cked up their developer experience multiple times over the past +decade, and their killing of libspotify without providing any alternatives was +the last nail in the coffin for me) I felt like missing their smart mixes, +discovery and new releases playlists - and, on the other hand, Tidal took a +while to learn my listening habits, and even when it did it often generated +smart playlists that were an inch below Spotify's. I asked myself why on earth +my music discovery experience should be so tightly coupled to one single cloud +service. And I decided that the time had come for me to automatically generate +my service-agnostic music suggestions: it's not rocket science anymore, there's +plenty of services that you can piggyback on to get artist or tracks similar to +some music given as input, and there's just no excuses to feel locked in by +Spotify, Google, Tidal or some other cloud music provider. + +In this article we'll cover how to: + +1. Use Platypush to automatically keep track of the music you listen to from + any of your devices; +2. Calculate the suggested tracks that may be similar to the music you've + recently listen to by using the Last.FM API; +3. Generate a _Discover Weekly_ playlist similar to Spotify's without relying + on Spotify; +4. Get the newly released albums and single by subscribing to an RSS feed; +5. Generate a weekly playlist with the new releases by filtering those from + artists that you've listened to at least once. + +## Ingredients + +We will use Platypush to handle the following features: + +1. Store our listening history to a local database, or synchronize it with a + scrobbling service like [last.fm](https://last.fm). +2. Periodically inspect our newly listened tracks, and use the last.fm API to + retrieve similar tracks. +3. Generate a discover weekly playlist based on a simple score that ranks + suggestions by match score against the tracks listened on a certain period + of time, and increases the weight of suggestions that occur multiple times. +4. Monitor new releases from the newalbumreleases.net RSS feed, and create a + weekly _Release Radar_ playlist containing the items from artists that we + have listened to at least once. + +This tutorial will require: + +1. A database to store your listening history and suggestions. The database + initialization script has been tested against Postgres, but it should be + easy to adapt it to MySQL or SQLite with some minimal modifications. +2. A machine (it can be a RaspberryPi, a home server, a VPS, an unused tablet + etc.) to run the Platypush automation. +3. A Spotify or Tidal account. The reported examples will generate the + playlists on a Tidal account by using the `music.tidal` Platypush plugin, + but it should be straightforward to adapt them to Spotify by using the + `music.spotify` plugin, or even to YouTube by using the YouTube API, or even + to local M3U playlists. + +## Setting up the software + +Start by installing Platypush with the +[Tidal](https://docs.platypush.tech/platypush/plugins/music.tidal.html), +[RSS](https://docs.platypush.tech/platypush/plugins/rss.html) and +[Last.fm](https://docs.platypush.tech/platypush/plugins/lastfm.html) +integrations: + +``` +[sudo] pip install 'platypush[tidal,rss,lastfm]' +``` + +If you want to use Spotify instead of Tidal then just remove `tidal` from the +list of extra dependencies - no extra dependencies are required for the +[Spotify +plugin](https://docs.platypush.tech/platypush/plugins/music.spotify.html). + +If you are planning to listen to music through mpd/mopidy, then you may also +want to include `mpd` in the list of extra dependencies, so Platypush can +directly monitor your listening activity over the MPD protocol. + +Let's then configure a simple configuration under `~/.config/platypush/config.yaml`: + +```yaml +music.tidal: + # No configuration required + +# Or, if you use Spotify, create an app at https://developer.spotify.com and +# add its credentials here +# music.spotify: +# client_id: client_id +# client_secret: client_secret + +lastfm: + api_key: your_api_key + api_secret: your_api_secret + username: your_user + password: your_password + +# Subscribe to updates from newalbumreleases.net +rss: + subscriptions: + - https://newalbumreleases.net/category/cat/feed/ + +# Optional, used to send notifications about generation issues to your +# mobile/browser. You can also use Pushbullet, an email plugin or a chatbot if +# you prefer. +ntfy: + # No configuration required if you want to use the default server at + # https://ntfy.sh + +# Include the mpd plugin and backend if you are listening to music over +# mpd/mopidy +music.mpd: + host: localhost + port: 6600 + +backend.music.mopidy: + host: localhost + port: 6600 +``` + +Start Platypush by running the `platypush` command. The first time it should +prompt you with a tidal.com link required to authenticate your user. Open it in +your browser and authorize the app - the next runs should no longer ask you to +authenticate. + +Once the Platypush dependencies are in place, let's move to configure the +database. + +## Database configuration + +I'll assume that you have a Postgres database running somewhere, but the script +below can be easily adapted also to other DBMS's. + +Database initialization script (download/pastebin link is +[here](https://paste.fabiomanganiello.com/blacklight/music.sql)): + +```sql +-- New listened tracks will be pushed to the tmp_music table, and normalized by +-- a trigger. +drop table if exists tmp_music cascade; +create table tmp_music( + id serial not null, + artist varchar(255) not null, + title varchar(255) not null, + album varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- This table will store the tracks' info +drop table if exists music_track cascade; +create table music_track( + id serial not null, + artist varchar(255) not null, + title varchar(255) not null, + album varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id), + unique(artist, title) +); + +-- Create an index on (artist, title), and ensure that the (artist, title) pair +-- is unique +create unique index track_artist_title_idx on music_track(lower(artist), lower(title)); +create index track_artist_idx on music_track(lower(artist)); + +-- music_activity holds the listen history +drop table if exists music_activity cascade; +create table music_activity( + id serial not null, + track_id int not null, + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- music_similar keeps track of the similar tracks +drop table if exists music_similar cascade; +create table music_similar( + source_track_id int not null, + target_track_id int not null, + match_score float not null, + primary key(source_track_id, target_track_id), + foreign key(source_track_id) references music_track(id), + foreign key(target_track_id) references music_track(id) +); + +-- music_discovery_playlist keeps track of the generated discovery playlists +drop table if exists music_discovery_playlist cascade; +create table music_discovery_playlist( + id serial not null, + name varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- This table contains the track included in each discovery playlist +drop table if exists music_discovery_playlist_track cascade; +create table music_discovery_playlist_track( + id serial not null, + playlist_id int not null, + track_id int not null, + primary key(id), + unique(playlist_id, track_id), + foreign key(playlist_id) references music_discovery_playlist(id), + foreign key(track_id) references music_track(id) +); + +-- This trigger normalizes the tracks inserted into tmp_track +create or replace function sync_music_data() + returns trigger as +$$ +declare + track_id int; +begin + insert into music_track(artist, title, album) + values(new.artist, new.title, new.album) + on conflict(artist, title) do update + set album = coalesce(excluded.album, old.album) + returning id into track_id; + + insert into music_activity(track_id, created_at) + values (track_id, new.created_at); + + delete from tmp_music where id = new.id; + return new; +end; +$$ +language 'plpgsql'; + +drop trigger if exists on_sync_music on tmp_music; +create trigger on_sync_music + after insert on tmp_music + for each row + execute procedure sync_music_data(); + +-- (Optional) accessory view to easily peek the listened tracks +drop view if exists vmusic; +create view vmusic as +select t.id as track_id + , t.artist + , t.title + , t.album + , a.created_at +from music_track t +join music_activity a +on t.id = a.track_id; +``` + +Run the script on your database - if everything went smooth then all the tables +should be successfully created. + +## Synchronizing your music activity + +Now that all the dependencies are in place, it's time to configure the logic to +store your music activity to your database. + +If most of your music activity happens through mpd/mopidy, then storing your +activity to the database is as simple as creating a hook on a +[`NewPlayingTrackEvent`](https://docs.platypush.tech/platypush/events/music.html) +that inserts any newly playing track on `tmp_music`. Paste the following +content to a new Platypush user script (e.g. +`~/.config/platypush/scripts/music/sync.py`): + +```python +# ~/.config/platypush/scripts/music/sync.py + +from logging import getLogger + +from platypush.context import get_plugin +from platypush.event.hook import hook +from platypush.message.event.music import NewPlayingTrackEvent + +logger = getLogger('music_sync') + +# SQLAlchemy connection string that points to your database +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' + + +# Hook that react to NewPlayingTrackEvent events +@hook(NewPlayingTrackEvent) +def on_new_track_playing(event, **_): + track = event.track + + # Skip if the track has no artist/title specified + if not (track.get('artist') and track.get('title')): + return + + logger.info( + 'Inserting track: %s - %s', + track['artist'], track['title'] + ) + + db = get_plugin('db') + db.insert( + engine=music_db_engine, + table='tmp_music', + records=[ + { + 'artist': track['artist'], + 'title': track['title'], + 'album': track.get('album'), + } + for track in tracks + ] + ) +``` + +Alternatively, if you also want to sync music activities that happens through +other clients (such as the Spotify/Tidal app or web view, or over mobile +devices), you may consider leveraging Last.fm. Last.fm (or its open alternative +Libre.fm) are _scrobbling_ websites that are compatible with most of the music +players out there. Both Spotify and Tidal support scrobbling, the [Android +app](https://apkpure.com/last-fm/fm.last.android) can grab any music activity +on your phone and scrobble, and there are even [browser +extensions](https://chrome.google.com/webstore/detail/web-scrobbler/hhinaapppaileiechjoiifaancjggfjm?hl=en) +that allow you to record any music activity from any browser tab. + +So an alternative approach may be to send both your mpd/mopidy music activity, +as well as your in-browser or mobile music activity, to last.fm / libre.fm. The +corresponding hook would be: + +```python +# ~/.config/platypush/scripts/music/sync.py + +from logging import getLogger + +from platypush.context import get_plugin +from platypush.event.hook import hook +from platypush.message.event.music import NewPlayingTrackEvent + +logger = getLogger('music_sync') + + +# Hook that react to NewPlayingTrackEvent events +@hook(NewPlayingTrackEvent) +def on_new_track_playing(event, **_): + track = event.track + + # Skip if the track has no artist/title specified + if not (track.get('artist') and track.get('title')): + return + + lastfm = get_plugin('lastfm') + logger.info( + 'Scrobbling track: %s - %s', + track['artist'], track['title'] + ) + + lastfm.scrobble( + artist=track['artist'], + title=track['title'], + album=track.get('album'), + ) +``` + +If you go for the scrobbling way, then you may want to periodically synchronize +your scrobble history to your local database - for example, through a cron that +runs every 30 seconds: + +```python +# ~/.config/platypush/scripts/music/scrobble2db.py + +import logging + +from datetime import datetime + +from platypush.context import get_plugin, Variable +from platypush.cron import cron + +logger = logging.getLogger('music_sync') +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' + +# Use this stored variable to keep track of the time of the latest +# synchronized scrobble +last_timestamp_var = Variable('LAST_SCROBBLED_TIMESTAMP') + + +# This cron executes every 30 seconds +@cron('* * * * * */30') +def sync_scrobbled_tracks(**_): + db = get_plugin('db') + lastfm = get_plugin('lastfm') + + # Use the last.fm plugin to retrieve all the new tracks scrobbled since + # the last check + last_timestamp = int(last_timestamp_var.get() or 0) + tracks = [ + track for track in lastfm.get_recent_tracks().output + if track.get('timestamp', 0) > last_timestamp + ] + + # Exit if we have no new music activity + if not tracks: + return + + # Insert the new tracks on the database + db.insert( + engine=music_db_engine, + table='tmp_music', + records=[ + { + 'artist': track.get('artist'), + 'title': track.get('title'), + 'album': track.get('album'), + 'created_at': ( + datetime.fromtimestamp(track['timestamp']) + if track.get('timestamp') else None + ), + } + for track in tracks + ] + ) + + # Update the LAST_SCROBBLED_TIMESTAMP variable with the timestamp of the + # most recent played track + last_timestamp_var.set(max( + int(t.get('timestamp', 0)) + for t in tracks + )) + + logger.info('Stored %d new scrobbled track(s)', len(tracks)) +``` + +This cron will basically synchronize your scrobbling history to your local +database, so we can use the local database as the source of truth for the next +steps - no matter where the music was played from. + +To test the logic, simply restart Platypush, play some music from your +favourite player(s), and check that everything gets inserted on the database - +even if we are inserting tracks on the `tmp_music` table, the listening history +should be automatically normalized on the appropriate tables by the triggered +that we created at initialization time. + +## Updating the suggestions + +Now that all the plumbing to get all of your listening history in one data +source is in place, let's move to the logic that recalculates the suggestions +based on your listening history. + +We will again use the last.fm API to get tracks that are similar to those we +listened to recently - I personally find last.fm suggestions often more +relevant than those of Spotify's. + +For sake of simplicity, let's map the database tables to some SQLAlchemy ORM +classes, so the upcoming SQL interactions can be notably simplified. The ORM +model can be stored under e.g. `~/.config/platypush/music/db.py`: + +```python +# ~/.config/platypush/scripts/music/db.py + +from sqlalchemy import create_engine +from sqlalchemy.ext.automap import automap_base +from sqlalchemy.orm import sessionmaker, scoped_session + +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' +engine = create_engine(music_db_engine) + +Base = automap_base() +Base.prepare(engine, reflect=True) +Track = Base.classes.music_track +TrackActivity = Base.classes.music_activity +TrackSimilar = Base.classes.music_similar +DiscoveryPlaylist = Base.classes.music_discovery_playlist +DiscoveryPlaylistTrack = Base.classes.music_discovery_playlist_track + + +def get_db_session(): + session = scoped_session(sessionmaker(expire_on_commit=False)) + session.configure(bind=engine) + return session() +``` + +Then create a new user script under e.g. +`~/.config/platypush/scripts/music/suggestions.py` with the following content: + +```python +# ~/.config/platypush/scripts/music/suggestions.py + +import logging + +from sqlalchemy import tuple_ +from sqlalchemy.dialects.postgresql import insert +from sqlalchemy.sql.expression import bindparam + +from platypush.context import get_plugin, Variable +from platypush.cron import cron + +from scripts.music.db import ( + get_db_session, Track, TrackActivity, TrackSimilar +) + + +logger = logging.getLogger('music_suggestions') + +# This stored variable will keep track of the latest activity ID for which the +# suggestions were calculated +last_activity_id_var = Variable('LAST_PROCESSED_ACTIVITY_ID') + + +# A cronjob that runs every 5 minutes and updates the suggestions +@cron('*/5 * * * *') +def refresh_similar_tracks(**_): + last_activity_id = int(last_activity_id_var.get() or 0) + + # Retrieve all the tracks played since the latest synchronized activity ID + # that don't have any similar tracks being calculated yet + with get_db_session() as session: + recent_tracks_without_similars = \ + _get_recent_tracks_without_similars(last_activity_id) + + try: + if not recent_tracks_without_similars: + raise StopIteration( + 'All the recent tracks have processed suggestions') + + # Get the last activity_id + batch_size = 10 + last_activity_id = ( + recent_tracks_without_similars[:batch_size][-1]['activity_id']) + + logger.info( + 'Processing suggestions for %d/%d tracks', + min(batch_size, len(recent_tracks_without_similars)), + len(recent_tracks_without_similars)) + + # Build the track_id -> [similar_tracks] map + similars_by_track = { + track['track_id']: _get_similar_tracks(track['artist'], track['title']) + for track in recent_tracks_without_similars[:batch_size] + } + + # Map all the similar tracks in an (artist, title) -> info data structure + similar_tracks_by_artist_and_title = \ + _get_similar_tracks_by_artist_and_title(similars_by_track) + + if not similar_tracks_by_artist_and_title: + raise StopIteration('No new suggestions to process') + + # Sync all the new similar tracks to the database + similar_tracks = \ + _sync_missing_similar_tracks(similar_tracks_by_artist_and_title) + + # Link listened tracks to similar tracks + with get_db_session() as session: + stmt = insert(TrackSimilar).values({ + 'source_track_id': bindparam('source_track_id'), + 'target_track_id': bindparam('target_track_id'), + 'match_score': bindparam('match_score'), + }).on_conflict_do_nothing() + + session.execute( + stmt, [ + { + 'source_track_id': track_id, + 'target_track_id': similar_tracks[(similar['artist'], similar['title'])].id, + 'match_score': similar['score'], + } + for track_id, similars in similars_by_track.items() + for similar in (similars or []) + if (similar['artist'], similar['title']) + in similar_tracks + ] + ) + + session.flush() + session.commit() + except StopIteration as e: + logger.info(e) + + last_activity_id_var.set(last_activity_id) + logger.info('Suggestions updated') + + +def _get_similar_tracks(artist, title): + """ + Use the last.fm API to retrieve the tracks similar to a given + artist/title pair + """ + import pylast + lastfm = get_plugin('lastfm') + + try: + return lastfm.get_similar_tracks( + artist=artist, + title=title, + limit=10, + ) + except pylast.PyLastError as e: + logger.warning( + 'Could not find tracks similar to %s - %s: %s', + artist, title, e + ) + + +def _get_recent_tracks_without_similars(last_activity_id): + """ + Get all the tracks played after a certain activity ID that don't have + any suggestions yet. + """ + with get_db_session() as session: + return [ + { + 'track_id': t[0], + 'artist': t[1], + 'title': t[2], + 'activity_id': t[3], + } + for t in session.query( + Track.id.label('track_id'), + Track.artist, + Track.title, + TrackActivity.id.label('activity_id'), + ) + .select_from( + Track.__table__ + .join( + TrackSimilar, + Track.id == TrackSimilar.source_track_id, + isouter=True + ) + .join( + TrackActivity, + Track.id == TrackActivity.track_id + ) + ) + .filter( + TrackSimilar.source_track_id.is_(None), + TrackActivity.id > last_activity_id + ) + .order_by(TrackActivity.id) + .all() + ] + + +def _get_similar_tracks_by_artist_and_title(similars_by_track): + """ + Map similar tracks into an (artist, title) -> track dictionary + """ + similar_tracks_by_artist_and_title = {} + for similar in similars_by_track.values(): + for track in (similar or []): + similar_tracks_by_artist_and_title[ + (track['artist'], track['title']) + ] = track + + return similar_tracks_by_artist_and_title + + +def _sync_missing_similar_tracks(similar_tracks_by_artist_and_title): + """ + Flush newly calculated similar tracks to the database. + """ + logger.info('Syncing missing similar tracks') + with get_db_session() as session: + stmt = insert(Track).values({ + 'artist': bindparam('artist'), + 'title': bindparam('title'), + }).on_conflict_do_nothing() + + session.execute(stmt, list(similar_tracks_by_artist_and_title.values())) + session.flush() + session.commit() + + tracks = session.query(Track).filter( + tuple_(Track.artist, Track.title).in_( + similar_tracks_by_artist_and_title + ) + ).all() + + return { + (track.artist, track.title): track + for track in tracks + } +``` + +Restart Platypush and let it run for a bit. The cron will operate in batches of +10 items each (it can be easily customized), so after a few minutes your +`music_suggestions` table should start getting populated. + +## Generating the discovery playlist + +So far we have achieved the following targets: + +- We have a piece of logic that synchronizes all of our listening history to a + local database. +- We have a way to synchronize last.fm / libre.fm scrobbles to the same + database as well. +- We have a cronjob that periodically scans our listening history and fetches + the suggestions through the last.fm API. + +Now let's put it all together with a cron that runs every week (or daily, or at +whatever interval we like) that does the following: + +- It retrieves our listening history over the specified period. +- It retrieves the suggested tracks associated to our listening history. +- It excludes the tracks that we've already listened to, or that have already + been included in previous discovery playlists. +- It generates a new discovery playlist with those tracks, ranked according to + a simple score: + +$$ +\rho_i = \sum_{j \in L_i} m_{ij} +$$ + +Where \( \rho_i \) is the ranking of the suggested _i_-th suggested track, \( +L_i \) is the set of listened tracks that have the _i_-th track among its +similarities, and \( m_{ij} \) is the match score between _i_ and _j_ as +reported by the last.fm API. + +Let's put all these pieces together in a cron defined in e.g. +`~/.config/platypush/scripts/music/discovery.py`: + +```python +# ~/.config/platypush/scripts/music/discovery.py + +import logging +from datetime import date, timedelta + +from platypush.context import get_plugin +from platypush.cron import cron + +from scripts.music.db import ( + get_db_session, Track, TrackActivity, TrackSimilar, + DiscoveryPlaylist, DiscoveryPlaylistTrack +) + +logger = logging.getLogger('music_discovery') + + +def get_suggested_tracks(days=7, limit=25): + """ + Retrieve the suggested tracks from the database. + + :param days: Look back at the listen history for the past <n> days + (default: 7). + :param limit: Maximum number of track in the discovery playlist + (default: 25). + """ + from sqlalchemy import func + + listened_activity = TrackActivity.__table__.alias('listened_activity') + suggested_activity = TrackActivity.__table__.alias('suggested_activity') + + with get_db_session() as session: + return [ + { + 'track_id': t[0], + 'artist': t[1], + 'title': t[2], + 'score': t[3], + } + for t in session.query( + Track.id, + func.min(Track.artist), + func.min(Track.title), + func.sum(TrackSimilar.match_score).label('score'), + ) + .select_from( + Track.__table__ + .join( + TrackSimilar.__table__, + Track.id == TrackSimilar.target_track_id + ) + .join( + listened_activity, + listened_activity.c.track_id == TrackSimilar.source_track_id, + ) + .join( + suggested_activity, + suggested_activity.c.track_id == TrackSimilar.target_track_id, + isouter=True + ) + .join( + DiscoveryPlaylistTrack, + Track.id == DiscoveryPlaylistTrack.track_id, + isouter=True + ) + ) + .filter( + # The track has not been listened + suggested_activity.c.track_id.is_(None), + # The track has not been suggested already + DiscoveryPlaylistTrack.track_id.is_(None), + # Filter by recent activity + listened_activity.c.created_at >= date.today() - timedelta(days=days) + ) + .group_by(Track.id) + # Sort by aggregate match score + .order_by(func.sum(TrackSimilar.match_score).desc()) + .limit(limit) + .all() + ] + + +def search_remote_tracks(tracks): + """ + Search for Tidal tracks given a list of suggested tracks. + """ + # If you use Spotify instead of Tidal, simply replacing `music.tidal` + # with `music.spotify` here should suffice. + tidal = get_plugin('music.tidal') + found_tracks = [] + + for track in tracks: + query = track['artist'] + ' ' + track['title'] + logger.info('Searching "%s"', query) + results = ( + tidal.search(query, type='track', limit=1).output.get('tracks', []) + ) + + if results: + track['remote_track_id'] = results[0]['id'] + found_tracks.append(track) + else: + logger.warning('Could not find "%s" on TIDAL', query) + + return found_tracks + + +def refresh_discover_weekly(): + # If you use Spotify instead of Tidal, simply replacing `music.tidal` + # with `music.spotify` here should suffice. + tidal = get_plugin('music.tidal') + + # Get the latest suggested tracks + suggestions = search_remote_tracks(get_suggested_tracks()) + if not suggestions: + logger.info('No suggestions available') + return + + # Retrieve the existing discovery playlists + # Our naming convention is that discovery playlist names start with + # "Discover Weekly" - feel free to change it + playlists = tidal.get_playlists().output + discover_playlists = sorted( + [ + pl for pl in playlists + if pl['name'].lower().startswith('discover weekly') + ], + key=lambda pl: pl.get('created_at', 0) + ) + + # Delete all the existing discovery playlists + # (except the latest one). We basically keep two discovery playlists at the + # time in our collection, so you have two weeks to listen to them before they + # get deleted. Feel free to change this logic by modifying the -1 parameter + # with e.g. -2, -3 etc. if you want to store more discovery playlists. + for playlist in discover_playlists[:-1]: + logger.info('Deleting playlist "%s"', playlist['name']) + tidal.delete_playlist(playlist['id']) + + # Create a new discovery playlist + playlist_name = f'Discover Weekly [{date.today().isoformat()}]' + pl = tidal.create_playlist(playlist_name).output + playlist_id = pl['id'] + + tidal.add_to_playlist( + playlist_id, + [t['remote_track_id'] for t in suggestions], + ) + + # Add the playlist to the database + with get_db_session() as session: + pl = DiscoveryPlaylist(name=playlist_name) + session.add(pl) + session.flush() + session.commit() + + # Add the playlist entries to the database + with get_db_session() as session: + for track in suggestions: + session.add( + DiscoveryPlaylistTrack( + playlist_id=pl.id, + track_id=track['track_id'], + ) + ) + + session.commit() + + logger.info('Discover Weekly playlist updated') + + +@cron('0 6 * * 1') +def refresh_discover_weekly_cron(**_): + """ + This cronjob runs every Monday at 6 AM. + """ + try: + refresh_discover_weekly() + except Exception as e: + logger.exception(e) + + # (Optional) If anything went wrong with the playlist generation, send + # a notification over ntfy + ntfy = get_plugin('ntfy') + ntfy.send_message( + topic='mirrored-notifications-topic', + title='Discover Weekly playlist generation failed', + message=str(e), + priority=4, + ) +``` + +You can test the cronjob without having to wait for the next Monday through +your Python interpreter: + +```python +>>> import os +>>> +>>> # Move to the Platypush config directory +>>> path = os.path.join(os.path.expanduser('~'), '.config', 'platypush') +>>> os.chdir(path) +>>> +>>> # Import and run the cron function +>>> from scripts.music.discovery import refresh_discover_weekly_cron +>>> refresh_discover_weekly_cron() +``` + +If everything went well, you should soon see a new playlist in your collection +named _Discover Weekly [date]_. Congratulations! From 4c72748b9f594dcf13761aca548445890d746bcb Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Mon, 19 Sep 2022 15:39:18 +0200 Subject: [PATCH 02/18] wip --- markdown/Automate-your-music-collection.md | 45 ++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/markdown/Automate-your-music-collection.md b/markdown/Automate-your-music-collection.md index 591e0ad..7f6622d 100644 --- a/markdown/Automate-your-music-collection.md +++ b/markdown/Automate-your-music-collection.md @@ -2,7 +2,7 @@ [//]: # (description: Use Platypush to manage your music activity, discovery playlists and be on top of new releases.) [//]: # (image: /img/music-automation.png) [//]: # (author: Fabio Manganiello <fabio@platypush.tech>) -[//]: # (published: 2022-09-18) +[//]: # (published: 2022-09-19) I have been an enthusiastic user of mpd and mopidy for nearly two decades. I have already [written an @@ -167,8 +167,7 @@ database. I'll assume that you have a Postgres database running somewhere, but the script below can be easily adapted also to other DBMS's. -Database initialization script (download/pastebin link is -[here](https://paste.fabiomanganiello.com/blacklight/music.sql)): +Database initialization script: ```sql -- New listened tracks will be pushed to the tmp_music table, and normalized by @@ -241,6 +240,20 @@ create table music_discovery_playlist_track( foreign key(track_id) references music_track(id) ); +-- This table contains the new releases from artist that we've listened to at +-- least once +drop table if exists new_release cascade; +create table new_release( + id serial not null, + artist varchar(255) not null, + album varchar(255) not null, + genre varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + + primary key(id), + constraint u_artist_title unique(artist, album) +); + -- This trigger normalizes the tracks inserted into tmp_track create or replace function sync_music_data() returns trigger as @@ -498,6 +511,7 @@ TrackActivity = Base.classes.music_activity TrackSimilar = Base.classes.music_similar DiscoveryPlaylist = Base.classes.music_discovery_playlist DiscoveryPlaylistTrack = Base.classes.music_discovery_playlist_track +NewRelease = Base.classes.new_release def get_db_session(): @@ -955,3 +969,28 @@ your Python interpreter: If everything went well, you should soon see a new playlist in your collection named _Discover Weekly [date]_. Congratulations! + +## Release radar playlist + +Another great feature of Spotify and Tidal is the ability to provide "release +radar" playlists that contain new releases from artists that we may like. + +We now have a powerful way of creating such playlists ourselves though. We +previously configured Platypush to subscribe to the RSS feed from +newalbumreleases.net. Populating our release radar playlist involves the +following steps: + +1. Creating a hook that reacts to [`NewFeedEntryEvent` + events](https://docs.platypush.tech/platypush/events/rss.html) on this feed. +2. The hook will store new releases that match artists in our collection on the + `new_release` table that we created when we initialized the database. +3. A cron will scan this table on a weekly basis, search the tracks on + Spotify/Tidal, and populate our playlist just like we did for _Discover + Weekly_. + +Let's put these pieces together in a new user script stored under e.g. +`~/.config/platypush/scripts/music/releases.py`: + +```python +# ~/.config/platypush/scripts/music/releases.py +``` From 4da14c54051c89c6d73418f2ec7cc8c7530fb55e Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Mon, 19 Sep 2022 21:57:45 +0200 Subject: [PATCH 03/18] Music automation article --- markdown/Automate-your-music-collection.md | 262 +++++++++++++++++++-- 1 file changed, 248 insertions(+), 14 deletions(-) diff --git a/markdown/Automate-your-music-collection.md b/markdown/Automate-your-music-collection.md index 7f6622d..3a54e80 100644 --- a/markdown/Automate-your-music-collection.md +++ b/markdown/Automate-your-music-collection.md @@ -3,6 +3,7 @@ [//]: # (image: /img/music-automation.png) [//]: # (author: Fabio Manganiello <fabio@platypush.tech>) [//]: # (published: 2022-09-19) +[//]: # (latex: 1) I have been an enthusiastic user of mpd and mopidy for nearly two decades. I have already [written an @@ -27,16 +28,16 @@ The problem is that these services come with heavy trade-offs: 1. Their algorithms are closed. You don't know how Spotify figures out which songs should be picked in your smart playlists. In the past months, Spotify would often suggest me tracks from the same artists that I had already - listened to or skipped in the past, and there's no easy way to tell the - algorithm "hey, actually I'd like you to suggest me more this kind of music - - or maybe calculate suggestions only based on the music I've listened to in - this time range". + listened to or skipped in the past, and there's no transparent way to tell + the algorithm "hey, actually I'd like you to suggest me more this kind of + music - or maybe calculate suggestions only based on the music I've listened + to in this time range, or maybe weigh this genre more". 2. Those features are tightly coupled with the service you use. If you cancel your Spotify subscription, you lose those smart features as well. Companies like Spotify use such features as a lock-in mechanism - - "you can check out any time you like, but if you do then nobody else will - provide you with our clever suggestions". + you can check out any time you like, but if you do then nobody else will + provide you with their clever suggestions. After migrating from Spotify to Tidal in the past couple of months (TL;DR: Spotify f*cked up their developer experience multiple times over the past @@ -199,7 +200,7 @@ create table music_track( create unique index track_artist_title_idx on music_track(lower(artist), lower(title)); create index track_artist_idx on music_track(lower(artist)); --- music_activity holds the listen history +-- music_activity holds the listened tracks drop table if exists music_activity cascade; create table music_activity( id serial not null, @@ -304,9 +305,10 @@ Now that all the dependencies are in place, it's time to configure the logic to store your music activity to your database. If most of your music activity happens through mpd/mopidy, then storing your -activity to the database is as simple as creating a hook on a -[`NewPlayingTrackEvent`](https://docs.platypush.tech/platypush/events/music.html) -that inserts any newly playing track on `tmp_music`. Paste the following +activity to the database is as simple as creating a hook on +[`NewPlayingTrackEvent` +events](https://docs.platypush.tech/platypush/events/music.html) +that inserts any new played track on `tmp_music`. Paste the following content to a new Platypush user script (e.g. `~/.config/platypush/scripts/music/sync.py`): @@ -354,15 +356,15 @@ def on_new_track_playing(event, **_): ) ``` -Alternatively, if you also want to sync music activities that happens through +Alternatively, if you also want to sync music activity that happens on other clients (such as the Spotify/Tidal app or web view, or over mobile devices), you may consider leveraging Last.fm. Last.fm (or its open alternative -Libre.fm) are _scrobbling_ websites that are compatible with most of the music +Libre.fm) is a _scrobbling_ service compatible with most of the music players out there. Both Spotify and Tidal support scrobbling, the [Android app](https://apkpure.com/last-fm/fm.last.android) can grab any music activity -on your phone and scrobble, and there are even [browser +on your phone and scrobble it, and there are even [browser extensions](https://chrome.google.com/webstore/detail/web-scrobbler/hhinaapppaileiechjoiifaancjggfjm?hl=en) -that allow you to record any music activity from any browser tab. +that allow you to keep track of any music activity from any browser tab. So an alternative approach may be to send both your mpd/mopidy music activity, as well as your in-browser or mobile music activity, to last.fm / libre.fm. The @@ -993,4 +995,236 @@ Let's put these pieces together in a new user script stored under e.g. ```python # ~/.config/platypush/scripts/music/releases.py + +import html +import logging +import re +import threading +from datetime import date, timedelta +from typing import Iterable, List + +from platypush.context import get_plugin +from platypush.cron import cron +from platypush.event.hook import hook +from platypush.message.event.rss import NewFeedEntryEvent + +from scripts.music.db import ( + music_db_engine, get_db_session, NewRelease +) + + +create_lock = threading.RLock() +logger = logging.getLogger(__name__) + + +def _split_html_lines(content: str) -> List[str]: + """ + Utility method used to convert and split the HTML lines reported + by the RSS feed. + """ + return [ + l.strip() + for l in re.sub( + r'(</?p[^>]*>)|(<br\s*/?>)', + '\n', + content + ).split('\n') if l + ] + + +def _get_summary_field(title: str, lines: Iterable[str]) -> str | None: + """ + Parse the fields of a new album from the feed HTML summary. + """ + for line in lines: + m = re.match(rf'^{title}:\s+(.*)$', line.strip(), re.IGNORECASE) + if m: + return html.unescape(m.group(1)) + + +@hook(NewFeedEntryEvent, feed_url='https://newalbumreleases.net/category/cat/feed/') +def save_new_release(event: NewFeedEntryEvent, **_): + """ + This hook is triggered whenever the newalbumreleases.net has new entries. + """ + # Parse artist and album + summary = _split_html_lines(event.summary) + artist = _get_summary_field('artist', summary) + album = _get_summary_field('album', summary) + genre = _get_summary_field('style', summary) + + if not (artist and album): + return + + # Check if we have listened to this artist at least once + db = get_plugin('db') + num_plays = int( + db.select( + engine=music_db_engine, + query= + ''' + select count(*) + from music_activity a + join music_track t + on a.track_id = t.id + where artist = :artist + ''', + data={'artist': artist}, + ).output[0].get('count', 0) + ) + + # If not, skip it + if not num_plays: + return + + # Insert the new release on the database + with create_lock: + db.insert( + engine=music_db_engine, + table='new_release', + records=[{ + 'artist': artist, + 'album': album, + 'genre': genre, + }], + key_columns=('artist', 'album'), + on_duplicate_update=True, + ) + + +def get_new_releases(days=7): + """ + Retrieve the new album releases from the database. + + :param days: Look at albums releases in the past <n> days + (default: 7) + """ + with get_db_session() as session: + return [ + { + 'artist': t[0], + 'album': t[1], + } + for t in session.query( + NewRelease.artist, + NewRelease.album, + ) + .select_from( + NewRelease.__table__ + ) + .filter( + # Filter by recent activity + NewRelease.created_at >= date.today() - timedelta(days=days) + ) + .all() + ] + + +def search_tidal_new_releases(albums): + """ + Search for Tidal albums given a list of objects with artist and title. + """ + tidal = get_plugin('music.tidal') + expanded_tracks = [] + + for album in albums: + query = album['artist'] + ' ' + album['album'] + logger.info('Searching "%s"', query) + results = ( + tidal.search(query, type='album', limit=1) + .output.get('albums', []) + ) + + if results: + album = results[0] + + # Skip search results older than a year - some new releases may + # actually be remasters/re-releases of existing albums + if date.today().year - album.get('year', 0) > 1: + continue + + expanded_tracks += ( + tidal.get_album(results[0]['id']). + output.get('tracks', []) + ) + else: + logger.warning('Could not find "%s" on TIDAL', query) + + return expanded_tracks + + +def refresh_release_radar(): + tidal = get_plugin('music.tidal') + + # Get the latest releases + tracks = search_tidal_new_releases(get_new_releases()) + if not tracks: + logger.info('No new releases found') + return + + # Retrieve the existing new releases playlists + playlists = tidal.get_playlists().output + new_releases_playlists = sorted( + [ + pl for pl in playlists + if pl['name'].lower().startswith('new releases') + ], + key=lambda pl: pl.get('created_at', 0) + ) + + # Delete all the existing new releases playlists + # (except the latest one) + for playlist in new_releases_playlists[:-1]: + logger.info('Deleting playlist "%s"', playlist['name']) + tidal.delete_playlist(playlist['id']) + + # Create a new releases playlist + playlist_name = f'New Releases [{date.today().isoformat()}]' + pl = tidal.create_playlist(playlist_name).output + playlist_id = pl['id'] + + tidal.add_to_playlist( + playlist_id, + [t['id'] for t in tracks], + ) + + +@cron('0 7 * * 1') +def refresh_release_radar_cron(**_): + """ + This cron will execute every Monday at 7 AM. + """ + try: + refresh_release_radar() + except Exception as e: + logger.exception(e) + get_plugin('ntfy').send_message( + topic='mirrored-notifications-topic', + title='Release Radar playlist generation failed', + message=str(e), + priority=4, + ) ``` + +Just like in the previous case, it's quite easy to test that it works by simply +running `refresh_release_radar_cron` in the Python interpreter. Just like in +the case of the discovery playlist, things will work also if you use Spotify +instead of Tidal - just replace the `music.tidal` plugin references with +`music.spotify`. + +If it all goes as expected, you will get a new playlist named _New Releases +[date]_ every Monday with the new releases from artist that you have listened. + +## Conclusions + +Music junkies have the opportunity to discover a lot of new music today without +ever leaving their music app. However, smart playlists provided by the major +music cloud providers are usually implicit lock-ins, and the way they select +the tracks that should end up in your playlists may not even be transparent, or +even modifiable. + +After reading this article, you should be able to generate your discovery and +new releases playlists, without relying on the suggestions from a specific +music cloud. This could also make it easier to change your music provider: even +if you decide to drop Spotify or Tidal, your music suggestions logic will +follow you whenever you decide to go. From dd371f317a6c88049c361756025eb5359c1bdf2f Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Mon, 19 Sep 2022 08:48:39 +0200 Subject: [PATCH 04/18] Music automation article --- img/music-automation.png | Bin 0 -> 193546 bytes markdown/Automate-your-music-collection.md | 1230 ++++++++++++++++++++ 2 files changed, 1230 insertions(+) create mode 100644 img/music-automation.png create mode 100644 markdown/Automate-your-music-collection.md diff --git a/img/music-automation.png b/img/music-automation.png new file mode 100644 index 0000000000000000000000000000000000000000..36be4194b7e59a0fe39181cffc30c54f8f164d58 GIT binary patch literal 193546 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%0Db#xbpi!yETT%b(4-PX%_2CzY}+I^||=( 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%0AKudPDvkNobcy=R$7y0|Cy$gG&OBYk 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/|0}7TZMl4p!O~@`l$Z;^$#kt^OT*>pWF9ty*zK( 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%0A)$?fNKxoHyTTsL*~bEo4rN|&9vwEVW{ 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 literal 0 HcmV?d00001 diff --git a/markdown/Automate-your-music-collection.md b/markdown/Automate-your-music-collection.md new file mode 100644 index 0000000..3a54e80 --- /dev/null +++ b/markdown/Automate-your-music-collection.md @@ -0,0 +1,1230 @@ +[//]: # (title: Automate your music collection) +[//]: # (description: Use Platypush to manage your music activity, discovery playlists and be on top of new releases.) +[//]: # (image: /img/music-automation.png) +[//]: # (author: Fabio Manganiello <fabio@platypush.tech>) +[//]: # (published: 2022-09-19) +[//]: # (latex: 1) + +I have been an enthusiastic user of mpd and mopidy for nearly two decades. I +have already [written an +article](https://blog.platypush.tech/article/Build-your-open-source-multi-room-and-multi-provider-sound-server-with-Platypush-Mopidy-and-Snapcast) +on how to leverage mopidy (with its tons of integrations, including Spotify, +Tidal, YouTube, Bandcamp, Plex, TuneIn, SoundCloud etc.), Snapcast (with its +multi-room listening experience out of the box) and Platypush (with its +automation hooks that allow you to easily create if-this-then-that rules for +your music events) to take your listening experience to the next level, while +using open protocols and easily extensible open-source software. + +There is a feature that I haven't yet covered in my previous articles, and +that's the automation of your music collection. + +Spotify, Tidal and other music streaming services offer you features such as a +_Discovery Weekly_ or _Release Radar_ playlists, respectively filled with +tracks that you may like, or newly released tracks that you may be interested +in. + +The problem is that these services come with heavy trade-offs: + +1. Their algorithms are closed. You don't know how Spotify figures out which + songs should be picked in your smart playlists. In the past months, Spotify + would often suggest me tracks from the same artists that I had already + listened to or skipped in the past, and there's no transparent way to tell + the algorithm "hey, actually I'd like you to suggest me more this kind of + music - or maybe calculate suggestions only based on the music I've listened + to in this time range, or maybe weigh this genre more". + +2. Those features are tightly coupled with the service you use. If you cancel + your Spotify subscription, you lose those smart features as well. + Companies like Spotify use such features as a lock-in mechanism - + you can check out any time you like, but if you do then nobody else will + provide you with their clever suggestions. + +After migrating from Spotify to Tidal in the past couple of months (TL;DR: +Spotify f*cked up their developer experience multiple times over the past +decade, and their killing of libspotify without providing any alternatives was +the last nail in the coffin for me) I felt like missing their smart mixes, +discovery and new releases playlists - and, on the other hand, Tidal took a +while to learn my listening habits, and even when it did it often generated +smart playlists that were an inch below Spotify's. I asked myself why on earth +my music discovery experience should be so tightly coupled to one single cloud +service. And I decided that the time had come for me to automatically generate +my service-agnostic music suggestions: it's not rocket science anymore, there's +plenty of services that you can piggyback on to get artist or tracks similar to +some music given as input, and there's just no excuses to feel locked in by +Spotify, Google, Tidal or some other cloud music provider. + +In this article we'll cover how to: + +1. Use Platypush to automatically keep track of the music you listen to from + any of your devices; +2. Calculate the suggested tracks that may be similar to the music you've + recently listen to by using the Last.FM API; +3. Generate a _Discover Weekly_ playlist similar to Spotify's without relying + on Spotify; +4. Get the newly released albums and single by subscribing to an RSS feed; +5. Generate a weekly playlist with the new releases by filtering those from + artists that you've listened to at least once. + +## Ingredients + +We will use Platypush to handle the following features: + +1. Store our listening history to a local database, or synchronize it with a + scrobbling service like [last.fm](https://last.fm). +2. Periodically inspect our newly listened tracks, and use the last.fm API to + retrieve similar tracks. +3. Generate a discover weekly playlist based on a simple score that ranks + suggestions by match score against the tracks listened on a certain period + of time, and increases the weight of suggestions that occur multiple times. +4. Monitor new releases from the newalbumreleases.net RSS feed, and create a + weekly _Release Radar_ playlist containing the items from artists that we + have listened to at least once. + +This tutorial will require: + +1. A database to store your listening history and suggestions. The database + initialization script has been tested against Postgres, but it should be + easy to adapt it to MySQL or SQLite with some minimal modifications. +2. A machine (it can be a RaspberryPi, a home server, a VPS, an unused tablet + etc.) to run the Platypush automation. +3. A Spotify or Tidal account. The reported examples will generate the + playlists on a Tidal account by using the `music.tidal` Platypush plugin, + but it should be straightforward to adapt them to Spotify by using the + `music.spotify` plugin, or even to YouTube by using the YouTube API, or even + to local M3U playlists. + +## Setting up the software + +Start by installing Platypush with the +[Tidal](https://docs.platypush.tech/platypush/plugins/music.tidal.html), +[RSS](https://docs.platypush.tech/platypush/plugins/rss.html) and +[Last.fm](https://docs.platypush.tech/platypush/plugins/lastfm.html) +integrations: + +``` +[sudo] pip install 'platypush[tidal,rss,lastfm]' +``` + +If you want to use Spotify instead of Tidal then just remove `tidal` from the +list of extra dependencies - no extra dependencies are required for the +[Spotify +plugin](https://docs.platypush.tech/platypush/plugins/music.spotify.html). + +If you are planning to listen to music through mpd/mopidy, then you may also +want to include `mpd` in the list of extra dependencies, so Platypush can +directly monitor your listening activity over the MPD protocol. + +Let's then configure a simple configuration under `~/.config/platypush/config.yaml`: + +```yaml +music.tidal: + # No configuration required + +# Or, if you use Spotify, create an app at https://developer.spotify.com and +# add its credentials here +# music.spotify: +# client_id: client_id +# client_secret: client_secret + +lastfm: + api_key: your_api_key + api_secret: your_api_secret + username: your_user + password: your_password + +# Subscribe to updates from newalbumreleases.net +rss: + subscriptions: + - https://newalbumreleases.net/category/cat/feed/ + +# Optional, used to send notifications about generation issues to your +# mobile/browser. You can also use Pushbullet, an email plugin or a chatbot if +# you prefer. +ntfy: + # No configuration required if you want to use the default server at + # https://ntfy.sh + +# Include the mpd plugin and backend if you are listening to music over +# mpd/mopidy +music.mpd: + host: localhost + port: 6600 + +backend.music.mopidy: + host: localhost + port: 6600 +``` + +Start Platypush by running the `platypush` command. The first time it should +prompt you with a tidal.com link required to authenticate your user. Open it in +your browser and authorize the app - the next runs should no longer ask you to +authenticate. + +Once the Platypush dependencies are in place, let's move to configure the +database. + +## Database configuration + +I'll assume that you have a Postgres database running somewhere, but the script +below can be easily adapted also to other DBMS's. + +Database initialization script: + +```sql +-- New listened tracks will be pushed to the tmp_music table, and normalized by +-- a trigger. +drop table if exists tmp_music cascade; +create table tmp_music( + id serial not null, + artist varchar(255) not null, + title varchar(255) not null, + album varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- This table will store the tracks' info +drop table if exists music_track cascade; +create table music_track( + id serial not null, + artist varchar(255) not null, + title varchar(255) not null, + album varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id), + unique(artist, title) +); + +-- Create an index on (artist, title), and ensure that the (artist, title) pair +-- is unique +create unique index track_artist_title_idx on music_track(lower(artist), lower(title)); +create index track_artist_idx on music_track(lower(artist)); + +-- music_activity holds the listened tracks +drop table if exists music_activity cascade; +create table music_activity( + id serial not null, + track_id int not null, + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- music_similar keeps track of the similar tracks +drop table if exists music_similar cascade; +create table music_similar( + source_track_id int not null, + target_track_id int not null, + match_score float not null, + primary key(source_track_id, target_track_id), + foreign key(source_track_id) references music_track(id), + foreign key(target_track_id) references music_track(id) +); + +-- music_discovery_playlist keeps track of the generated discovery playlists +drop table if exists music_discovery_playlist cascade; +create table music_discovery_playlist( + id serial not null, + name varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + primary key(id) +); + +-- This table contains the track included in each discovery playlist +drop table if exists music_discovery_playlist_track cascade; +create table music_discovery_playlist_track( + id serial not null, + playlist_id int not null, + track_id int not null, + primary key(id), + unique(playlist_id, track_id), + foreign key(playlist_id) references music_discovery_playlist(id), + foreign key(track_id) references music_track(id) +); + +-- This table contains the new releases from artist that we've listened to at +-- least once +drop table if exists new_release cascade; +create table new_release( + id serial not null, + artist varchar(255) not null, + album varchar(255) not null, + genre varchar(255), + created_at timestamp with time zone default CURRENT_TIMESTAMP, + + primary key(id), + constraint u_artist_title unique(artist, album) +); + +-- This trigger normalizes the tracks inserted into tmp_track +create or replace function sync_music_data() + returns trigger as +$$ +declare + track_id int; +begin + insert into music_track(artist, title, album) + values(new.artist, new.title, new.album) + on conflict(artist, title) do update + set album = coalesce(excluded.album, old.album) + returning id into track_id; + + insert into music_activity(track_id, created_at) + values (track_id, new.created_at); + + delete from tmp_music where id = new.id; + return new; +end; +$$ +language 'plpgsql'; + +drop trigger if exists on_sync_music on tmp_music; +create trigger on_sync_music + after insert on tmp_music + for each row + execute procedure sync_music_data(); + +-- (Optional) accessory view to easily peek the listened tracks +drop view if exists vmusic; +create view vmusic as +select t.id as track_id + , t.artist + , t.title + , t.album + , a.created_at +from music_track t +join music_activity a +on t.id = a.track_id; +``` + +Run the script on your database - if everything went smooth then all the tables +should be successfully created. + +## Synchronizing your music activity + +Now that all the dependencies are in place, it's time to configure the logic to +store your music activity to your database. + +If most of your music activity happens through mpd/mopidy, then storing your +activity to the database is as simple as creating a hook on +[`NewPlayingTrackEvent` +events](https://docs.platypush.tech/platypush/events/music.html) +that inserts any new played track on `tmp_music`. Paste the following +content to a new Platypush user script (e.g. +`~/.config/platypush/scripts/music/sync.py`): + +```python +# ~/.config/platypush/scripts/music/sync.py + +from logging import getLogger + +from platypush.context import get_plugin +from platypush.event.hook import hook +from platypush.message.event.music import NewPlayingTrackEvent + +logger = getLogger('music_sync') + +# SQLAlchemy connection string that points to your database +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' + + +# Hook that react to NewPlayingTrackEvent events +@hook(NewPlayingTrackEvent) +def on_new_track_playing(event, **_): + track = event.track + + # Skip if the track has no artist/title specified + if not (track.get('artist') and track.get('title')): + return + + logger.info( + 'Inserting track: %s - %s', + track['artist'], track['title'] + ) + + db = get_plugin('db') + db.insert( + engine=music_db_engine, + table='tmp_music', + records=[ + { + 'artist': track['artist'], + 'title': track['title'], + 'album': track.get('album'), + } + for track in tracks + ] + ) +``` + +Alternatively, if you also want to sync music activity that happens on +other clients (such as the Spotify/Tidal app or web view, or over mobile +devices), you may consider leveraging Last.fm. Last.fm (or its open alternative +Libre.fm) is a _scrobbling_ service compatible with most of the music +players out there. Both Spotify and Tidal support scrobbling, the [Android +app](https://apkpure.com/last-fm/fm.last.android) can grab any music activity +on your phone and scrobble it, and there are even [browser +extensions](https://chrome.google.com/webstore/detail/web-scrobbler/hhinaapppaileiechjoiifaancjggfjm?hl=en) +that allow you to keep track of any music activity from any browser tab. + +So an alternative approach may be to send both your mpd/mopidy music activity, +as well as your in-browser or mobile music activity, to last.fm / libre.fm. The +corresponding hook would be: + +```python +# ~/.config/platypush/scripts/music/sync.py + +from logging import getLogger + +from platypush.context import get_plugin +from platypush.event.hook import hook +from platypush.message.event.music import NewPlayingTrackEvent + +logger = getLogger('music_sync') + + +# Hook that react to NewPlayingTrackEvent events +@hook(NewPlayingTrackEvent) +def on_new_track_playing(event, **_): + track = event.track + + # Skip if the track has no artist/title specified + if not (track.get('artist') and track.get('title')): + return + + lastfm = get_plugin('lastfm') + logger.info( + 'Scrobbling track: %s - %s', + track['artist'], track['title'] + ) + + lastfm.scrobble( + artist=track['artist'], + title=track['title'], + album=track.get('album'), + ) +``` + +If you go for the scrobbling way, then you may want to periodically synchronize +your scrobble history to your local database - for example, through a cron that +runs every 30 seconds: + +```python +# ~/.config/platypush/scripts/music/scrobble2db.py + +import logging + +from datetime import datetime + +from platypush.context import get_plugin, Variable +from platypush.cron import cron + +logger = logging.getLogger('music_sync') +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' + +# Use this stored variable to keep track of the time of the latest +# synchronized scrobble +last_timestamp_var = Variable('LAST_SCROBBLED_TIMESTAMP') + + +# This cron executes every 30 seconds +@cron('* * * * * */30') +def sync_scrobbled_tracks(**_): + db = get_plugin('db') + lastfm = get_plugin('lastfm') + + # Use the last.fm plugin to retrieve all the new tracks scrobbled since + # the last check + last_timestamp = int(last_timestamp_var.get() or 0) + tracks = [ + track for track in lastfm.get_recent_tracks().output + if track.get('timestamp', 0) > last_timestamp + ] + + # Exit if we have no new music activity + if not tracks: + return + + # Insert the new tracks on the database + db.insert( + engine=music_db_engine, + table='tmp_music', + records=[ + { + 'artist': track.get('artist'), + 'title': track.get('title'), + 'album': track.get('album'), + 'created_at': ( + datetime.fromtimestamp(track['timestamp']) + if track.get('timestamp') else None + ), + } + for track in tracks + ] + ) + + # Update the LAST_SCROBBLED_TIMESTAMP variable with the timestamp of the + # most recent played track + last_timestamp_var.set(max( + int(t.get('timestamp', 0)) + for t in tracks + )) + + logger.info('Stored %d new scrobbled track(s)', len(tracks)) +``` + +This cron will basically synchronize your scrobbling history to your local +database, so we can use the local database as the source of truth for the next +steps - no matter where the music was played from. + +To test the logic, simply restart Platypush, play some music from your +favourite player(s), and check that everything gets inserted on the database - +even if we are inserting tracks on the `tmp_music` table, the listening history +should be automatically normalized on the appropriate tables by the triggered +that we created at initialization time. + +## Updating the suggestions + +Now that all the plumbing to get all of your listening history in one data +source is in place, let's move to the logic that recalculates the suggestions +based on your listening history. + +We will again use the last.fm API to get tracks that are similar to those we +listened to recently - I personally find last.fm suggestions often more +relevant than those of Spotify's. + +For sake of simplicity, let's map the database tables to some SQLAlchemy ORM +classes, so the upcoming SQL interactions can be notably simplified. The ORM +model can be stored under e.g. `~/.config/platypush/music/db.py`: + +```python +# ~/.config/platypush/scripts/music/db.py + +from sqlalchemy import create_engine +from sqlalchemy.ext.automap import automap_base +from sqlalchemy.orm import sessionmaker, scoped_session + +music_db_engine = 'postgresql+pg8000://dbuser:dbpass@dbhost/dbname' +engine = create_engine(music_db_engine) + +Base = automap_base() +Base.prepare(engine, reflect=True) +Track = Base.classes.music_track +TrackActivity = Base.classes.music_activity +TrackSimilar = Base.classes.music_similar +DiscoveryPlaylist = Base.classes.music_discovery_playlist +DiscoveryPlaylistTrack = Base.classes.music_discovery_playlist_track +NewRelease = Base.classes.new_release + + +def get_db_session(): + session = scoped_session(sessionmaker(expire_on_commit=False)) + session.configure(bind=engine) + return session() +``` + +Then create a new user script under e.g. +`~/.config/platypush/scripts/music/suggestions.py` with the following content: + +```python +# ~/.config/platypush/scripts/music/suggestions.py + +import logging + +from sqlalchemy import tuple_ +from sqlalchemy.dialects.postgresql import insert +from sqlalchemy.sql.expression import bindparam + +from platypush.context import get_plugin, Variable +from platypush.cron import cron + +from scripts.music.db import ( + get_db_session, Track, TrackActivity, TrackSimilar +) + + +logger = logging.getLogger('music_suggestions') + +# This stored variable will keep track of the latest activity ID for which the +# suggestions were calculated +last_activity_id_var = Variable('LAST_PROCESSED_ACTIVITY_ID') + + +# A cronjob that runs every 5 minutes and updates the suggestions +@cron('*/5 * * * *') +def refresh_similar_tracks(**_): + last_activity_id = int(last_activity_id_var.get() or 0) + + # Retrieve all the tracks played since the latest synchronized activity ID + # that don't have any similar tracks being calculated yet + with get_db_session() as session: + recent_tracks_without_similars = \ + _get_recent_tracks_without_similars(last_activity_id) + + try: + if not recent_tracks_without_similars: + raise StopIteration( + 'All the recent tracks have processed suggestions') + + # Get the last activity_id + batch_size = 10 + last_activity_id = ( + recent_tracks_without_similars[:batch_size][-1]['activity_id']) + + logger.info( + 'Processing suggestions for %d/%d tracks', + min(batch_size, len(recent_tracks_without_similars)), + len(recent_tracks_without_similars)) + + # Build the track_id -> [similar_tracks] map + similars_by_track = { + track['track_id']: _get_similar_tracks(track['artist'], track['title']) + for track in recent_tracks_without_similars[:batch_size] + } + + # Map all the similar tracks in an (artist, title) -> info data structure + similar_tracks_by_artist_and_title = \ + _get_similar_tracks_by_artist_and_title(similars_by_track) + + if not similar_tracks_by_artist_and_title: + raise StopIteration('No new suggestions to process') + + # Sync all the new similar tracks to the database + similar_tracks = \ + _sync_missing_similar_tracks(similar_tracks_by_artist_and_title) + + # Link listened tracks to similar tracks + with get_db_session() as session: + stmt = insert(TrackSimilar).values({ + 'source_track_id': bindparam('source_track_id'), + 'target_track_id': bindparam('target_track_id'), + 'match_score': bindparam('match_score'), + }).on_conflict_do_nothing() + + session.execute( + stmt, [ + { + 'source_track_id': track_id, + 'target_track_id': similar_tracks[(similar['artist'], similar['title'])].id, + 'match_score': similar['score'], + } + for track_id, similars in similars_by_track.items() + for similar in (similars or []) + if (similar['artist'], similar['title']) + in similar_tracks + ] + ) + + session.flush() + session.commit() + except StopIteration as e: + logger.info(e) + + last_activity_id_var.set(last_activity_id) + logger.info('Suggestions updated') + + +def _get_similar_tracks(artist, title): + """ + Use the last.fm API to retrieve the tracks similar to a given + artist/title pair + """ + import pylast + lastfm = get_plugin('lastfm') + + try: + return lastfm.get_similar_tracks( + artist=artist, + title=title, + limit=10, + ) + except pylast.PyLastError as e: + logger.warning( + 'Could not find tracks similar to %s - %s: %s', + artist, title, e + ) + + +def _get_recent_tracks_without_similars(last_activity_id): + """ + Get all the tracks played after a certain activity ID that don't have + any suggestions yet. + """ + with get_db_session() as session: + return [ + { + 'track_id': t[0], + 'artist': t[1], + 'title': t[2], + 'activity_id': t[3], + } + for t in session.query( + Track.id.label('track_id'), + Track.artist, + Track.title, + TrackActivity.id.label('activity_id'), + ) + .select_from( + Track.__table__ + .join( + TrackSimilar, + Track.id == TrackSimilar.source_track_id, + isouter=True + ) + .join( + TrackActivity, + Track.id == TrackActivity.track_id + ) + ) + .filter( + TrackSimilar.source_track_id.is_(None), + TrackActivity.id > last_activity_id + ) + .order_by(TrackActivity.id) + .all() + ] + + +def _get_similar_tracks_by_artist_and_title(similars_by_track): + """ + Map similar tracks into an (artist, title) -> track dictionary + """ + similar_tracks_by_artist_and_title = {} + for similar in similars_by_track.values(): + for track in (similar or []): + similar_tracks_by_artist_and_title[ + (track['artist'], track['title']) + ] = track + + return similar_tracks_by_artist_and_title + + +def _sync_missing_similar_tracks(similar_tracks_by_artist_and_title): + """ + Flush newly calculated similar tracks to the database. + """ + logger.info('Syncing missing similar tracks') + with get_db_session() as session: + stmt = insert(Track).values({ + 'artist': bindparam('artist'), + 'title': bindparam('title'), + }).on_conflict_do_nothing() + + session.execute(stmt, list(similar_tracks_by_artist_and_title.values())) + session.flush() + session.commit() + + tracks = session.query(Track).filter( + tuple_(Track.artist, Track.title).in_( + similar_tracks_by_artist_and_title + ) + ).all() + + return { + (track.artist, track.title): track + for track in tracks + } +``` + +Restart Platypush and let it run for a bit. The cron will operate in batches of +10 items each (it can be easily customized), so after a few minutes your +`music_suggestions` table should start getting populated. + +## Generating the discovery playlist + +So far we have achieved the following targets: + +- We have a piece of logic that synchronizes all of our listening history to a + local database. +- We have a way to synchronize last.fm / libre.fm scrobbles to the same + database as well. +- We have a cronjob that periodically scans our listening history and fetches + the suggestions through the last.fm API. + +Now let's put it all together with a cron that runs every week (or daily, or at +whatever interval we like) that does the following: + +- It retrieves our listening history over the specified period. +- It retrieves the suggested tracks associated to our listening history. +- It excludes the tracks that we've already listened to, or that have already + been included in previous discovery playlists. +- It generates a new discovery playlist with those tracks, ranked according to + a simple score: + +$$ +\rho_i = \sum_{j \in L_i} m_{ij} +$$ + +Where \( \rho_i \) is the ranking of the suggested _i_-th suggested track, \( +L_i \) is the set of listened tracks that have the _i_-th track among its +similarities, and \( m_{ij} \) is the match score between _i_ and _j_ as +reported by the last.fm API. + +Let's put all these pieces together in a cron defined in e.g. +`~/.config/platypush/scripts/music/discovery.py`: + +```python +# ~/.config/platypush/scripts/music/discovery.py + +import logging +from datetime import date, timedelta + +from platypush.context import get_plugin +from platypush.cron import cron + +from scripts.music.db import ( + get_db_session, Track, TrackActivity, TrackSimilar, + DiscoveryPlaylist, DiscoveryPlaylistTrack +) + +logger = logging.getLogger('music_discovery') + + +def get_suggested_tracks(days=7, limit=25): + """ + Retrieve the suggested tracks from the database. + + :param days: Look back at the listen history for the past <n> days + (default: 7). + :param limit: Maximum number of track in the discovery playlist + (default: 25). + """ + from sqlalchemy import func + + listened_activity = TrackActivity.__table__.alias('listened_activity') + suggested_activity = TrackActivity.__table__.alias('suggested_activity') + + with get_db_session() as session: + return [ + { + 'track_id': t[0], + 'artist': t[1], + 'title': t[2], + 'score': t[3], + } + for t in session.query( + Track.id, + func.min(Track.artist), + func.min(Track.title), + func.sum(TrackSimilar.match_score).label('score'), + ) + .select_from( + Track.__table__ + .join( + TrackSimilar.__table__, + Track.id == TrackSimilar.target_track_id + ) + .join( + listened_activity, + listened_activity.c.track_id == TrackSimilar.source_track_id, + ) + .join( + suggested_activity, + suggested_activity.c.track_id == TrackSimilar.target_track_id, + isouter=True + ) + .join( + DiscoveryPlaylistTrack, + Track.id == DiscoveryPlaylistTrack.track_id, + isouter=True + ) + ) + .filter( + # The track has not been listened + suggested_activity.c.track_id.is_(None), + # The track has not been suggested already + DiscoveryPlaylistTrack.track_id.is_(None), + # Filter by recent activity + listened_activity.c.created_at >= date.today() - timedelta(days=days) + ) + .group_by(Track.id) + # Sort by aggregate match score + .order_by(func.sum(TrackSimilar.match_score).desc()) + .limit(limit) + .all() + ] + + +def search_remote_tracks(tracks): + """ + Search for Tidal tracks given a list of suggested tracks. + """ + # If you use Spotify instead of Tidal, simply replacing `music.tidal` + # with `music.spotify` here should suffice. + tidal = get_plugin('music.tidal') + found_tracks = [] + + for track in tracks: + query = track['artist'] + ' ' + track['title'] + logger.info('Searching "%s"', query) + results = ( + tidal.search(query, type='track', limit=1).output.get('tracks', []) + ) + + if results: + track['remote_track_id'] = results[0]['id'] + found_tracks.append(track) + else: + logger.warning('Could not find "%s" on TIDAL', query) + + return found_tracks + + +def refresh_discover_weekly(): + # If you use Spotify instead of Tidal, simply replacing `music.tidal` + # with `music.spotify` here should suffice. + tidal = get_plugin('music.tidal') + + # Get the latest suggested tracks + suggestions = search_remote_tracks(get_suggested_tracks()) + if not suggestions: + logger.info('No suggestions available') + return + + # Retrieve the existing discovery playlists + # Our naming convention is that discovery playlist names start with + # "Discover Weekly" - feel free to change it + playlists = tidal.get_playlists().output + discover_playlists = sorted( + [ + pl for pl in playlists + if pl['name'].lower().startswith('discover weekly') + ], + key=lambda pl: pl.get('created_at', 0) + ) + + # Delete all the existing discovery playlists + # (except the latest one). We basically keep two discovery playlists at the + # time in our collection, so you have two weeks to listen to them before they + # get deleted. Feel free to change this logic by modifying the -1 parameter + # with e.g. -2, -3 etc. if you want to store more discovery playlists. + for playlist in discover_playlists[:-1]: + logger.info('Deleting playlist "%s"', playlist['name']) + tidal.delete_playlist(playlist['id']) + + # Create a new discovery playlist + playlist_name = f'Discover Weekly [{date.today().isoformat()}]' + pl = tidal.create_playlist(playlist_name).output + playlist_id = pl['id'] + + tidal.add_to_playlist( + playlist_id, + [t['remote_track_id'] for t in suggestions], + ) + + # Add the playlist to the database + with get_db_session() as session: + pl = DiscoveryPlaylist(name=playlist_name) + session.add(pl) + session.flush() + session.commit() + + # Add the playlist entries to the database + with get_db_session() as session: + for track in suggestions: + session.add( + DiscoveryPlaylistTrack( + playlist_id=pl.id, + track_id=track['track_id'], + ) + ) + + session.commit() + + logger.info('Discover Weekly playlist updated') + + +@cron('0 6 * * 1') +def refresh_discover_weekly_cron(**_): + """ + This cronjob runs every Monday at 6 AM. + """ + try: + refresh_discover_weekly() + except Exception as e: + logger.exception(e) + + # (Optional) If anything went wrong with the playlist generation, send + # a notification over ntfy + ntfy = get_plugin('ntfy') + ntfy.send_message( + topic='mirrored-notifications-topic', + title='Discover Weekly playlist generation failed', + message=str(e), + priority=4, + ) +``` + +You can test the cronjob without having to wait for the next Monday through +your Python interpreter: + +```python +>>> import os +>>> +>>> # Move to the Platypush config directory +>>> path = os.path.join(os.path.expanduser('~'), '.config', 'platypush') +>>> os.chdir(path) +>>> +>>> # Import and run the cron function +>>> from scripts.music.discovery import refresh_discover_weekly_cron +>>> refresh_discover_weekly_cron() +``` + +If everything went well, you should soon see a new playlist in your collection +named _Discover Weekly [date]_. Congratulations! + +## Release radar playlist + +Another great feature of Spotify and Tidal is the ability to provide "release +radar" playlists that contain new releases from artists that we may like. + +We now have a powerful way of creating such playlists ourselves though. We +previously configured Platypush to subscribe to the RSS feed from +newalbumreleases.net. Populating our release radar playlist involves the +following steps: + +1. Creating a hook that reacts to [`NewFeedEntryEvent` + events](https://docs.platypush.tech/platypush/events/rss.html) on this feed. +2. The hook will store new releases that match artists in our collection on the + `new_release` table that we created when we initialized the database. +3. A cron will scan this table on a weekly basis, search the tracks on + Spotify/Tidal, and populate our playlist just like we did for _Discover + Weekly_. + +Let's put these pieces together in a new user script stored under e.g. +`~/.config/platypush/scripts/music/releases.py`: + +```python +# ~/.config/platypush/scripts/music/releases.py + +import html +import logging +import re +import threading +from datetime import date, timedelta +from typing import Iterable, List + +from platypush.context import get_plugin +from platypush.cron import cron +from platypush.event.hook import hook +from platypush.message.event.rss import NewFeedEntryEvent + +from scripts.music.db import ( + music_db_engine, get_db_session, NewRelease +) + + +create_lock = threading.RLock() +logger = logging.getLogger(__name__) + + +def _split_html_lines(content: str) -> List[str]: + """ + Utility method used to convert and split the HTML lines reported + by the RSS feed. + """ + return [ + l.strip() + for l in re.sub( + r'(</?p[^>]*>)|(<br\s*/?>)', + '\n', + content + ).split('\n') if l + ] + + +def _get_summary_field(title: str, lines: Iterable[str]) -> str | None: + """ + Parse the fields of a new album from the feed HTML summary. + """ + for line in lines: + m = re.match(rf'^{title}:\s+(.*)$', line.strip(), re.IGNORECASE) + if m: + return html.unescape(m.group(1)) + + +@hook(NewFeedEntryEvent, feed_url='https://newalbumreleases.net/category/cat/feed/') +def save_new_release(event: NewFeedEntryEvent, **_): + """ + This hook is triggered whenever the newalbumreleases.net has new entries. + """ + # Parse artist and album + summary = _split_html_lines(event.summary) + artist = _get_summary_field('artist', summary) + album = _get_summary_field('album', summary) + genre = _get_summary_field('style', summary) + + if not (artist and album): + return + + # Check if we have listened to this artist at least once + db = get_plugin('db') + num_plays = int( + db.select( + engine=music_db_engine, + query= + ''' + select count(*) + from music_activity a + join music_track t + on a.track_id = t.id + where artist = :artist + ''', + data={'artist': artist}, + ).output[0].get('count', 0) + ) + + # If not, skip it + if not num_plays: + return + + # Insert the new release on the database + with create_lock: + db.insert( + engine=music_db_engine, + table='new_release', + records=[{ + 'artist': artist, + 'album': album, + 'genre': genre, + }], + key_columns=('artist', 'album'), + on_duplicate_update=True, + ) + + +def get_new_releases(days=7): + """ + Retrieve the new album releases from the database. + + :param days: Look at albums releases in the past <n> days + (default: 7) + """ + with get_db_session() as session: + return [ + { + 'artist': t[0], + 'album': t[1], + } + for t in session.query( + NewRelease.artist, + NewRelease.album, + ) + .select_from( + NewRelease.__table__ + ) + .filter( + # Filter by recent activity + NewRelease.created_at >= date.today() - timedelta(days=days) + ) + .all() + ] + + +def search_tidal_new_releases(albums): + """ + Search for Tidal albums given a list of objects with artist and title. + """ + tidal = get_plugin('music.tidal') + expanded_tracks = [] + + for album in albums: + query = album['artist'] + ' ' + album['album'] + logger.info('Searching "%s"', query) + results = ( + tidal.search(query, type='album', limit=1) + .output.get('albums', []) + ) + + if results: + album = results[0] + + # Skip search results older than a year - some new releases may + # actually be remasters/re-releases of existing albums + if date.today().year - album.get('year', 0) > 1: + continue + + expanded_tracks += ( + tidal.get_album(results[0]['id']). + output.get('tracks', []) + ) + else: + logger.warning('Could not find "%s" on TIDAL', query) + + return expanded_tracks + + +def refresh_release_radar(): + tidal = get_plugin('music.tidal') + + # Get the latest releases + tracks = search_tidal_new_releases(get_new_releases()) + if not tracks: + logger.info('No new releases found') + return + + # Retrieve the existing new releases playlists + playlists = tidal.get_playlists().output + new_releases_playlists = sorted( + [ + pl for pl in playlists + if pl['name'].lower().startswith('new releases') + ], + key=lambda pl: pl.get('created_at', 0) + ) + + # Delete all the existing new releases playlists + # (except the latest one) + for playlist in new_releases_playlists[:-1]: + logger.info('Deleting playlist "%s"', playlist['name']) + tidal.delete_playlist(playlist['id']) + + # Create a new releases playlist + playlist_name = f'New Releases [{date.today().isoformat()}]' + pl = tidal.create_playlist(playlist_name).output + playlist_id = pl['id'] + + tidal.add_to_playlist( + playlist_id, + [t['id'] for t in tracks], + ) + + +@cron('0 7 * * 1') +def refresh_release_radar_cron(**_): + """ + This cron will execute every Monday at 7 AM. + """ + try: + refresh_release_radar() + except Exception as e: + logger.exception(e) + get_plugin('ntfy').send_message( + topic='mirrored-notifications-topic', + title='Release Radar playlist generation failed', + message=str(e), + priority=4, + ) +``` + +Just like in the previous case, it's quite easy to test that it works by simply +running `refresh_release_radar_cron` in the Python interpreter. Just like in +the case of the discovery playlist, things will work also if you use Spotify +instead of Tidal - just replace the `music.tidal` plugin references with +`music.spotify`. + +If it all goes as expected, you will get a new playlist named _New Releases +[date]_ every Monday with the new releases from artist that you have listened. + +## Conclusions + +Music junkies have the opportunity to discover a lot of new music today without +ever leaving their music app. However, smart playlists provided by the major +music cloud providers are usually implicit lock-ins, and the way they select +the tracks that should end up in your playlists may not even be transparent, or +even modifiable. + +After reading this article, you should be able to generate your discovery and +new releases playlists, without relying on the suggestions from a specific +music cloud. This could also make it easier to change your music provider: even +if you decide to drop Spotify or Tidal, your music suggestions logic will +follow you whenever you decide to go. From faf1be2ea06b09699efffde3da799423735f9803 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Thu, 17 Nov 2022 15:50:41 +0100 Subject: [PATCH 05/18] Fixed pip install line --- ...don-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md index 0907541..798d1c5 100644 --- a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md +++ b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md @@ -328,7 +328,7 @@ Install Python 3 and `pip` if they aren't installed already. Then install Platypush with the `rss` and `mastodon` integrations: ```bash -[sudo] pip3 install 'platypush[rss,mastodon]' +[sudo] pip3 install 'platypush[rss]' ``` Now create a configuration file under `~/.config/platypush/config.yaml` that From 991c6a39148ccf1d987918522d5e9a4cbf864869 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Thu, 17 Nov 2022 15:53:25 +0100 Subject: [PATCH 06/18] Fixed pip install line --- ...don-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md index 798d1c5..ae7b3cc 100644 --- a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md +++ b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md @@ -325,7 +325,7 @@ can run a UNIX-like system and it has HTTP access to the instance that hosts your bot. Install Python 3 and `pip` if they aren't installed already. Then install -Platypush with the `rss` and `mastodon` integrations: +Platypush with the `rss` integration: ```bash [sudo] pip3 install 'platypush[rss]' From f1c488de790ddd688dc545f6b982b8e3f1799004 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <info@fabiomanganiello.com> Date: Thu, 17 Nov 2022 15:59:37 +0100 Subject: [PATCH 07/18] Added update about nitter.net --- ...bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md index ae7b3cc..e3724d4 100644 --- a/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md +++ b/markdown/Create-a-Mastodon-bot-to-forward-Twitter-and-RSS-feeds-to-your-timeline.md @@ -359,6 +359,12 @@ Fortunately, the admins of `nitter.net` still do a good job in bridging Twitter timelines to RSS feeds, so in `rss.subscriptions` we use `nitter.net` URLs as a proxy to Twitter timelines. +> UPDATE: `nitter.net` has got a lot of traffic lately, especially after the +> recent events at Twitter. So keep in mind that the main instance may not +> always be accessible. You can consider using other nitter instances, or, even +> better, run one yourself (Nitter is open-source and light enough to run on a +> Raspberry Pi). + Now create a script under `~/.config/platypush/scripts` named e.g. `mastodon_bot.py`. Its content can be something like the following: From 22f5a8b662c7ad10ffe5d6b7ce88d6fa23fce7a0 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Sun, 26 May 2024 13:56:31 +0200 Subject: [PATCH 08/18] Added Platypush 1.0 article --- config.yaml | 1 + markdown/Platypush-1.0-is-out.md | 268 +++++++++++++++++++++++++++++++ 2 files changed, 269 insertions(+) create mode 100644 markdown/Platypush-1.0-is-out.md diff --git a/config.yaml b/config.yaml index ea9967c..b7a8475 100644 --- a/config.yaml +++ b/config.yaml @@ -2,6 +2,7 @@ title: Platypush description: The Platypush blog link: https://blog.platypush.tech home_link: https://platypush.tech +short_feed: True categories: - IoT - automation diff --git a/markdown/Platypush-1.0-is-out.md b/markdown/Platypush-1.0-is-out.md new file mode 100644 index 0000000..bab5080 --- /dev/null +++ b/markdown/Platypush-1.0-is-out.md @@ -0,0 +1,268 @@ +[//]: # (title: Platypush 1.0 is out) +[//]: # (description: It's software maturity time) +[//]: # (image: https://platypush-static.s3.nl-ams.scw.cloud/images/release-1.0.png) +[//]: # (author: Fabio Manganiello <fabio@platypush.tech>) +[//]: # (published: 2024-05-26) + +It's been [10 months](https://pypi.org/project/platypush/#history) and [1049 +commits](https://git.platypush.tech/platypush/platypush/commits/branch/master) +since the latest release of Platypush, 7 years since [the first +commit](https://git.platypush.tech/platypush/platypush/commit/0b0d94fee3ab20e7f488072f624b4f33c527947a), +and 10 years since the first release of its ancestor, +[`evesp`](https://github.com/blacklight/evesp). + +The past few months have been quite hectic and I have nearly rewritten the +whole codebase, but I feel like the software is now at a stage where it's +mature and stable enough to be used by a larger audience. + +The changelog [is quite +big](https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-0-0-2024-05-26), +but it doesn't even cover all the changes, as many integrations have been +completely rewritten. + +Let's go over some of the changes in the 1.0 release. + +## All backends are gone or turned into plugins + +Probably the most confusing feature of Platypush was the separation between +backends and plugins. + +This was a quirk of the original implementation, where plugins were pretty much +stateless collections of actions and backends were background tasks that +monitored a certain integration for new events. + +It ended up in a state where users had to write the same configuration twice +(e.g. one section for `light.hue` and one for `backend.light.hue`), and/or +where me as a developer had to maintain tight dependencies between integrations +in order for them to share configuration. + +Those times are now gone. Backends should only do what backends are supposed to +do - i.e. listen for external messages and dispatch them to the application. So +the only ones that are still there are: + +- [`backend.http`](https://docs.platypush.tech/platypush/backend/http.html) - + the core Web server. + +- [`backend.nodered`](https://docs.platypush.tech/platypush/backend/nodered.html), + to listen for messages from a Node-RED instance. + +- [`backend.redis`](https://docs.platypush.tech/platypush/backend/redis.html), + used internally to dispatch messages across components, and it can also be + used by external scripts to dispatch application messages on localhost + bypassing the HTTP layer. + +- [`backend.tcp`](https://docs.platypush.tech/platypush/backend/tcp.html), the + legacy (and insecure) raw TCP listener. + +Besides them, all the other backends have now been merged into their respective +plugins, so no more need for dual configuration. If the former backend had a +logic that polled at regular intervals, then you can disable polling in the +plugin by setting `poll_interval` to `null` in the plugin configuration, so you +can still use the plugin as a stateless entity if you wish so. + +This is a quite big breaking change, so you may probably want to check out the +[plugins reference on the documentation](https://docs.platypush.tech) to check +for any configuration changes. + +## Better Docker support + +There's now an official +[`docker-compose.yml`](https://git.platypush.tech/platypush/platypush/src/branch/master/docker-compose.yml), +as well as multiple Dockerfiles that support +[Alpine](https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/install/docker/alpine.Dockerfile), +[Debian](https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/install/docker/debian.Dockerfile), +[Ubuntu](https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/install/docker/ubuntu.Dockerfile) +and +[Fedora](https://git.platypush.tech/platypush/platypush/src/branch/master/platypush/install/docker/fedora.Dockerfile) +base images. + +The `platydock` and `platyvenv` scripts have also been rewritten. They are now +much more stable and smarter in installing any extra required dependency. + +## Official packages for several package managers + +[Official +packages](https://git.platypush.tech/platypush/platypush#system-package-manager-installation) +have been added for +[Debian](https://git.platypush.tech/platypush/platypush#debian-ubuntu) and +[Fedora](https://git.platypush.tech/platypush/platypush#fedora), on top of +those available for [Arch Linux](https://aur.archlinux.org/packages/platypush). + +Official Ubuntu packages are [also on their +way](https://git.platypush.tech/platypush/platypush/issues/368). + +## Better `pip` extras installation + +Users previously had to dig through the `setup.py` file to get the `pip` extras +supported by specific integrations. + +Not anymore. Extra dependencies are now dynamically parsed from the +integrations' `manifest.json`, so you can install them simply via `pip install +'platypush[plugin1,plugin2,...]'`. + +For example, `pip install 'platypush[light.hue,music.mpd]'` to install the +dependencies required by the `light.hue` and `music.mpd` plugins. + +## A more intuitive way of creating custom Python scripts + +### Simpler directory structure + +Custom scripts are loaded as Python modules. This means that you need an +`__init__.py` in each folder that hosts some Platypush custom scripts. + +Earlier users were required to manually create that file, but that's no longer +the case. + +You can simply drop a `.py` file in any place under your scripts directory, +with your procedures, event hooks, crons etc., and Platypush will automatically +pick it up. + +### Simpler API + +Earlier scripts relied on an API like this: + +``` +from platypush.message.event.something import SomeEvent +from platypush.event.hook import hook +from platypush.procedure import procedure +from platypush.utils import run + +@procedure +def my_proc(**context): + ... + +@hook(SomeEvent) +def event_hook(event, **context): + my_proc() +``` + +While this API is still supported, a new simplified version is now available +too: + +``` +from platypush import procedure, when, run +from platypush.events.something import SomeEvent + +# Note that custom procedure name overrides are now available, albeit optional +@procedure('this_is_my_proc') +# Arguments are no longer a requirement, either in procedure or hooks +def my_proc(): + ... + +@when(SomeEvent) +# You can also omit event here if you don't need it +def event_hook(event): + # Procedures can also be called directly via `run` + run('procedure.this_is_my_proc') +``` + +## Greatly improved documentation + +The [official documentation](https://docs.platypush.tech) has been greatly +expanded, and it now includes all the wiki content too as well as a better UI +for the available integrations (and also a filter bar). + +The documentation pages of the integrations have also been greatly improved to +include ready-to-paste configuration snippets, installation commands for +several package managers and a dynamically generated list of supported events +and actions. + +## Removed all the custom `Response` objects + +Removed all `Response` objects outside of the root type. They are now all +replaced by Marshmallow schemas with the structure automatically generated in +the documentation. + +## Some new cool integrations are in + +The [`alarm`](https://git.platypush.tech/platypush/platypush/issues/340) plugin +has been completely rewritten and paired to a powerful UI that allows you to +set alarms as procedures. + +The old +[`stt.picovoice.*`](https://git.platypush.tech/platypush/platypush/issues/304) +have been replaced by a new +[`assistant.picovoice`](https://docs.platypush.tech/platypush/plugins/assistant.picovoice.html) +integration that provides all the features for a full-featured voice assistant. + +The +[`youtube`](https://docs.platypush.tech/platypush/plugins/youtube.html) plugin +has been rewritten too, it now relies on `yt-dlp` and it uses Piped instances +instead of the (brittle and unstable) YouTube API. It's also been paired with a +new UI that makes it easy to navigate your feeds, subscriptions and playlists. + +There's a new +[`music.mopidy`](https://docs.platypush.tech/platypush/plugins/music.mopidy.html) +integration too, which takes some parts of the old `music.mopidy` backend and +add a full plugin around it which is 100% compatible with the API of the +[`music.mpd`](https://docs.platypush.tech/platypush/plugins/music.mpd.html) +plugin, on top of a new UI for it. This makes it easier to switch between `mpd` +and `mopidy` implementations for your music servers, and also leverage the +asynchronous nature of Mopidy's Web socket API to get real time events without +polling. + +The `camera.pi` integration has been moved to +[`camera.pi.legacy`](https://docs.platypush.tech/platypush/plugins/camera.pi.legacy.html) +following the deprecation of the previous `picamera` library. + +[`camera.pi`](https://docs.platypush.tech/platypush/plugins/camera.pi.html) is +now a new integration based on the recent `picamera2` module. + +A new +[`openai`](https://docs.platypush.tech/platypush/plugins/openai.html) +integration is now also available, making easy to programmatically get AI +predictions anywhere. This can be particularly useful when paired with SST/TTS +integrations like PicoVoice - you can implement custom voice assistants that +use PicoVoice's libraries to do the speech/text conversion, and leverage +ChatGPT's APIs to get plausible answers. + +## Some old stuff is out + +`google.fit` has been removed, as Google announced the deprecation of the API +(which has already experienced stability issues for a while anyway). + +Same for `weather.darksky`, which has been purchased by Apple, which readily +killed their amazing API. In turn, the `weather.openweathermap` integration has +been empowered and it's compatible with the API of the former Darksky +integration. + +The `wiimote` integration is also out. The underlying `cwiid` library hasn't +been updated in years, and it keeps struggling with Python 3 too. + +Same fate goes for `stt.deepvoice`. DeepVoice was a very promising project from +Mozilla to democratize speech-to-text, but it seems to be now abandoned, hasn't +seen an update in years, and given Mozilla's financial woes it's unlikely to be +resurrected any time soon. + +I hope that the progress on the PicoVoice integration side will make up the +loss of the DeepSpeech integration. + +## And there's more to come + +There's a new [voice integration based on +Whisper/GPT-4o](https://git.platypush.tech/platypush/platypush/issues/384) in +the works too. + +A [dark theme for the +UI](https://git.platypush.tech/platypush/platypush/issues/376). + +A new [Hue backend](https://git.platypush.tech/platypush/platypush/issues/282) +that can make Platypush emulate the API of a Philips Hue bridge and control +devices from the Hue app or any compatible clients. + +[Support for more native entities from more +plugins](https://git.platypush.tech/platypush/platypush/milestone/4), so you +can use the global entities view also to view cameras, control media players +and run custom procedures. + +And there are two big features in the work to support [entity +groups](https://git.platypush.tech/platypush/platypush/issues/244) and [entity +scenes](https://git.platypush.tech/platypush/platypush/issues/245). These may +not be must-have features anymore, now that all things can be customized with +procedures, but it could greatly help those who come from other platforms and +are used to these abstractions. + +And if you have more requests or questions, feel free to [open a +ticket](https://git.platypush.tech/platypush/platypush/issues), [a +PR](https://git.platypush.tech/platypush/platypush/pulls) or [ask on the Lemmy +server](https://lemmy.platypush.tech/c/platypush). From 1d90d5a317abfed9103b92a84d06d82542a3befe Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Mon, 3 Jun 2024 13:08:57 +0200 Subject: [PATCH 09/18] Added new article on voice assistants --- ...of-voice-assistant-integrations-in-2024.md | 1253 +++++++++++++++++ 1 file changed, 1253 insertions(+) create mode 100644 markdown/The-state-of-voice-assistant-integrations-in-2024.md diff --git a/markdown/The-state-of-voice-assistant-integrations-in-2024.md b/markdown/The-state-of-voice-assistant-integrations-in-2024.md new file mode 100644 index 0000000..dc6b2da --- /dev/null +++ b/markdown/The-state-of-voice-assistant-integrations-in-2024.md @@ -0,0 +1,1253 @@ +[//]: # (title: The state of voice assistant integrations in 2024) +[//]: # (description: How to use Platypush to build your voice assistants. Featuring Google, OpenAI and Picovoice.) +[//]: # (image: https://platypush-static.s3.nl-ams.scw.cloud/images/voice-assistant-2.png) +[//]: # (author: Fabio Manganiello <fabio@platypush.tech>) +[//]: # (published: 2024-06-02) + +Those who have been following my blog or used Platypush for a while probably +know that I've put quite some efforts to get voice assistants rights over the +past few years. + +I built my first (very primitive) voice assistant that used DCT+Markov models +[back in 2008](https://github.com/blacklight/Voxifera), when the concept was +still pretty much a science fiction novelty. + +Then I wrote [an article in +2019](https://blog.platypush.tech/article/Build-your-customizable-voice-assistant-with-Platypush) +and [one in +2020](https://blog.platypush.tech/article/Build-custom-voice-assistants) on how +to use several voice integrations in [Platypush](https://platypush.tech) to +create custom voice assistants. + +## Everyone in those pictures is now dead + +Quite a few things have changed in this industry niche since I wrote my +previous article. Most of the solutions that I covered back in the day, +unfortunately, are gone in a way or another: + +- The `assistant.snowboy` integration is gone because unfortunately [Snowboy is + gone](https://github.com/Kitt-AI/snowboy). For a while you could still run + the Snowboy code with models that either you had previously downloaded from + their website or trained yourself, but my latest experience proved to be + quite unfruitful - it's been more than 4 years since the last commit on + Snowboy, and it's hard to get the code to even run. + +- The `assistant.alexa` integration is also gone, as Amazon [has stopped + maintaining the AVS SDK](https://github.com/alexa/avs-device-sdk). And I have + literally no clue of what Amazon's plans with the development of Alexa skills + are (if there are any plans at all). + +- The `stt.deepspeech` integration is also gone: [the project hasn't seen a + commit in 3 years](https://github.com/mozilla/DeepSpeech) and I even + struggled to get the latest code to run. Given the current financial + situation at Mozilla, and the fact that they're trying to cut as much as + possible on what they don't consider part of their core product, it's + very unlikely that DeepSpeech will be revived any time soon. + +- The `assistant.google` integration [is still + there](https://docs.platypush.tech/platypush/plugins/assistant.google.html), + but I can't make promises on how long it can be maintained. It uses the + [`google-assistant-library`](https://pypi.org/project/google-assistant-library/), + which was [deprecated in + 2019](https://developers.google.com/assistant/sdk/release-notes). Google + replaced it with the [conversational + actions](https://developers.google.com/assistant/sdk/), which [was also + deprecated last year](https://developers.google.com/assistant/ca-sunset). + `<rant>`Put here your joke about Google building products with the shelf life + of a summer hit.`</rant>` + +- The `tts.mimic3` integration, a text model based on + [mimic3](https://github.com/MycroftAI/mimic3), part of the + [Mycroft](https://en.wikipedia.org/wiki/Mycroft_(software)) initiative, [is + still there](https://docs.platypush.tech/platypush/plugins/tts.mimic3.html), + but only because it's still possible to [spin up a Docker + image](https://hub.docker.com/r/mycroftai/mimic3) that runs mimic3. The whole + Mycroft project, however, [is now + defunct](https://community.openconversational.ai/t/update-from-the-ceo-part-1/13268), + and [the story of how it went + bankrupt](https://www.reuters.com/legal/transactional/appeals-court-says-judge-favored-patent-plaintiff-scorched-earth-case-2022-03-04/) + is a very sad story about the power that patent trolls have on startups. The + Mycroft initiative however seems to [have been picked up by the + community](https://community.openconversational.ai/), and something seems to + move in the space of fully open source and on-device voice models. I'll + definitely be looking with interest at what happens in that space, but the + project seems to be at a stage that is still a bit immature to justify an + investment into a new Platypush integration. + +## But not all hope is lost + +### `assistant.google` + +`assistant.google` may be relying on a dead library, but it's not dead (yet). +The code still works, but you're a bit constrained on the hardware side - the +assistant library only supports x86_64 and ARMv7 (namely, only Raspberry Pi 3 +and 4). No ARM64 (i.e. no Raspberry Pi 5), and even running it on other +ARMv7-compatible devices has proved to be a challenge in some cases. Given the +state of the library, it's safe to say that it'll never be supported on other +platforms, but if you want to run your assistant on a device that is still +supported then it should still work fine. + +I had however to do a few dirty packaging tricks to ensure that the assistant +library code doesn't break badly on newer versions of Python. That code hasn't +been touched in 5 years and it's starting to rot. It depends on ancient and +deprecated Python libraries like [`enum34`](https://pypi.org/project/enum34/) +and it needs some hammering to work - without breaking the whole Python +environment in the process. + +For now, `pip install 'platypush[assistant.google]'` should do all the dirty +work and get all of your assistant dependencies installed. But I can't promise +I can maintain that code forever. + +### `assistant.picovoice` + +Picovoice has been a nice surprise in an industry niche where all the +products that were available just 4 years ago are now dead. + +I described some of their products [in my previous +articles](https://blog.platypush.tech/article/Build-custom-voice-assistants), +and I even built a couple of `stt.picovoice.*` plugins for Platypush back in +the day, but I didn't really put much effort in it. + +Their business model seemed a bit weird - along the lines of "you can test our +products on x86_64, if you need an ARM build you should contact us as a +business partner". And the quality of their products was also a bit +disappointing compared to other mainstream offerings. + +I'm glad to see that the situation has changed quite a bit now. They still have +a "sign up with a business email" model, but at least now you can just sign up +on their website and start using their products rather than sending emails +around. And I'm also quite impressed to see the progress on their website. You +can now train hotword models, customize speech-to-text models and build your +own intent rules directly from their website - a feature that was also +available in the beloved Snowboy and that went missing from any major product +offerings out there after Snowboy was gone. I feel like the quality of their +models has also greatly improved compared to the last time I checked them - +predictions are still slower than the Google Assistant, definitely less +accurate with non-native accents, but the gap with the Google Assistant when it +comes to native accents isn't very wide. + +### `assistant.openai` + +OpenAI has filled many gaps left by all the casualties in the voice assistants +market. Platypush now provides a new `assistant.openai` plugin that stitches +together several of their APIs to provide a voice assistant experience that +honestly feels much more natural than anything I've tried in all these years. + +Let's explore how to use these integrations to build our on-device voice +assistant with custom rules. + +## Feature comparison + +As some of you may know, voice assistant often aren't monolithic products. +Unless explicitly designed as all-in-one packages (like the +`google-assistant-library`), voice assistant integrations in Platypush are +usually built on top of four distinct APIs: + +1. **Hotword detection**: This is the component that continuously listens on + your microphone until you speak "Ok Google", "Alexa" or any other wake-up + word used to start a conversation. Since it's a continuously listening + component that needs to take decisions fast, and it only has to recognize + one word (or in a few cases 3-4 more at most), it usually doesn't need to + run on a full language model. It needs small models, often a couple of MBs + heavy at most. + +2. **Speech-to-text** (*STT*): This is the component that will capture audio + from the microphone and use some API to transcribe it to text. + +3. **Response engine**: Once you have the transcription of what the user said, + you need to feed it to some model that will generate some human-like + response for the question. + +4. **Text-to-speech** (*TTS*): Once you have your AI response rendered as a + text string, you need a text-to-speech model to speak it out loud on your + speakers or headphones. + +On top of these basic building blocks for a voice assistant, some integrations +may also provide two extra features. + +#### Speech-to-intent + +In this mode, the user's prompt, instead of being transcribed directly to text, +is transcribed into a structured *intent* that can be more easily processed by +a downstream integration with no need for extra text parsing, regular +expressions etc. + +For instance, a voice command like "*turn off the bedroom lights*" could be +translated into an intent such as: + +```json +{ + "intent": "lights_ctrl", + "slots": { + "state": "off", + "lights": "bedroom" + } +} +``` + +#### Offline speech-to-text + +a.k.a. *offline text transcriptions*. Some assistant integrations may offer you +the ability to pass some audio file and transcribe their content as text. + +### Features summary + +This table summarizes how the `assistant` integrations available in Platypush +compare when it comes to what I would call the *foundational* blocks: + +| Plugin | Hotword | STT | AI responses | TTS | +| --------------------- | ------- | --- | ------------ | --- | +| `assistant.google` | ✅ | ✅ | ✅ | ✅ | +| `assistant.openai` | ❌ | ✅ | ✅ | ✅ | +| `assistant.picovoice` | ✅ | ✅ | ❌ | ✅ | + +And this is how they compare in terms of extra features: + +| Plugin | Intents | Offline SST | +| --------------------- | ------- | ------------| +| `assistant.google` | ❌ | ❌ | +| `assistant.openai` | ❌ | ✅ | +| `assistant.picovoice` | ✅ | ✅ | + +Let's see a few configuration examples to better understand the pros and cons +of each of these integrations. + +## Configuration + +### Hardware requirements + +1. A computer, a Raspberry Pi, an old tablet, or anything in between, as long + as it can run Python. At least 1GB of RAM is advised for smooth audio + processing experience. + +2. A microphone. + +3. Speaker/headphones. + +### Installation notes + +[Platypush +1.0.0](https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-0-0-2024-05-26) +has [recently been +released](https://blog.platypush.tech/article/Platypush-1.0-is-out), and [new +installation procedures](https://docs.platypush.tech/wiki/Installation.html) +with it. + +There's now official support for [several package +managers](https://docs.platypush.tech/wiki/Installation.html#system-package-manager-installation), +a better [Docker installation +process](https://docs.platypush.tech/wiki/Installation.html#docker), and more +powerful ways to [install +plugins](https://docs.platypush.tech/wiki/Plugins-installation.html) - via +[`pip` extras](https://docs.platypush.tech/wiki/Plugins-installation.html#pip), +[Web +interface](https://docs.platypush.tech/wiki/Plugins-installation.html#web-interface), +[Docker](https://docs.platypush.tech/wiki/Plugins-installation.html#docker) and +[virtual +environments](https://docs.platypush.tech/wiki/Plugins-installation.html#virtual-environment). + +The optional dependencies for any Platypush plugins can be installed via `pip` +extras in the simplest case: + +``` +$ pip install 'platypush[plugin1,plugin2,...]' +``` + +For example, if you want to install Platypush with the dependencies for +`assistant.openai` and `assistant.picovoice`: + +``` +$ pip install 'platypush[assistant.openai,assistant.picovoice]' +``` + +Some plugins however may require extra system dependencies that are not +available via `pip` - for instance, both the OpenAI and Picovoice integrations +require the `ffmpeg` binary to be installed, as it is used for audio +conversion and exporting purposes. You can check the [plugins +documentation](https://docs.platypush.tech) for any system dependencies +required by some integrations, or install them automatically through the Web +interface or the `platydock` command for Docker containers. + +### A note on the hooks + +All the custom actions in this article are built through event hooks triggered +by +[`SpeechRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.SpeechRecognizedEvent) +(or +[`IntentRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.IntentRecognizedEvent) +for intents). When an intent event is triggered, or a speech event with a +condition on a phrase, the `assistant` integrations in Platypush will prevent +the default assistant response. That's to avoid cases where e.g. you say "*turn +off the lights*", your hook takes care of running the actual action, while your +voice assistant fetches a response from Google or ChatGPT along the lines of +"*sorry, I can't control your lights*". + +If you want to render a custom response from an event hook, you can do so by +calling `event.assistant.render_response(text)`, and it will be spoken using +the available text-to-speech integration. + +If you want to disable this behaviour, and you want the default assistant +response to always be rendered, even if it matches a hook with a phrase or an +intent, you can do so by setting the `stop_conversation_on_speech_match` +parameter to `false` in your assistant plugin configuration. + +### Text-to-speech + +Each of the available `assistant` plugins has it own default `tts` plugin associated: + +- `assistant.google`: + [`tts`](https://docs.platypush.tech/platypush/plugins/tts.html), but + [`tts.google`](https://docs.platypush.tech/platypush/plugins/tts.google.html) + is also available. The difference is that `tts` uses the (unofficial) Google + Translate frontend API - it requires no extra configuration, but besides + setting the input language it isn't very configurable. `tts.google` on the + other hand uses the [Google Cloud Translation + API](https://cloud.google.com/translate/docs/reference/rest/). It is much + more versatile, but it requires an extra API registered to your Google + project and an extra credentials file. + +- `assistant.openai`: + [`tts.openai`](https://docs.platypush.tech/platypush/plugins/tts.openai.html), + which leverages the [OpenAI + text-to-speech API](https://platform.openai.com/docs/guides/text-to-speech). + +- `assistant.picovoice`: + [`tts.picovoice`](https://docs.platypush.tech/platypush/plugins/tts.picovoice.html), + which uses the (still experimental, at the time of writing) [Picovoice Orca + engine](https://github.com/Picovoice/orca). + +Any text rendered via `assistant*.render_response` will be rendered using the +associated TTS plugin. You can however customize it by setting `tts_plugin` on +your assistant plugin configuration - e.g. you can render responses from the +OpenAI assistant through the Google or Picovoice engine, or the other way +around. + +`tts` plugins also expose a `say` action that can be called outside of an +assistant context to render custom text at runtime - for example, from other +[event +hooks](https://docs.platypush.tech/wiki/Quickstart.html#turn-on-the-lights-when-i-say-so), +[procedures](https://docs.platypush.tech/wiki/Quickstart.html#greet-me-with-lights-and-music-when-i-come-home), +[cronjobs](https://docs.platypush.tech/wiki/Quickstart.html#turn-off-the-lights-at-1-am) +or [API calls](https://docs.platypush.tech/wiki/APIs.html). For example: + +```bash +$ curl -XPOST -H "Authorization: Bearer $TOKEN" -d ' +{ + "type": "request", + "action": "tts.openai.say", + "args": { + "text": "What a wonderful day!" + } +} +' http://localhost:8008/execute +``` + + +### `assistant.google` + +- [**Plugin documentation**](https://docs.platypush.tech/platypush/plugins/assistant.google.html) +- `pip` installation: `pip install 'platypush[assistant.google]'` + +This is the oldest voice integration in Platypush - and one of the use-cases +that actually motivated me into forking the [previous +project](https://github.com/blacklight/evesp) into what is now Platypush. + +As mentioned in the previous section, this integration is built on top of a +deprecated library (with no available alternatives) that just so happens to +still work with a bit of hammering on x86_64 and Raspberry Pi 3/4. + +Personally it's the voice assistant I still use on most of my devices, but it's +definitely not guaranteed that it will keep working in the future. + +Once you have installed Platypush with the dependencies for this integration, +you can configure it through these steps: + +1. Create a new project on the [Google developers + console](https://console.cloud.google.com) and [generate a new set of + credentials for it](https://console.cloud.google.com/apis/credentials). + Download the credentials secrets as JSON. +2. Generate [scoped + credentials](https://developers.google.com/assistant/sdk/guides/library/python/embed/install-sample#generate_credentials) + from your `secrets.json`. +3. Configure the integration in your `config.yaml` for Platypush (see the + [configuration + page](https://docs.platypush.tech/wiki/Configuration.html#configuration-file) + for more details): + +```yaml +assistant.google: + # Default: ~/.config/google-oauthlib-tool/credentials.json + # or <PLATYPUSH_WORKDIR>/credentials/google/assistant.json + credentials_file: /path/to/credentials.json + # Default: no sound is played when "Ok Google" is detected + conversation_start_sound: /path/to/sound.mp3 +``` + +Restart the service, say "Ok Google" or "Hey Google" while the microphone is +active, and everything should work out of the box. + +You can now start creating event hooks to execute your custom voice commands. +For example, if you configured a lights plugin (e.g. +[`light.hue`](https://docs.platypush.tech/platypush/plugins/light.hue.html)) +and a music plugin (e.g. +[`music.mopidy`](https://docs.platypush.tech/platypush/plugins/music.mopidy.html)), +you can start building voice commands like these: + +```python +# Content of e.g. /path/to/config_yaml/scripts/assistant.py + +from platypush import run, when +from platypush.events.assistant import ( + ConversationStartEvent, SpeechRecognizedEvent +) + +light_plugin = "light.hue" +music_plugin = "music.mopidy" + +@when(ConversationStartEvent) +def pause_music_when_conversation_starts(): + run(f"{music_plugin}.pause_if_playing") + +# Note: (limited) support for regular expressions on `phrase` +# This hook will match any phrase containing either "turn on the lights" +# or "turn off the lights" +@when(SpeechRecognizedEvent, phrase="turn on (the?) lights") +def lights_on_command(): + run(f"{light_plugin}.on") + # Or, with arguments: + # run(f"{light_plugin}.on", groups=["Bedroom"]) + +@when(SpeechRecognizedEvent, phrase="turn off (the?) lights") +def lights_off_command(): + run(f"{light_plugin}.off") + +@when(SpeechRecognizedEvent, phrase="play (the?) music") +def play_music_command(): + run(f"{music_plugin}.play") + +@when(SpeechRecognizedEvent, phrase="stop (the?) music") +def stop_music_command(): + run(f"{music_plugin}.stop") +``` + +Or, via YAML: + +```yaml +# Add to your config.yaml, or to one of the files included in it + +event.hook.pause_music_when_conversation_starts: + if: + type: platypush.message.event.ConversationStartEvent + + then: + - action: music.mopidy.pause_if_playing + +event.hook.lights_on_command: + if: + type: platypush.message.event.SpeechRecognizedEvent + phrase: "turn on (the)? lights" + + then: + - action: light.hue.on + # args: + # groups: + # - Bedroom + +event.hook.lights_off_command: + if: + type: platypush.message.event.SpeechRecognizedEvent + phrase: "turn off (the)? lights" + + then: + - action: light.hue.off + +event.hook.play_music_command: + if: + type: platypush.message.event.SpeechRecognizedEvent + phrase: "play (the)? music" + + then: + - action: music.mopidy.play + +event.hook.stop_music_command: + if: + type: platypush.message.event.SpeechRecognizedEvent + phrase: "stop (the)? music" + + then: + - action: music.mopidy.stop +``` + +Parameters are also supported on the `phrase` event argument through the `${}` template construct. For example: + +```python +from platypush import when, run +from platypush.events.assistant import SpeechRecognizedEvent + +@when(SpeechRecognizedEvent, phrase='play ${title} by ${artist}') +def on_play_track_command( + event: SpeechRecognizedEvent, title: str, artist: str +): + results = run( + "music.mopidy.search", + filter={"title": title, "artist": artist} + ) + + if not results: + event.assistant.render_response(f"Couldn't find {title} by {artist}") + return + + run("music.mopidy.play", resource=results[0]["uri"]) +``` + +#### Pros + +- 👍 Very fast and robust API. +- 👍 Easy to install and configure. +- 👍 It comes with almost all the features of a voice assistant installed on + Google hardware - except some actions native to Android-based devices and + video/display features. This means that features such as timers, alarms, + weather forecast, setting the volume or controlling Chromecasts on the same + network are all supported out of the box. +- 👍 It connects to your Google account (can be configured from your Google + settings), so things like location-based suggestions and calendar events are + available. Support for custom actions and devices configured in your Google + Home app is also available out of the box, although I haven't tested it in a + while. +- 👍 Good multi-language support. In most of the cases the assistant seems + quite capable of understanding questions in multiple language and respond in + the input language without any further configuration. + +#### Cons + +- 👎 Based on a deprecated API that could break at any moment. +- 👎 Limited hardware support (only x86_64 and RPi 3/4). +- 👎 Not possible to configure the hotword - only "Ok/Hey Google" is available. +- 👎 Not possible to configure the output voice - it can only use the stock + Google Assistant voice. +- 👎 No support for intents - something similar was available (albeit tricky to + configure) through the Actions SDK, but that has also been abandoned by + Google. +- 👎 Not very modular. Both `assistant.picovoice` and `assistant.openai` have + been built by stitching together different independent APIs. Those plugins + are therefore quite *modular*. You can choose for instance to run only the + hotword engine of `assistant.picovoice`, which in turn will trigger the + conversation engine of `assistant.openai`, and maybe use `tts.google` to + render the responses. By contrast, given the relatively monolithic nature of + `google-assistant-library`, which runs the whole service locally, if your + instance runs `assistant.google` then it can't run other assistant plugins. + +### `assistant.picovoice` + +- [**Plugin + documentation**](https://docs.platypush.tech/platypush/plugins/assistant.picovoice.html) +- `pip` installation: `pip install 'platypush[assistant.picovoice]'` + +The `assistant.picovoice` integration is available from [Platypush +1.0.0](https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-0-0-2024-05-26). + +Previous versions had some outdated `sst.picovoice.*` plugins for the +individual products, but they weren't properly tested and they weren't combined +together into a single integration that implements the Platypush' `assistant` +API. + +This integration is built on top of the voice products developed by +[Picovoice](https://picovoice.ai/). These include: + +- [**Porcupine**](https://picovoice.ai/platform/porcupine/): a fast and + customizable engine for hotword/wake-word detection. It can be enabled by + setting `hotword_enabled` to `true` in the `assistant.picovoice` plugin + configuration. + +- [**Cheetah**](https://picovoice.ai/docs/cheetah/): a speech-to-text engine + optimized for real-time transcriptions. It can be enabled by setting + `stt_enabled` to `true` in the `assistant.picovoice` plugin configuration. + +- [**Leopard**](https://picovoice.ai/docs/leopard/): a speech-to-text engine + optimized for offline transcriptions of audio files. + +- [**Rhino**](https://picovoice.ai/docs/rhino/): a speech-to-intent engine. + +- [**Orca**](https://picovoice.ai/docs/orca/): a text-to-speech engine. + +You can get your personal access key by signing up at the [Picovoice +console](https://console.picovoice.ai/). You may be asked to submit a reason +for using the service (feel free to mention a personal Platypush integration), +and you will receive your personal access key. + +If prompted to select the products you want to use, make sure to select +the ones from the Picovoice suite that you want to use with the +`assistant.picovoice` plugin. + +A basic plugin configuration would like this: + +```yaml +assistant.picovoice: + access_key: YOUR_ACCESS_KEY + + # Keywords that the assistant should listen for + keywords: + - alexa + - computer + - ok google + + # Paths to custom keyword files + # keyword_paths: + # - ~/.local/share/picovoice/keywords/linux/custom_linux.ppn + + # Enable/disable the hotword engine + hotword_enabled: true + # Enable the STT engine + stt_enabled: true + + # conversation_start_sound: ... + + # Path to a custom model to be used to speech-to-text + # speech_model_path: ~/.local/share/picovoice/models/cheetah/custom-en.pv + + # Path to an intent model. At least one custom intent model is required if + # you want to enable intent detection. + # intent_model_path: ~/.local/share/picovoice/models/rhino/custom-en-x86.rhn +``` + +#### Hotword detection + +If enabled through the `hotword_enabled` parameter (default: True), the +assistant will listen for a specific wake word before starting the +speech-to-text or intent recognition engines. You can specify custom models for +your hotword (e.g. on the same device you may use "Alexa" to trigger the +speech-to-text engine in English, "Computer" to trigger the speech-to-text +engine in Italian, and "Ok Google" to trigger the intent recognition engine). + +You can also create your custom hotword models using the [Porcupine +console](https://console.picovoice.ai/ppn). + +If `hotword_enabled` is set to True, you must also specify the `keywords` +parameter with the list of keywords that you want to listen for, and optionally +the `keyword_paths` parameter with the paths to the any custom hotword models +that you want to use. If `hotword_enabled` is set to False, then the assistant +won't start listening for speech after the plugin is started, and you will need +to programmatically start the conversation by calling the +`assistant.picovoice.start_conversation` action. + +When a wake-word is detected, the assistant will emit a +[`HotwordDetectedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.HotwordDetectedEvent) +that you can use to build your custom logic. + +By default, the assistant will start listening for speech after the hotword if +either `stt_enabled` or `intent_model_path` are set. If you don't want the +assistant to start listening for speech after the hotword is detected (for +example because you want to build your custom response flows, or trigger the +speech detection using different models depending on the hotword that is used, +or because you just want to detect hotwords but not speech), then you can also +set the `start_conversation_on_hotword` parameter to `false`. If that is the +case, then you can programmatically start the conversation by calling the +`assistant.picovoice.start_conversation` method in your event hooks: + +```python +from platypush import when, run +from platypush.message.event.assistant import HotwordDetectedEvent + +# Start a conversation using the Italian language model when the +# "Buongiorno" hotword is detected +@when(HotwordDetectedEvent, hotword='Buongiorno') +def on_it_hotword_detected(event: HotwordDetectedEvent): + event.assistant.start_conversation(model_file='path/to/it.pv') +``` + +#### Speech-to-text + +If you want to build your custom STT hooks, the approach is the same seen for +the `assistant.google` plugins - create an event hook on +[`SpeechRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.SpeechRecognizedEvent) +with a given exact phrase, regex or template. + +#### Speech-to-intent + + +*Intents* are structured actions parsed from unstructured human-readable text. + +Unlike with hotword and speech-to-text detection, you need to provide a +custom model for intent detection. You can create your custom model using +the [Rhino console](https://console.picovoice.ai/rhn). + +When an intent is detected, the assistant will emit an +[`IntentRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.IntentRecognizedEvent) +and you can build your custom hooks on it. + +For example, you can build a model to control groups of smart lights by +defining the following slots on the Rhino console: + +- ``device_state``: The new state of the device (e.g. with ``on`` or + ``off`` as supported values) + +- ``room``: The name of the room associated to the group of lights to + be controlled (e.g. ``living room``, ``kitchen``, ``bedroom``) + +You can then define a ``lights_ctrl`` intent with the following expressions: + +- "*turn ``$device_state:state`` the lights*" +- "*turn ``$device_state:state`` the ``$room:room`` lights*" +- "*turn the lights ``$device_state:state``*" +- "*turn the ``$room:room`` lights ``$device_state:state``*" +- "*turn ``$room:room`` lights ``$device_state:state``*" + +This intent will match any of the following phrases: + +- "*turn on the lights*" +- "*turn off the lights*" +- "*turn the lights on*" +- "*turn the lights off*" +- "*turn on the living room lights*" +- "*turn off the living room lights*" +- "*turn the living room lights on*" +- "*turn the living room lights off*" + +And it will extract any slots that are matched in the phrases in the +[`IntentRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.IntentRecognizedEvent). + +Train the model, download the context file, and pass the path on the +``intent_model_path`` parameter. + +You can then register a hook to listen to a specific intent: + +```python +from platypush import when, run +from platypush.events.assistant import IntentRecognizedEvent + +@when(IntentRecognizedEvent, intent='lights_ctrl', slots={'state': 'on'}) +def on_turn_on_lights(event: IntentRecognizedEvent): + room = event.slots.get('room') + if room: + run("light.hue.on", groups=[room]) + else: + run("light.hue.on") +``` + +Note that if both `stt_enabled` and `intent_model_path` are set, then +both the speech-to-text and intent recognition engines will run in parallel +when a conversation is started. + +The intent engine is usually faster, as it has a smaller set of intents to +match and doesn't have to run a full speech-to-text transcription. This means that, +if an utterance matches both a speech-to-text phrase and an intent, the +`IntentRecognizedEvent` event is emitted (and not `SpeechRecognizedEvent`). + +This may not be always the case though. So, if you want to use the intent +detection engine together with the speech detection, it may be a good practice +to also provide a fallback `SpeechRecognizedEvent` hook to catch the text if +the speech is not recognized as an intent: + +```python +from platypush import when, run +from platypush.events.assistant import SpeechRecognizedEvent + +@when(SpeechRecognizedEvent, phrase='turn ${state} (the)? ${room} lights?') +def on_turn_on_lights(event: SpeechRecognizedEvent, phrase, room, **context): + if room: + run("light.hue.on", groups=[room]) + else: + run("light.hue.on") +``` + +#### Text-to-speech and response management + +The text-to-speech engine, based on Orca, is provided by the +[`tts.picovoice`](https://docs.platypush.tech/platypush/plugins/tts.picovoice.html) +plugin. + +However, the Picovoice integration won't provide you with automatic +AI-generated responses for your queries. That's because Picovoice doesn't seem +to offer (yet) any products for conversational assistants, either voice-based +or text-based. + +You can however leverage the `render_response` action to render some text as +speech in response to a user command, and that in turn will leverage the +Picovoice TTS plugin to render the response. + +For example, the following snippet provides a hook that: + +- Listens for `SpeechRecognizedEvent`. + +- Matches the phrase against a list of predefined commands that shouldn't + require an AI-generated response. + +- Has a fallback logic that leverages `openai.get_response` to generate a + response through a ChatGPT model and render it as audio. + +Also, note that any text rendered over the `render_response` action that ends +with a question mark will automatically trigger a follow-up - i.e. the +assistant will wait for the user to answer its question. + +```python +import re + +from platypush import hook, run +from platypush.message.event.assistant import SpeechRecognizedEvent + +def play_music(): + run("music.mopidy.play") + +def stop_music(): + run("music.mopidy.stop") + +def ai_assist(event: SpeechRecognizedEvent): + response = run("openai.get_response", prompt=event.phrase) + if not response: + return + + run("assistant.picovoice.render_response", text=response) + +# List of commands to match, as pairs of regex patterns and the +# corresponding actions +hooks = ( + (re.compile(r"play (the)?music", re.IGNORECASE), play_music), + (re.compile(r"stop (the)?music", re.IGNORECASE), stop_music), + # Fallback to the AI assistant + (re.compile(r".*"), ai_assist), +) + +@when(SpeechRecognizedEvent) +def on_speech_recognized(event, **kwargs): + for pattern, command in hooks: + if pattern.search(event.phrase): + run("logger.info", msg=f"Running voice command: {command.__name__}") + command(event, **kwargs) + break +``` + +#### Offline speech-to-text + +An [`assistant.picovoice.transcribe` +action](https://docs.platypush.tech/platypush/plugins/assistant.picovoice.html#platypush.plugins.assistant.picovoice.AssistantPicovoicePlugin.transcribe) +is provided for offline transcriptions of audio files, using the Leopard +models. + +You can easily call it from your procedures, hooks or through the API: + +```bash +$ curl -XPOST -H "Authorization: Bearer $TOKEN" -d ' +{ + "type": "request", + "action": "assistant.picovoice.transcribe", + "args": { + "audio_file": "/path/to/some/speech.mp3" + } +}' http://localhost:8008/execute + +{ + "transcription": "This is a test", + "words": [ + { + "word": "this", + "start": 0.06400000303983688, + "end": 0.19200000166893005, + "confidence": 0.9626294374465942 + }, + { + "word": "is", + "start": 0.2879999876022339, + "end": 0.35199999809265137, + "confidence": 0.9781675934791565 + }, + { + "word": "a", + "start": 0.41600000858306885, + "end": 0.41600000858306885, + "confidence": 0.9764975309371948 + }, + { + "word": "test", + "start": 0.5120000243186951, + "end": 0.8320000171661377, + "confidence": 0.9511580467224121 + } + ] +} +``` + +#### Pros + +- 👍 The Picovoice integration is extremely configurable. `assistant.picovoice` + stitches together five independent products developed by a small company + specialized in voice products for developers. As such, Picovoice may be the + best option if you have custom use-cases. You can pick which features you + need (hotword, speech-to-text, speech-to-intent, text-to-speech...) and you + have plenty of flexibility in building your integrations. + +- 👍 Runs (or seems to run) (mostly) on device. This is something that we can't + say about the other two integrations discussed in this article. If keeping + your voice interactions 100% hidden from Google's or Microsoft's eyes is a + priority, then Picovoice may be your best bet. + +- 👍 Rich features. It uses different models for different purposes - for + example, Cheetah models are optimized for real-time speech detection, while + Leopard is optimized for offline transcription. Moreover, Picovoice is the + only integration among those analyzed in this article to support + speech-to-intent. + +- 👍 It's very easy to build new models or customize existing ones. Picovoice + has a powerful developers console that allows you to easily create hotword + models, tweak the priority of some words in voice models, and create custom + intent models. + +#### Cons + +- 👎 The business model is still a bit weird. It's better than the earlier + "*write us an email with your business case and we'll reach back to you*", + but it still requires you to sign up with a business email and write a couple + of lines on what you want to build with their products. It feels like their + focus is on a B2B approach rather than "open up and let the community build + stuff", and that seems to create unnecessary friction. + +- 👎 No native conversational features. At the time of writing, Picovoice + doesn't offer products that generate AI responses given voice or text + prompts. This means that, if you want AI-generated responses to your queries, + you'll have to do requests to e.g. + [`openai.get_response(prompt)`](https://docs.platypush.tech/platypush/plugins/openai.html#platypush.plugins.openai.OpenaiPlugin.get_response) + directly in your hooks for `SpeechRecognizedEvent`, and render the responses + through `assistant.picovoice.render_response`. This makes the use of + `assistant.picovoice` alone more fit to cases where you want to mostly create + voice command hooks rather than have general-purpose conversations. + +- 👎 Speech-to-text, at least on my machine, is slower than the other two + integrations, and the accuracy with non-native accents is also much lower. + +- 👎 Limited support for any languages other than English. At the time of + writing hotword detection with Porcupine seems to be in a relative good shape + with [support for 16 + languages](https://github.com/Picovoice/porcupine/tree/master/lib/common). + However, both speech-to-text and text-to-speech only support English at the + moment. + +- 👎 Some APIs are still quite unstable. The Orca text-to-speech API, for + example, doesn't even support text that includes digits or some punctuation + characters - at least not at the time of writing. The Platypush integration + fills the gap with workarounds that e.g. replace words to numbers and replace + punctuation characters, but you definitely have a feeling that some parts of + their products are still work in progress. + +### `assistant.openai` + +- [**Plugin + documentation**](https://docs.platypush.tech/platypush/plugins/assistant.openai.html) +- `pip` installation: `pip install 'platypush[assistant.openai]'` + +This integration has been released in [Platypush +1.0.7](https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-0-7-2024-06-02). + +It uses the following OpenAI APIs: + +- [`/audio/transcriptions`](https://platform.openai.com/docs/guides/speech-to-text) + for speech-to-text. At the time of writing the default model is `whisper-1`. + It can be configured through the `model` setting on the `assistant.openai` + plugin configuration. See the [OpenAI + documentation](https://platform.openai.com/docs/models/whisper) for a list of + available models. +- [`/chat/completions`](https://platform.openai.com/docs/api-reference/completions/create) + to get AI-generated responses using a GPT model. At the time of writing the + default is `gpt-3.5-turbo`, but it can be configurable through the `model` + setting on the `openai` plugin configuration. See the [OpenAI + documentation](https://platform.openai.com/docs/models) for a list of supported models. +- [`/audio/speech`](https://platform.openai.com/docs/guides/text-to-speech) for + text-to-speech. At the time of writing the default model is `tts-1` and the + default voice is `nova`. They can be configured through the `model` and + `voice` settings respectively on the `tts.openai` plugin. See the OpenAI + documentation for a list of available + [models](https://platform.openai.com/docs/models/tts) and + [voices](https://platform.openai.com/docs/guides/text-to-speech/voice-options). + +You will need an [OpenAI API key](https://platform.openai.com/api-keys) +associated to your account. + +A basic configuration would like this: + +```yaml +openai: + api_key: YOUR_OPENAI_API_KEY # Required + # conversation_start_sound: ... + # model: ... + # context: ... + # context_expiry: ... + # max_tokens: ... + +assistant.openai: + # model: ... + # tts_plugin: some.other.tts.plugin + +tts.openai: + # model: ... + # voice: ... +``` + +If you want to build your custom hooks on speech events, the approach is the +same seen for the other `assistant` plugins - create an event hook on +[`SpeechRecognizedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.SpeechRecognizedEvent) +with a given exact phrase, regex or template. + +#### Hotword support + +OpenAI doesn't provide an API for hotword detection, nor a small model for +offline detection. + +This means that, if no other `assistant` plugins with stand-alone hotword +support are configured (only `assistant.picovoice` for now), a conversation can +only be triggered by calling the `assistant.openai.start_conversation` action. + +If you want hotword support, then the best bet is to add `assistant.picovoice` +to your configuration too - but make sure to only enable hotword detection and +not speech detection, which will be delegated to `assistant.openai` via event +hook: + +```yaml +assistant.picovoice: + access_key: ... + keywords: + - computer + + hotword_enabled: true + stt_enabled: false + # conversation_start_sound: ... +``` + +Then create a hook that listens for +[`HotwordDetectedEvent`](https://docs.platypush.tech/platypush/events/assistant.html#platypush.message.event.assistant.HotwordDetectedEvent) +and calls `assistant.openai.start_conversation`: + +```python +from platypush import run, when +from platypush.events.assistant import HotwordDetectedEvent + +@when(HotwordDetectedEvent, hotword="computer") +def on_hotword_detected(): + run("assistant.openai.start_conversation") +``` + +#### Conversation contexts + +The most powerful feature offered by the OpenAI assistant is the fact that it +leverages the *conversation contexts* provided by the OpenAI API. + +This means two things: + +1. Your assistant can be initialized/tuned with a *static context*. It is + possible to provide some initialization context to the assistant that can + fine tune how the assistant will behave, (e.g. what kind of + tone/language/approach will have when generating the responses), as well as + initialize the assistant with some predefined knowledge in the form of + hypothetical past conversations. Example: + + ```yaml + openai: + ... + + context: + # `system` can be used to initialize the context for the expected tone + # and language in the assistant responses + - role: system + content: > + You are a voice assistant that responds to user queries using + references to Lovecraftian lore. + + # `user`/`assistant` interactions can be used to initialize the + # conversation context with previous knowledge. `user` is used to + # emulate previous user questions, and `assistant` models the + # expected response. + - role: user + content: What is a telephone? + - role: assistant + content: > + A Cthulhuian device that allows you to communicate with + otherworldly beings. It is said that the first telephone was + created by the Great Old Ones themselves, and that it is a + gateway to the void beyond the stars. + ``` + + If you now start Platypush and ask a question like "*how does it work?*", + the voice assistant may give a response along the lines of: + + ``` + The telephone functions by harnessing the eldritch energies of the cosmos to + transmit vibrations through the ether, allowing communication across vast + distances with entities from beyond the veil. Its operation is shrouded in + mystery, for it relies on arcane principles incomprehensible to mortal + minds. + ``` + + Note that: + + 1. The style of the response is consistent with that initialized in the + `context` through `system` roles. + + 2. Even though a question like "*how does it work?*" is not very specific, + the assistant treats the `user`/`assistant` entries given in the context + as if they were the latest conversation prompts. Thus it realizes that + "*it*", in this context, probably means "*the telephone*". + +2. The assistant has a *runtime context*. It will remember the recent + conversations for a given amount of time (configurable through the + `context_expiry` setting on the `openai` plugin configuration). So, even + without explicit context initialization in the `openai` plugin, the plugin + will remember the last interactions for (by default) 10 minutes. So if you + ask "*who wrote the Divine Comedy?*", and a few seconds later you ask + "*where was its writer from?*", you may get a response like "*Florence, + Italy*" - i.e. the assistant realizes that "*the writer*" in this context is + likely to mean "*the writer of the work that I was asked about in the + previous interaction*" and return pertinent information. + +#### Pros + +- 👍 Speech detection quality. The OpenAI speech-to-text features are the best + among the available `assistant` integrations. The `transcribe` API so far has + detected my non-native English accent right nearly 100% of the times (Google + comes close to 90%, while Picovoice trails quite behind). And it even detects + the speech of my young kid - something that the Google Assistant library has + always failed to do right. + +- 👍 Text-to-speech quality. The voice models used by OpenAI sound much more + natural and human than those of both Google and Picovoice. Google's and + Picovoice's TTS models are actually already quite solid, but OpenAI + outclasses them when it comes to voice modulation, inflections and sentiment. + The result sounds intimidatingly realistic. + +- 👍 AI responses quality. While the scope of the Google Assistant is somewhat + limited by what people expected from voice assistants until a few years ago + (control some devices and gadgets, find my phone, tell me the news/weather, + do basic Google searches...), usually without much room for follow-ups, + `assistant.openai` will basically render voice responses as if you were + typing them directly to ChatGPT. While Google would often respond you with a + "*sorry, I don't understand*", or "*sorry, I can't help with that*", the + OpenAI assistant is more likely to expose its reasoning, ask follow-up + questions to refine its understanding, and in general create a much more + realistic conversation. + +- 👍 Contexts. They are an extremely powerful way to initialize your assistant + and customize it to speak the way you want, and know the kind of things that + you want it to know. Cross-conversation contexts with configurable expiry + also make it more natural to ask something, get an answer, and then ask + another question about the same topic a few seconds later, without having to + reintroduce the assistant to the whole context. + +- 👍 Offline transcriptions available through the `openai.transcribe` action. + +- 👍 Multi-language support seems to work great out of the box. Ask something + to the assistant in any language, and it'll give you a response in that + language. + +- 👍 Configurable voices and models. + +#### Cons + +- 👎 The full pack of features is only available if you have an API key + associated to a paid OpenAI account. + +- 👎 No hotword support. It relies on `assistant.picovoice` for hotword + detection. + +- 👎 No intents support. + +- 👎 No native support for weather forecast, alarms, timers, integrations with + other services/devices nor other features available out of the box with the + Google Assistant. You can always create hooks for them though. + +### Weather forecast example + +Both the OpenAI and Picovoice integrations lack some features available out of +the box on the Google Assistant - weather forecast, news playback, timers etc. - +as they rely on voice-only APIs that by default don't connect to other services. + +However Platypush provides many plugins to fill those gaps, and those features +can be implemented with custom event hooks. + +Let's see for example how to build a simple hook that delivers the weather +forecast for the next 24 hours whenever the assistant gets a phrase that +contains the "*weather today*" string. + +You'll need to enable a `weather` plugin in Platypush - +[`weather.openweathermap`](https://docs.platypush.tech/platypush/plugins/weather.openweathermap.html) +will be used in this example. Configuration: + +```yaml +weather.openweathermap: + token: OPENWEATHERMAP_API_KEY + location: London,GB +``` + +Then drop a script named e.g. `weather.py` in the Platypush scripts directory +(default: `<CONFDIR>/scripts`) with the following content: + +```python +from datetime import datetime +from textwrap import dedent +from time import time + +from platypush import run, when +from platypush.events.assistant import SpeechRecognizedEvent + +@when(SpeechRecognizedEvent, phrase='weather today') +def weather_forecast(event: SpeechRecognizedEvent): + limit = time() + 24 * 60 * 60 # 24 hours from now + forecast = [ + weather + for weather in run("weather.openweathermap.get_forecast") + if datetime.fromisoformat(weather["time"]).timestamp() < limit + ] + + min_temp = round( + min(weather["temperature"] for weather in forecast) + ) + max_temp = round( + max(weather["temperature"] for weather in forecast) + ) + max_wind_gust = round( + (max(weather["wind_gust"] for weather in forecast)) * 3.6 + ) + summaries = [weather["summary"] for weather in forecast] + most_common_summary = max(summaries, key=summaries.count) + avg_cloud_cover = round( + sum(weather["cloud_cover"] for weather in forecast) / len(forecast) + ) + + event.assistant.render_response( + dedent( + f""" + The forecast for today is: {most_common_summary}, with + a minimum of {min_temp} and a maximum of {max_temp} + degrees, wind gust of {max_wind_gust} km/h, and an + average cloud cover of {avg_cloud_cover}%. + """ + ) + ) +``` + +This script will work with any of the available voice assistants. + +You can also implement something similar for news playback, for example using +the [`rss` plugin](https://docs.platypush.tech/platypush/plugins/rss.html) to +get the latest items in your subscribed feeds. Or to create custom alarms using +the [`alarm` plugin](https://docs.platypush.tech/platypush/plugins/alarm.html), +or a timer using the [`utils.set_timeout` +action](https://docs.platypush.tech/platypush/plugins/utils.html#platypush.plugins.utils.UtilsPlugin.set_timeout). + +## Conclusions + +The past few years have seen a lot of things happen in the voice industry. +Many products have gone out of market, been deprecated or sunset, but not all +hope is lost. The OpenAI and Picovoice products, especially when combined +together, can still provide a good out-of-the-box voice assistant experience. +And the OpenAI products have also raised the bar on what to expect from an +AI-based assistant. + +I wish that there were still some fully open and on-device alternatives out +there, now that Mycroft, Snowboy and DeepSpeech are all gone. OpenAI and Google +provide the best voice experience as of now, but of course they come with +trade-offs - namely the great amount of data points you feed to these +cloud-based services. Picovoice is somewhat a trade-off, as it runs at least +partly on-device, but their business model is still a bit fuzzy and it's not +clear whether they intend to have their products used by the wider public or if +it's mostly B2B. + +I'll keep an eye however on what is going to come from the ashes of Mycroft +under the form of the +[OpenConversational](https://community.openconversational.ai/) project, and +probably keep you up-to-date when there is a new integration to share. From 9ce776edfaf579fc04b02445cafa33f0cbdd13b4 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Mon, 3 Jun 2024 15:22:43 +0200 Subject: [PATCH 10/18] Fixed code typo --- .../The-state-of-voice-assistant-integrations-in-2024.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/markdown/The-state-of-voice-assistant-integrations-in-2024.md b/markdown/The-state-of-voice-assistant-integrations-in-2024.md index dc6b2da..d1a4c40 100644 --- a/markdown/The-state-of-voice-assistant-integrations-in-2024.md +++ b/markdown/The-state-of-voice-assistant-integrations-in-2024.md @@ -411,21 +411,21 @@ def pause_music_when_conversation_starts(): # Note: (limited) support for regular expressions on `phrase` # This hook will match any phrase containing either "turn on the lights" # or "turn off the lights" -@when(SpeechRecognizedEvent, phrase="turn on (the?) lights") +@when(SpeechRecognizedEvent, phrase="turn on (the)? lights") def lights_on_command(): run(f"{light_plugin}.on") # Or, with arguments: # run(f"{light_plugin}.on", groups=["Bedroom"]) -@when(SpeechRecognizedEvent, phrase="turn off (the?) lights") +@when(SpeechRecognizedEvent, phrase="turn off (the)? lights") def lights_off_command(): run(f"{light_plugin}.off") -@when(SpeechRecognizedEvent, phrase="play (the?) music") +@when(SpeechRecognizedEvent, phrase="play (the)? music") def play_music_command(): run(f"{music_plugin}.play") -@when(SpeechRecognizedEvent, phrase="stop (the?) music") +@when(SpeechRecognizedEvent, phrase="stop (the)? music") def stop_music_command(): run(f"{music_plugin}.stop") ``` From 3b7bdda990a735561b83199d6be970c78d035e89 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Mon, 3 Jun 2024 16:43:36 +0200 Subject: [PATCH 11/18] Minor fixes --- ...of-voice-assistant-integrations-in-2024.md | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/markdown/The-state-of-voice-assistant-integrations-in-2024.md b/markdown/The-state-of-voice-assistant-integrations-in-2024.md index d1a4c40..3170262 100644 --- a/markdown/The-state-of-voice-assistant-integrations-in-2024.md +++ b/markdown/The-state-of-voice-assistant-integrations-in-2024.md @@ -803,6 +803,7 @@ def ai_assist(event: SpeechRecognizedEvent): hooks = ( (re.compile(r"play (the)?music", re.IGNORECASE), play_music), (re.compile(r"stop (the)?music", re.IGNORECASE), stop_music), + # ... # Fallback to the AI assistant (re.compile(r".*"), ai_assist), ) @@ -1037,31 +1038,31 @@ This means two things: initialize the assistant with some predefined knowledge in the form of hypothetical past conversations. Example: - ```yaml - openai: - ... +```yaml +openai: + ... - context: - # `system` can be used to initialize the context for the expected tone - # and language in the assistant responses - - role: system - content: > - You are a voice assistant that responds to user queries using - references to Lovecraftian lore. + context: + # `system` can be used to initialize the context for the expected tone + # and language in the assistant responses + - role: system + content: > + You are a voice assistant that responds to user queries using + references to Lovecraftian lore. - # `user`/`assistant` interactions can be used to initialize the - # conversation context with previous knowledge. `user` is used to - # emulate previous user questions, and `assistant` models the - # expected response. - - role: user - content: What is a telephone? - - role: assistant - content: > - A Cthulhuian device that allows you to communicate with - otherworldly beings. It is said that the first telephone was - created by the Great Old Ones themselves, and that it is a - gateway to the void beyond the stars. - ``` + # `user`/`assistant` interactions can be used to initialize the + # conversation context with previous knowledge. `user` is used to + # emulate previous user questions, and `assistant` models the + # expected response. + - role: user + content: What is a telephone? + - role: assistant + content: > + A Cthulhuian device that allows you to communicate with + otherworldly beings. It is said that the first telephone was + created by the Great Old Ones themselves, and that it is a + gateway to the void beyond the stars. +``` If you now start Platypush and ask a question like "*how does it work?*", the voice assistant may give a response along the lines of: From afa98c590d8673bd9f8875f323014b243132d3c0 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Mon, 3 Jun 2024 16:44:07 +0200 Subject: [PATCH 12/18] Minor fixes --- markdown/The-state-of-voice-assistant-integrations-in-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/markdown/The-state-of-voice-assistant-integrations-in-2024.md b/markdown/The-state-of-voice-assistant-integrations-in-2024.md index 3170262..4f750a0 100644 --- a/markdown/The-state-of-voice-assistant-integrations-in-2024.md +++ b/markdown/The-state-of-voice-assistant-integrations-in-2024.md @@ -1040,7 +1040,7 @@ This means two things: ```yaml openai: - ... + # ... context: # `system` can be used to initialize the context for the expected tone From 631f47fe48d149f2d424565e577881647fa43627 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Sun, 18 Aug 2024 22:30:31 +0200 Subject: [PATCH 13/18] Added new media article --- markdown/Play-all-media-everywhere.md | 79 +++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 markdown/Play-all-media-everywhere.md diff --git a/markdown/Play-all-media-everywhere.md b/markdown/Play-all-media-everywhere.md new file mode 100644 index 0000000..90a4024 --- /dev/null +++ b/markdown/Play-all-media-everywhere.md @@ -0,0 +1,79 @@ +[//]: # (title: Play all media, everywhere) +[//]: # (description: Use Platypush to watch YouTube, Facebook and more on your favourite media player.) +[//]: # (image: https://platypush-static.s3.nl-ams.scw.cloud/images/media-ui-1.png) +[//]: # (author: Fabio Manganiello <fabio@platypush.tech>) +[//]: # (published: 2024-08-18) + +Platypush 1.2.3 [is +out](https://git.platypush.tech/platypush/platypush/src/branch/master/CHANGELOG.md#1-2-3), +and the main focus of this release is on the #media side. + +In particular, Platypush now supports streaming/playing/downloading any media +compatible with youtube-dl / yt-dlp, even if the upstream audio/video files are +split - yay! + +This means that it's again compatible with #YouTube URLs (the integration broke +recently after YouTube migrated all of its media to split video+audio tracks), +and a lot of other sources that have been using this practice for a while - +Facebook, Instagram, X, TikTok etc. + +It means that you can play anything that yt-dlp can digest to any supported +media plugin - VLC, mpv, mplayer, gstreamer, Kodi or Chromecast/Miracast. + +Note however that mileage may vary depending on the player. + +Things work fine out of the box if you use `media.mpv`. MPV comes with native +youtube-dl support, and the right stuff will be used to play the video smoothly +if youtube-dl or yt-dlp are present on the system. + +[`media.vlc`](https://docs.platypush.tech/platypush/plugins/media.mpv.html) and +[`media.gstreamer`](https://docs.platypush.tech/platypush/plugins/media.gstreamer.html) +now provide two different play modes for YouTube-compatible content: _play on +the fly_ and _play with cache_. In play-on-the-fly mode (default) audio and +video content will be mixed on the fly over ffmpeg and piped to the player +process. This means shorter load times, it's a good fit for live streams and +large files, but it also means potentially lower media quality, high chances of +media jitters in case of gaps in the stream being transcoded, and reduced +ability to seek through the media. In play-with-cache mode the transcoded +content will be cached to disk instead. It means waiting a bit longer for the +video to load, and higher disk usage in case of large streams, but also a more +robust and smooth playback experience. + + + +However I'm investigating a way to pass both an audio and a video URLs to +GStreamer (it doesn't seem to be easily feasible with VLC), so the player can +do its own tuned mixed playback without me having to reinvent the wheel. If I +can sort it out, and manage to avoid big audio offsets in the playback process, +then this could be the default mode for GStreamer. + +[`media.mplayer`](https://docs.platypush.tech/platypush/plugins/media.mplayer.html) +only supports play-with-cache mode. The plugin already uses the player's stdin +to communicate commands, and AFAIK MPlayer doesn't support sending both +commands and media bytes to the player. Same goes for +[`media.kodi`](https://docs.platypush.tech/platypush/plugins/media.kodi.html). + +[`media.chromecast`](https://docs.platypush.tech/platypush/plugins/media.chromecast.html) +mileage may vary depending on the model of Chromecast. I haven't had much luck +playing audio+video simultaneously when Platypush streams YouTube content to +1st-gen Chromecasts because the new video codecs used by YouTube videos +apparently aren't available on those devices. I've had mixed results by forcing +the container to transcode the video track to H264 (and that is also the new +default configuration for `ytdl_args` for the `media.chromecast` integration), +but there's still a 50/50 chance that the Chromecast will only play the audio. +I've had better luck with more recent Chromecast models though. And I believe +that things should work just fine if you use any modern +Miracast/DLNA-compatible device/dongle. Given the deprecation status of the +Chromecast, and the dubious compatibility with whatever the Google TV folks are +planning next, I'm not even sure if it's worth investing further energies in +for the Chromecast compatibility. `media.chromecast` now also provides a +`use_ytdl` configuration flag - it's set to true by default, but you can +disable if you want to stream YouTube/Facebook/TikTok etc. URLs to your +Chromecast bypassing the Platypush streaming service. This means higher chances +that the content will play fine, but it also means that it'll be played by +whatever compatible app (if available) runs on your Chromecast (i.e. +ads/tracking/account limitations/geo limitations etc.). + +Stay tuned! From f45e64e933c67e2c695c54bf9e22fa045791d53f Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Thu, 5 Jun 2025 11:30:43 +0200 Subject: [PATCH 14/18] Added temporary article content --- markdown/Read-and-archive-everything.md | 505 ++++++++++++++++++++++++ 1 file changed, 505 insertions(+) create mode 100644 markdown/Read-and-archive-everything.md diff --git a/markdown/Read-and-archive-everything.md b/markdown/Read-and-archive-everything.md new file mode 100644 index 0000000..bf1c918 --- /dev/null +++ b/markdown/Read-and-archive-everything.md @@ -0,0 +1,505 @@ +[//]: # (title: Read and archive everything) +[//]: # (description: Bypass client-side restrictions on news and blog articles, archive them and read them wherever you want) +[//]: # (image: /img/twitter2mastodon.png) +[//]: # (author: Fabio Manganiello <fabio@manganiello.tech>) +[//]: # (published: 2025-06-04) + +I've always been an avid book reader as a kid. + +I liked the smell of the paper, the feeling of turning the pages, and the +ability to read anywhere I wanted. + +As I grew and chose a career in tech and a digital-savvy lifestyle, I started +to shift my consumption from the paper to the screen. But I *still* wanted the +same feeling of a paper book, the same freedom of reading wherever I wanted. + +I was an early support of the Amazon Kindle idea, I quickly moved most of my +physical books to the Kindle, I became a vocal supported of online magazines +that also provided Kindle subscriptions, and I started to read more and more on +e-ink devices. + +Then I noticed that, after an initial spike, not many magazines and blogs +provided Kindle subscriptions or EPub versions of their articles. + +So nevermind - I started tinkering my way out of it and [wrote an article in +2019](https://blog.platypush.tech/article/Deliver-articles-to-your-favourite-e-reader-using-Platypush) +on how to use [Platypush](https://platypush.tech) with its [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html), +[`instapaper`](https://docs.platypush.tech/platypush/plugins/instapaper.html) and +[`gmail`](https://docs.platypush.tech/platypush/plugins/google.mail.html) +plugins to subscribe to RSS feeds, parse new articles, convert them to PDF and +deliver them to my Kindle. + +Later I moved from Kindle to the first version of the +[Mobiscribe](https://www.mobiscribe.com), as Amazon started to be more and more +restrictive in its option to import and export stuff out of the Kindle, using +Calibre and some DRM removal tools to export articles or books I had regularly +purchased was becoming more cumbersome, and the Mobiscribe at that time was an +interesting option because it offered a decent e-ink device, for a decent +price, and it ran Android (an ancient version, but at least one that was +sufficient to run [Instapaper](https://instapaper.com) and +[KOReader](https://koreader.rocks)). + +That simplified things a bit because I didn't need intermediary delivery via +email to get stuff on my Kindle or Calibre to try and pull things out of it. I +was using Instapaper on all of my devices, included the Mobiscribe, I could +easily scrape and push articles to it through Platypush, and I could easily +keep track of my reading state across multiple devices. + +Good things aren't supposed to last though. + +Instapaper started to feel quite limited in its capabilities, and I didn't like +the idea of a centralized server holding all of my saved articles. So I've +moved to a self-hosted [Wallabag](https://wallabag.org) instance in the +meantime - which isn't perfect, but provides a lot more customization and +control. + +Moreover, more and more sites started implementing client-side restrictions for +my scrapers - Instapaper was initially more affected, but slowly Wallabag too +started bumping into Cloudflare screens, CAPTCHAs and paywalls. + +So the Internet Archive provided some temporary relief - I could still archive +articles there, and then instruct my Wallabag instance to read them from the +archive link. + +Except that, in the past few months, the Internet Archive has also started +implementing anti-scraping features, and you'll most likely get a Cloudflare +screen if you try and access an article from an external scraper. + +## A little ethical note before continuing + +I _do not_ condone nor support piracy. + +I mean, sometimes I do, but being a creator myself I always try to make sure +that, if piracy is the only way to freely access content wherever I want, then +creators are not being harmed (I don't mind harming any intermediaries that add +friction to the process and prevent me from having a raw file that I can +download and read wherever I want though). + +So I support creators via Patreon. I pay for subscriptions to digital magazines +that I will anyway never read through their official mobile app. I send one-off +donations when I find that some content was particularly useful to me. I buy +physical books and magazines every now and then from authors or publishers that +I want to support. And I'd probably support content creators even more if only +they allowed me to pay only for the content I want to read, and not lock me +into a Hotel California subscription ("_you can check out any time you like, +but you can never leave_") because their PMs only care about recurring revenue. + +I also think that the current business model that runs most of the high-quality +content available online (locking people into apps and subscriptions in order +to view the content) is detrimental for the distribution of knowledge in what's +supposed to be the age of information. If I want to be exposed to diverse +opinions on what's going on in different industries or different parts of the +world, I probably need at least a dozen subscriptions. And probably pay +something off to download special reports. In the earlier days we didn't have +to give away so much money if we wanted to access content for our personal +research - we could just buy a book or a single issue of a magazine, or even +just walk into a library and read content for free. If we have no digital +alternatives for such simple and established ways to access knowledge, then +piracy becomes almost a civic duty. It can't be that high quality reports or +insightful blog articles are locked behind paywalls, subscriptions and apps and +all that's left for free is cheap disinformation on social media. Future +historians will have a very hard time deciphering what was going on in the +world in the 2020s, because most of the content that was available online is +now locked behind paywalls, the companies that ran those sites and built the +apps may be long gone, and if publishers keep waging war against folks like the +Internet Archive, then they may start looking at our age like some kind of +strange digital dark age. + +I also think that it's my right, as a reader, to be able to consume content on a medium without distractions - like +social media buttons, ads, comments, or other stuff that distracts me from the main content, and if the publisher +doesn't provide me with a solution for that, and I have already paid for the content, then I should be able to build a +solution myself. + +And I also demand the right to access the content I've paid for however I want. + +Do I want to export everything to Markdown or read it in ASCII art in a +terminal? Do I want to export it to EPub so I can read it on my e-ink device? +Do I want to access it without having to use their tracker-ridden mobile app, +or without being forced to see ads despite having paid for a subscription? +Well, that's my business. I firmly believe that it's not an author's or +publisher's right to dictate how I access the content after paying for it. Just +like in earlier times nobody minded if, after purchasing a book, I would share +it with my kids, or lend it to a friend, or scan it and read it on my computer, +or make the copies of a few pages to bring to my students or my colleagues. + +If some freedoms were legally granted to me before, and now they've been taken +away, then it's not piracy if I keep demanding those freedoms. + +And content ownership is another problem. I'll no longer be able to access +content I've read during my subscription period once my subscription expires. +I'll not be able to pass on the books or magazine I've read in my lifetime to +my kid. I'll never be able to lend it to someone else, just like I would leave +a book I had read on a public bookshelf or a bench at the park for someone +else to read it. + +In other words, buying now grants you a temporary license to access the content +on someone else's devices - you don't really own anything. + +So, if buying isn't owning, then piracy isn't stealing. + +And again, to make it very clear, I'll be referring to *personal usage* in this +article. The case where you support creators through other means, but the +distribution channel is the problem, and you just want your basic freedoms +as a content consumer back. + +If however you start to share scraped articles on the Web, or even worse profit +from access to it, then you're *really* doing the kind of piracy I can't +condone. + +With this out of the way, let's get our hands dirty. + +## The setup + +My current set up is quite complex. At some point I may package all the moving +parts into a single stand-alone application, including both the browser +extension and the backend, but at the moment it should be sufficient to get +things to work. + +A high-level overview of the setup is as follows: + +<img alt="High-level overview of the scraper setup" src="http://s3.platypush.tech/static/images/wallabag-scraper-architecture.png" width="650px"> + +Let's break down the building blocks of this setup: + +- **[Redirector](https://addons.mozilla.org/en-US/firefox/addon/redirector/)** + is a browser extension that allows you to redirect URLs based on custom + rules as soon as the page is loaded. This is useful to redirect paywalled + resources to the Internet Archive, which usually stores full copies of the + content. Even if you regularly paid for a subscription to a magazine, and you + can read the article on the publisher's site or from their app, your Wallabag + scraper will still be blocked if the site implements client-side restrictions + or is protected by Cloudflare. So you need to redirect the URL to the Internet + Archive, which will then return a copy of the article that you can scrape. + +- **[Platypush](https://platypush.tech)** is a Python-based general-purpose + platform for automation that I've devoted a good chunk of the past decade + to develop. It allows you to run actions, react to events and control devices + and services through a unified API and Web interface, and it comes with + [hundreds of supported integrations](https://docs.platypush.tech). We'll use + the [`wallabag`](https://docs.platypush.tech/platypush/plugins/wallabag.html) + plugin to push articles to your Wallabag instance, and optionally the + [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html) plugin if you + want to programmatically subscribe to RSS feeds, scrape articles and archive + them to Wallabag, and the + [`ntfy`](https://docs.platypush.tech/platypush/plugins/ntfy.html) plugin to + optionally send notifications to your mobile device when new articles are + available. + +- **[Platypush Web extension](https://addons.mozilla.org/en-US/firefox/addon/platypush/)** + is a browser extension that allows you to interact with Platypush from your + browser, and it also provides a powerful JavaScript API that you can leverage + to manipulate the DOM and automate tasks in the browser. It's like a + [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) + or [Tampermonkey](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) + extension that allows you to write custom scripts to customize your browser + experience, but it also allows you to interact with Platypush and leverage + its backend capabilities. On top of that, I've also added built-in support + for the [Mercury Parser API](https://github.com/usr42/mercury-parser) in it, + so you can easily distill articles - similar to what Firefox does with its + [Reader + Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages), + but in this case you can customize the layout and modify the original DOM + directly, and the distilled content can easily be dispatched to any other + service or application. We'll use it to: + + - Distill the article content from the page, removing all the + unnecessary elements (ads, comments, etc.) and leaving only the main text + and images. + + - Temporarily archive the distilled article to a Web server capable of + serving static files, so Wallabag can get the full content and bypass any + client-side restrictions. + + - Archive the distilled article to Wallabag, so you can read it later + from any device that has access to your Wallabag instance. + +- **[Wallabag](https://wallabag.org)** is a self-hosted read-it-later + service that allows you to save articles from the Web and read them later, + even offline. It resembles the features of the ([recently + defunct](https://support.mozilla.org/en-US/kb/future-of-pocket)) + [Pocket](https://getpocket.com/home). It provides a Web interface, mobile + apps and browser extensions to access your saved articles, and it can also be + used as a backend for scraping articles from the Web. + +- (_Optional_) **[KOReader](https://koreader.rocks)** is an + open-source e-book reader that runs on a variety of devices, including any + e-ink readers that run Android (and even the + [Remarkable](https://github.com/koreader/koreader/wiki/Installation-on-Remarkable)). + It has a quite minimal interface and it may take a while to get used to, but + it's extremely powerful and customizable. I personally prefer it over the + official Wallabag app - it has a native Wallabag integration, as well as OPDS + integration to synchronize with my + [Ubooquity](https://docs.linuxserver.io/images/docker-ubooquity/) server, + synchronization of highlights and notes to Nextcloud Notes, WebDAV support + (so you can access anything hosted on e.g. your Nextcloud instance), progress + sync across devices through their [sync + server](https://github.com/koreader/koreader-sync-server), and much more. It + basically gives you a single app to access your saved articles, your books, + your notes, your highlights, and your documents. + +- (_Optional_) An Android-based e-book reader to run KOReader on. I have + recently switched from my old Mobiscribe to an [Onyx BOOX Note Air + 4](https://www.onyxbooxusa.com/onyx-boox-note-air4-c) and I love it. It's + powerful, the display is great, it runs basically any Android app out there + (and I've had no issues with running any apps installed through + [F-Droid](https://f-droid.org)), and it also has a good set of stock apps, + and most of them support WebDAV synchronization - ideal if you have a + [Nextcloud](https://nextcloud.com) instance to store your documents and + archived links. + +**NOTE**: The Platypush extension only works with Firefox, on any Firefox-based +browser, or on any browser out there that still supports the [Manifest +V2](https://blog.mozilla.org/addons/2024/03/13/manifest-v3-manifest-v2-march-2024-update/). +The Manifest V3 has been a disgrace that Google has forced all browser +extension developers to swallow. I won't go in detail here, but the Platypush +extension needs to be able to perform actions (such as calls to custom remote +endpoints and runtime interception of HTTP headers) that are either no longer +supported on Manifest V3, or that are only supported through laborious +workarounds (such as using the declarative Net Request API to explicitly +define what you want to intercept and what remote endpoints you want to call). + +**NOTE 2**: As of June 2025, the Platypush extension is only supported on +Firefox for desktop. A Firefox for Android version [is +work in progress](https://git.platypush.tech/platypush/platypush-webext/issues/1). + +Let's dig deeper into the individual components of this setup. + +## Redirector + + + +This is a nice addition if you want to automatically view some links through +the Internet Archive rather than the original site. + +You can install it from the [Firefox Add-ons site](https://addons.mozilla.org/en-US/firefox/addon/redirector/). +Once installed, you can create a bunch of rules (regular expressions are supported) +to redirect URLs from paywalled domains that you visit often to the Internet Archive. + +For example, this regular expression: + +``` +^(https://([\w-]+).substack.com/p/.*) +``` + +will match any Substack article URL, and you can redirect it to the Internet Archive +through this URL: + +``` +https://archive.is/$1 +``` + +Next time you open a Substack article, it will be automatically redirected to its +most recent archived version - or it will prompt you to archive the URL if it's not +been archived yet. + +## Wallabag + + + +Wallabag can easily be installed on any server [through Docker](https://doc.wallabag.org/developer/docker/). + +Follow the documentation for the set up of your user and create an API token from the Web interface. + +It's also advised to [set up a reverse +proxy](https://doc.wallabag.org/admin/installation/virtualhosts/#configuration-on-nginx) in front of Wallabag, so you +can easily access it over HTTPS. + +Once configured the reverse proxy, you can generate a certificate for it - for example, if you use +[`certbot`](https://certbot.eff.org/) and `nginx`: + +```bash +certbot --nginx -d your-domain.com +``` + +Then you can access your Wallabag instance at `https://your-domain.com` and log in with the user you created. + +Bonus: I personally find the Web interface of Wallabag quite ugly - the fluorescent light blue headers are distracting +and the default font and column width isn't ideal for my taste. So I made a [Greasemonkey/Tampermonkey +script](https://gist.manganiello.tech/fabio/ec9e28170988441d9a091b3fa6535038) to make it better if you want (see +screenshot above). + +## [_Optional_] ntfy + +[ntfy](https://ntfy.sh) is a simple HTTP-based pub/sub notification service that you can use to send notifications to +your devices or your browser. It provides both an [Android app](https://f-droid.org/en/packages/io.heckel.ntfy/) and a +[browser addon](https://addons.mozilla.org/en-US/firefox/addon/send-to-ntfy/) to send and receive notifications, +allowing you to open saved links directly on your phone or any other device subscribed to the same topic. + +Running it via docker-compose [is quite +straightforward](https://github.com/binwiederhier/ntfy/blob/main/docker-compose.yml). + +It's also advised to serve it behind a reverse proxy with HTTPS support, keeping in mind to set the right header for the +Websocket paths - example nginx configuration: + +```nginx +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + server_name notify.example.com; + + location / { + proxy_pass http://your-internal-ntfy-host:port; + + client_max_body_size 5M; + + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Ssl on; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location ~ .*/ws/?$ { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_set_header Host $http_host; + proxy_pass http://your-internal-ntfy-host:port; + } +} +``` + +Once the server is running, you can check the connectivity by opening your server's main page in your browser. + +## Local Web server + +This approach uses an intermediary Web server to temporarily archive the distilled article content, if available, and +instructing Wallabag to parse it from there. + +## Platypush + +Create a new virtual environment and install Platypush with the `wallabag` and `rss` +plugin dependencies through `pip`: + +```bash +python3 -m venv venv +source venv/bin/activate +pip install 'platypush[wallabag,rss]' +``` + +Then create a new configuration file `~/.config/platypush/config.yaml` with the following configuration: + +```yaml +# Web server configuration +backend.http: + # - port: 8008 + +# Wallabag configuration +wallabag: + server_url: https://your-domain.com + client_id: your_client_id + client_secret: your_client_secret + # Your Wallabag user credentials are required for the first login. + # It's also advised to keep them here afterwards so the refresh + # token can be automatically updated. + username: your_username + password: your_password +``` + +Then you can start the service with: + +```bash +platypush +``` + +You can also create a systemd service to run Platypush in the background: + +```bash +mkdir -p ~/.config/systemd/user + +cat <<EOF > ~/.config/systemd/user/platypush.service +[Unit] +Description=Platypush service +After=network.target + +[Service] +ExecStart=/path/to/venv/bin/platypush +Restart=always +RestartSec=5 +EOF + +systemctl --user daemon-reload +systemctl --user enable --now platypush.service +``` + +After starting the service, head over to `http://your_platypush_host:8008` (or the port you configured in the +`backend.http` section) and create a new user account. + +It's also advised to serve the Platypush Web server behind a reverse proxy with HTTPS support if you want it to easily +be accessible from the browser extension - a basic `nginx` configuration [is available on the +repo](https://git.platypush.tech/platypush/platypush/src/branch/master/examples/nginx/nginx.sample.conf). + +## Platypush Web extension + +You can install the Platypush Web extension from the [Firefox Add-ons +site](https://addons.mozilla.org/en-US/firefox/addon/platypush/). + +After installing it, click on the extension popup and add the URL of your Platypush Web server. + + + +When successfully connected, you should see the device in the main menu, you can run commands on it and save actions. + +A good place to start familiarizing with the Platypush API is the _Run Action_ dialog, which allows you to run commands +on your server and provides autocomplete for the available actions, as well as documentation about their arguments. + + + +The default action mode is _Request_ (i.e. single requests against the API). You can also pack together more actions on +the backend [into +_procedures_](https://docs.platypush.tech/wiki/Quickstart.html#greet-me-with-lights-and-music-when-i-come-home), which +can be written either in the YAML config or as Python scripts (by default loaded from `~/.config/platypush/scripts`). +If correctly configured, procedures will be available in the _Run Action_ dialog. + +The other mode, which we'll use in this article, is _Script_. In this mode you can write custom JavaScript code that +can interact with your browser. + + + +[Here](https://gist.github.com/BlackLight/d80c571705215924abc06a80994fd5f4) is a sample script that you can use as a +reference for the API exposed by the extension. Some examples include: + +- `app.run`, to run an action on the Platypush backend + +- `app.getURL`, `app.setURL` and `app.openTab` to get and set the current URL, or open a new tab with a given URL + +- `app.axios.get`, `app.axios.post` etc. to perform HTTP requests to other external services through the Axios + library + +- `app.getDOM` and `app.setDOM` to get and set the current page DOM + +- `app.mercury.parse` to distill the current page content using the Mercury Parser API + +### Reader mode script + +We can put together the building blocks above to create our first script, which will distill the current page content +and replace the swap the current page DOM with the simplified content - with no ads, comments, or other distracting +visual elements. The full content of the script is available +[here](https://gist.manganiello.tech/fabio/c731b57ff6b24d21a8f43fbedde3dc30). + +This is akin to what Firefox' [Reader +Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages) does, but with much more room for +customization. + +Note that for this specific script we don't need any interactions with the Platypush backend. Everything happens on the +client, as the Mercury API is built into the Platypush Web extension. + +Switch to _Script_ mode in the _Run Action_ dialog, paste the script content and click on _Save Script_. You can also +choose a custom name, icon ([FontAwesome](https://fontawesome.com/icons) icon classes are supported), color and group +for the script. Quite importantly, you can also associate a keyboard shortcut to it, so you can quickly distill a page +without having to search for the command either in the extension popup or in the context menu. + +### Save to Wallabag script + +Now that we have a script to distill the current page content, we can create another script to save the distilled +content (if available) to Wallabag. Otherwise, it will just save the original page content. + +The full content of the script is available +[here](https://gist.manganiello.tech/fabio/8f5b08d8fbaa404bafc6fdeaf9b154b4). From b229ccebaae75b03bed150dec82d73aaa51cfb39 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Thu, 5 Jun 2025 22:15:29 +0200 Subject: [PATCH 15/18] Finalized article --- ...ing-a-better-digital-reading-experience.md | 759 ++++++++++++++++++ markdown/Read-and-archive-everything.md | 505 ------------ 2 files changed, 759 insertions(+), 505 deletions(-) create mode 100644 markdown/Building-a-better-digital-reading-experience.md delete mode 100644 markdown/Read-and-archive-everything.md diff --git a/markdown/Building-a-better-digital-reading-experience.md b/markdown/Building-a-better-digital-reading-experience.md new file mode 100644 index 0000000..ca5a2a7 --- /dev/null +++ b/markdown/Building-a-better-digital-reading-experience.md @@ -0,0 +1,759 @@ +[//]: # (title: Building a better digital reading experience) +[//]: # (description: Bypass client-side restrictions on news and blog articles, archive them and read them on any offline reader) +[//]: # (image: https://s3.platypush.tech/static/images/reading-experience.jpg) +[//]: # (author: Fabio Manganiello <fabio@manganiello.tech>) +[//]: # (published: 2025-06-05) + +I've always been an avid book reader as a kid. + +I liked the smell of the paper, the feeling of turning the pages, and the +ability to read them anywhere I wanted, as well as lend them to friends and +later share our reading experiences. + +As I grew and chose a career in tech and a digital-savvy lifestyle, I started +to shift my consumption from the paper to the screen. But I *still* wanted the +same feeling of a paper book, the same freedom of reading wherever I wanted +without distractions, and without being constantly watched by someone who will +recommend me other products based on what I read or how I read. + +I was an early support of the Amazon Kindle idea, I quickly moved most of my +physical books to the Kindle, I became a vocal supported of online magazines +that also provided Kindle subscriptions, and I started to read more and more on +e-ink devices. + +Then I noticed that, after an initial spike, not many magazines and blogs +provided Kindle subscriptions or EPub versions of their articles. + +So nevermind - I started tinkering my way out of it and [wrote an article in +2019](https://blog.platypush.tech/article/Deliver-articles-to-your-favourite-e-reader-using-Platypush) +on how to use [Platypush](https://platypush.tech) with its +[`rss`](https://docs.platypush.tech/platypush/plugins/rss.html), +[`instapaper`](https://docs.platypush.tech/platypush/plugins/instapaper.html) and +[`gmail`](https://docs.platypush.tech/platypush/plugins/google.mail.html) +plugins to subscribe to RSS feeds, parse new articles, convert them to PDF and +deliver them to my Kindle. + +Later I moved from Kindle to the first version of the +[Mobiscribe](https://www.mobiscribe.com), as Amazon started to be more and more +restrictive in its option to import and export stuff out of the Kindle. Using +Calibre and some DRM removal tools to export articles or books I had regularly +purchased was gradually getting more cumbersome and error-prone, and the +Mobiscribe at that time was an interesting option because it offered a decent +e-ink device, for a decent price, and it ran Android (an ancient version, but +at least one that was sufficient to run [Instapaper](https://instapaper.com) +and [KOReader](https://koreader.rocks)). + +That simplified things a bit because I didn't need intermediary delivery via +email to get stuff on my Kindle or Calibre to try and pull things out of it. I +was using Instapaper on all of my devices, included the Mobiscribe, I could +easily scrape and push articles to it through Platypush, and I could easily +keep track of my reading state across multiple devices. + +Good things aren't supposed to last though. + +Instapaper started to feel quite limited in its capabilities, and I didn't like +the idea of a centralized server holding all of my saved articles. So I've +moved to a self-hosted [Wallabag](https://wallabag.org) instance in the +meantime - which isn't perfect, but provides a lot more customization and +control. + +Moreover, more and more sites started implementing client-side restrictions for +my scrapers - Instapaper was initially more affected, as it was much easier for +publisher's websites to detect scraping requests coming from the same subnet, +but slowly Wallabag too started bumping into Cloudflare screens, CAPTCHAs and +paywalls. + +So the Internet Archive provided some temporary relief - I could still archive +articles there, and then instruct my Wallabag instance to read them from the +archived link. + +Except that, in the past few months, the Internet Archive has also started +implementing anti-scraping features, and you'll most likely get a Cloudflare +screen if you try and access an article from an external scraper. + +## A little ethical note before continuing + +_Feel free to skip this part and go to the technical setup section if you +already agree that, if buying isn't owning, then piracy isn't stealing._ + +I _do not_ condone nor support piracy. + +I mean, sometimes I do, but being a creator myself I always try to make sure +that, if piracy is the only way to freely access content wherever I want, then +creators are not being harmed. + +I don't mind however harming any intermediaries that add friction to the +process just to have a piece of the pie, stubbornly rely on unsustainable +business models that sacrifices both the revenue of the authors and the privacy +and freedom of the readers, and prevent me from having a raw file that I can +download and read wherever I want though. It's because of those folks that the +digital reading experience, despite all the initial promises, has become much +worse than reading physical books and magazines. So I don't see a big moral +conundrum in pirating to harm those folks and get back my basic freedoms as a +reader. + +But I do support creators via Patreon. I pay for subscriptions to digital +magazines that I will anyway never read through their official mobile app. +Every now and then I buy physical books and magazines that I've already read +and that I've really enjoyed, to support the authors, just like I still buy +some vinyls of albums I really love even though I could just stream them. And I +send one-off donations when I find that some content was particularly useful to +me. And I'd probably support content creators even more if only they allowed me +to pay only for the digital content I want to read, if only there was a viable +digital business model also for the occasional reader, instead of everybody +trying to lock me into a Hotel California subscription ("_you can check out any +time you like, but you can never leave_") just because their business managers +are those folks who have learned how to use the hammer of the recurring +revenue, and think that every problem in the world is a subscription nail to be +hit on its head. + +I also think that the current business model that runs most of the high-quality +content available online (locking people into apps and subscriptions in order +to view the content) is detrimental for the distribution of knowledge in what's +supposed to be the age of information. If I want to be exposed to diverse +opinions on what's going on in different industries or different parts of the +world, I'd probably need at least a dozen subscriptions, while in earlier +generations folks could just walk into their local library or buy a single +issue of a newspaper every now and then. + +If we have no digital alternatives for such simple and established ways to +access and spread knowledge, then piracy is almost a civic duty. It can't be +that high quality reports or insightful blog articles are locked behind +paywalls, subscriptions and apps, and all that's left for free is cheap +disinformation on social media. Future historians will have a very hard time +deciphering what was going on in the world in the 2020s, because most of the +content that was available online is now locked behind paywalls, the companies +that ran those sites and built the apps may be long gone, and if publishers +keep waging war against folks like the Internet Archive, then they may start +looking at our age like some kind of strange digital dark age. + +I also think that it's my right, as a reader, to be able to consume content on +a medium without distractions - like social media buttons, ads, comments, or +other stuff that distracts me from the main content, and if the publisher +doesn't provide me with a solution for that, and I have already paid for the +content, then I should be able to build a solution myself. Even in an age where +attention is the new currency, at least we should not try to grab people's +attention when they're trying to read some dense content - that's just common +sense. + +And I also demand the right to access the content I've paid for however I want. + +Do I want to export everything to Markdown or read it in ASCII art in a +terminal? Do I want to export it to EPub so I can read it on my e-ink device? +Do I want to export it to PDF and email it to one of my students for a research +project, or to myself for later reference? Do I want to access it without +having to use their tracker-ridden mobile app, or without being forced to see +ads despite having paid for a subscription? Well, that's my business. I firmly +believe that it's not an author's or publisher's right to dictate how I access +the content after paying for it. Just like in earlier days nobody minded if, +after purchasing a book, I would share it with my kids, or lend it to a friend, +or scan it and read it on my computer, or make the copies of a few pages to +bring to my students or my colleagues for a project, or leave it on a bench at +the park or in a public bookshelf after reading it. + +If some freedoms were legally granted to me before, and now they've been taken +away, then it's not piracy if I keep demanding those freedoms. + +And content ownership is another problem. I'll no longer be able to access +content I've read during my subscription period once my subscription expires. +I'll not be able to pass on the books or magazines I've read in my lifetime to +my kid. I'll never be able to lend it to someone else, just like I would leave +a book I had read on a public bookshelf or a bench at the park for someone +else to read it. + +In other words, buying now grants you a temporary license to access the content +on someone else's device - you don't really own anything. + +So, if buying isn't owning, piracy isn't stealing. + +And again, to make it very clear, I'll be referring to *personal use* in this +article. The case where you support creators through other means, but the +distribution channel and the business models are the problem, and you just +want your basic freedoms as a content consumer back. + +If however you want to share scraped articles on the Web, or even worse profit +from access to it, then you're *really* doing the kind of piracy I can't +condone. + +With this out of the way, let's get our hands dirty. + +## The setup + +A high-level overview of the setup is as follows: + +<img alt="High-level overview of the scraper setup" src="https://s3.platypush.tech/static/images/wallabag-scraper-architecture.png" width="650px"> + +Let's break down the building blocks of this setup: + +- **[Redirector](https://addons.mozilla.org/en-US/firefox/addon/redirector/)** + is a browser extension that allows you to redirect URLs based on custom + rules as soon as the page is loaded. This is useful to redirect paywalled + resources to the Internet Archive, which usually stores full copies of the + content. Even if you regularly paid for a subscription to a magazine, and you + can read the article on the publisher's site or from their app, your Wallabag + scraper will still be blocked if the site implements client-side restrictions + or is protected by Cloudflare. So you need to redirect the URL to the Internet + Archive, which will then return a copy of the article that you can scrape. + +- **[Platypush](https://platypush.tech)** is a Python-based general-purpose + platform for automation that I've devoted a good chunk of the past decade + to develop. It allows you to run actions, react to events and control devices + and services through a unified API and Web interface, and it comes with + [hundreds of supported integrations](https://docs.platypush.tech). We'll use + the [`wallabag`](https://docs.platypush.tech/platypush/plugins/wallabag.html) + plugin to push articles to your Wallabag instance, and optionally the + [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html) plugin if you + want to programmatically subscribe to RSS feeds, scrape articles and archive + them to Wallabag, and the + [`ntfy`](https://docs.platypush.tech/platypush/plugins/ntfy.html) plugin to + optionally send notifications to your mobile device when new articles are + available. + +- **[Platypush Web extension](https://addons.mozilla.org/en-US/firefox/addon/platypush/)** + is a browser extension that allows you to interact with Platypush from your + browser, and it also provides a powerful JavaScript API that you can leverage + to manipulate the DOM and automate tasks in the browser. It's like a + [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) + or [Tampermonkey](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) + extension that allows you to write scripts to customize your browser + experience, but it also allows you to interact with Platypush and leverage + its backend capabilities. On top of that, I've also added built-in support + for the [Mercury Parser API](https://github.com/usr42/mercury-parser) in it, + so you can easily distill articles - similar to what Firefox does with its + [Reader + Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages), + but in this case you can customize the layout and modify the original DOM + directly, and the distilled content can easily be dispatched to any other + service or application. We'll use it to: + + - Distill the article content from the page, removing all the + unnecessary elements (ads, comments, etc.) and leaving only the main text + and images. + + - Archive the distilled article to Wallabag, so you can read it later + from any device that has access to your Wallabag instance. + +- **[Wallabag](https://wallabag.org)** is a self-hosted read-it-later + service that allows you to save articles from the Web and read them later, + even offline. It resembles the features of the ([recently + defunct](https://support.mozilla.org/en-US/kb/future-of-pocket)) + [Pocket](https://getpocket.com/home). It provides a Web interface, mobile + apps and browser extensions to access your saved articles, and it can also be + used as a backend for scraping articles from the Web. + +- (_Optional_) **[KOReader](https://koreader.rocks)** is an + open-source e-book reader that runs on a variety of devices, including any + e-ink readers that run Android (and even the + [Remarkable](https://github.com/koreader/koreader/wiki/Installation-on-Remarkable)). + It has a quite minimal interface and it may take a while to get used to, but + it's extremely powerful and customizable. I personally prefer it over the + official Wallabag app - it has a native Wallabag integration, as well as OPDS + integration to synchronize with my + [Ubooquity](https://docs.linuxserver.io/images/docker-ubooquity/) server, + synchronization of highlights and notes to Nextcloud Notes, WebDAV support + (so you can access anything hosted on e.g. your Nextcloud instance), progress + sync across devices through their [sync + server](https://github.com/koreader/koreader-sync-server), and much more. It + basically gives you a single app to access your saved articles, your books, + your notes, your highlights, and your documents. + +- (_Optional_) An Android-based e-book reader to run KOReader on. I have + recently switched from my old Mobiscribe to an [Onyx BOOX Note Air + 4](https://www.onyxbooxusa.com/onyx-boox-note-air4-c) and I love it. It's + powerful, the display is great, it runs basically any Android app out there + (and I've had no issues with running any apps installed through + [F-Droid](https://f-droid.org)), and it also has a good set of stock apps, + and most of them support WebDAV synchronization - ideal if you have a + [Nextcloud](https://nextcloud.com) instance to store your documents and + archived links. + +**NOTE**: The Platypush extension only works with Firefox, on any Firefox-based +browser, or on any browser out there that still supports the [Manifest +V2](https://blog.mozilla.org/addons/2024/03/13/manifest-v3-manifest-v2-march-2024-update/). +The Manifest V3 has been a disgrace that Google has forced all browser +extension developers to swallow. I won't go in detail here, but the Platypush +extension needs to be able to perform actions (such as calls to custom remote +endpoints and runtime interception of HTTP headers) that are either no longer +supported on Manifest V3, or that are only supported through laborious +workarounds (such as using the declarative Net Request API to explicitly +define what you want to intercept and what remote endpoints you want to call). + +**NOTE 2**: As of June 2025, the Platypush extension is only supported on +Firefox for desktop. A Firefox for Android version [is +work in progress](https://git.platypush.tech/platypush/platypush-webext/issues/1). + +Let's dig deeper into the individual components of this setup. + +## Redirector + + + +This is a nice addition if you want to automatically view some links through +the Internet Archive rather than the original site. + +You can install it from the [Firefox Add-ons site](https://addons.mozilla.org/en-US/firefox/addon/redirector/). +Once installed, you can create a bunch of rules (regular expressions are supported) +to redirect URLs from paywalled domains that you visit often to the Internet Archive. + +For example, this regular expression: + +``` +^(https://([\w-]+).substack.com/p/.*) +``` + +will match any Substack article URL, and you can redirect it to the Internet Archive +through this URL: + +``` +https://archive.is/$1 +``` + +Next time you open a Substack article, it will be automatically redirected to its +most recent archived version - or it will prompt you to archive the URL if it's not +been archived yet. + +## Wallabag + + + +Wallabag can easily be installed on any server [through Docker](https://doc.wallabag.org/developer/docker/). + +Follow the documentation for the set up of your user and create an API token +from the Web interface. + +It's also advised to [set up a reverse +proxy](https://doc.wallabag.org/admin/installation/virtualhosts/#configuration-on-nginx) +in front of Wallabag, so you can easily access it over HTTPS. + +Once configured the reverse proxy, you can generate a certificate for it - for +example, if you use [`certbot`](https://certbot.eff.org/) and `nginx`: + +```bash +❯ certbot --nginx -d your-domain.com +``` + +Then you can access your Wallabag instance at `https://your-domain.com` and log +in with the user you created. + +Bonus: I personally find the Web interface of Wallabag quite ugly - the +fluorescent light blue headers are distracting and the default font and column +width isn't ideal for my taste. So I made a [Greasemonkey/Tampermonkey +script](https://gist.manganiello.tech/fabio/ec9e28170988441d9a091b3fa6535038) +to make it better if you want (see screenshot above). + +## [_Optional_] ntfy + +[ntfy](https://ntfy.sh) is a simple HTTP-based pub/sub notification service +that you can use to send notifications to your devices or your browser. It +provides both an [Android app](https://f-droid.org/en/packages/io.heckel.ntfy/) +and a [browser +addon](https://addons.mozilla.org/en-US/firefox/addon/send-to-ntfy/) to send +and receive notifications, allowing you to open saved links directly on your +phone or any other device subscribed to the same topic. + +Running it via docker-compose [is quite +straightforward](https://github.com/binwiederhier/ntfy/blob/main/docker-compose.yml). + +It's also advised to serve it behind a reverse proxy with HTTPS support, +keeping in mind to set the right header for the Websocket paths - example nginx +configuration: + +```nginx +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + server_name notify.example.com; + + location / { + proxy_pass http://your-internal-ntfy-host:port; + + client_max_body_size 5M; + + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Ssl on; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location ~ .*/ws/?$ { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_set_header Host $http_host; + proxy_pass http://your-internal-ntfy-host:port; + } +} +``` + +Once the server is running, you can check the connectivity by opening your +server's main page in your browser. + +**NOTE**: Be _careful_ when choosing your ntfy topic name, especially if you +are using a public instance. ntfy by default doesn't require any authentication +for publishing or subscribing to a topic. So choose a random name (or at least +a random prefix/suffix) for your topics and treat them like a password. + +## Platypush + +Create a new virtual environment and install Platypush through `pip` (the +plugins we'll use in the first part don't require any additional dependencies): + +```bash +❯ python3 -m venv venv +❯ source venv/bin/activate +❯ pip install platypush +``` + +Then create a new configuration file `~/.config/platypush/config.yaml` with the +following configuration: + +```yaml +# Web server configuration +backend.http: + # port: 8008 + +# Wallabag configuration +wallabag: + server_url: https://your-domain.com + client_id: your_client_id + client_secret: your_client_secret + # Your Wallabag user credentials are required for the first login. + # It's also advised to keep them here afterwards so the refresh + # token can be automatically updated. + username: your_username + password: your_password +``` + +Then you can start the service with: + +```bash +❯ platypush +``` + +You can also create a systemd service to run Platypush in the background: + +```bash +❯ mkdir -p ~/.config/systemd/user +❯ cat <<EOF > ~/.config/systemd/user/platypush.service +[Unit] +Description=Platypush service +After=network.target + +[Service] +ExecStart=/path/to/venv/bin/platypush +Restart=always +RestartSec=5 +EOF +❯ systemctl --user daemon-reload +❯ systemctl --user enable --now platypush.service +``` + +After starting the service, head over to `http://your_platypush_host:8008` (or +the port you configured in the `backend.http` section) and create a new user +account. + +It's also advised to serve the Platypush Web server behind a reverse proxy with +HTTPS support if you want it to easily be accessible from the browser extension - +a basic `nginx` configuration [is available on the +repo](https://git.platypush.tech/platypush/platypush/src/branch/master/examples/nginx/nginx.sample.conf). + +## Platypush Web extension + +You can install the Platypush Web extension from the [Firefox Add-ons +site](https://addons.mozilla.org/en-US/firefox/addon/platypush/). + +After installing it, click on the extension popup and add the URL of your +Platypush Web server. + + + +When successfully connected, you should see the device in the main menu, you +can run commands on it and save actions. + +A good place to start familiarizing with the Platypush API is the _Run Action_ +dialog, which allows you to run commands on your server and provides +autocomplete for the available actions, as well as documentation about their +arguments. + + + +The default action mode is _Request_ (i.e. single requests against the API). +You can also pack together more actions on the backend [into +_procedures_](https://docs.platypush.tech/wiki/Quickstart.html#greet-me-with-lights-and-music-when-i-come-home), +which can be written either in the YAML config or as Python scripts (by default +loaded from `~/.config/platypush/scripts`). If correctly configured, procedures +will be available in the _Run Action_ dialog. + +The other mode, which we'll use in this article, is _Script_. In this mode you +can write custom JavaScript code that can interact with your browser. + + + +[Here](https://gist.github.com/BlackLight/d80c571705215924abc06a80994fd5f4) is +a sample script that you can use as a reference for the API exposed by the +extension. Some examples include: + +- `app.run`, to run an action on the Platypush backend + +- `app.getURL`, `app.setURL` and `app.openTab` to get and set the current URL, + or open a new tab with a given URL + +- `app.axios.get`, `app.axios.post` etc. to perform HTTP requests to other + external services through the Axios library + +- `app.getDOM` and `app.setDOM` to get and set the current page DOM + +- `app.mercury.parse` to distill the current page content using the Mercury + Parser API + +### Reader Mode script + +We can put together the building blocks above to create our first script, which +will distill the current page content and swap the current page DOM with the +simplified content - with no ads, comments, or other distracting visual +elements. The full content of the script is available +[here](https://gist.manganiello.tech/fabio/c731b57ff6b24d21a8f43fbedde3dc30). + +This is akin to what Firefox' [Reader +Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages) +does, but with much more room for customization. + +Note that for this specific script we don't need any interactions with the +Platypush backend. Everything happens on the client, as the Mercury API is +built into the Platypush Web extension. + +Switch to _Script_ mode in the _Run Action_ dialog, paste the script content +and click on _Save Script_. You can also choose a custom name, icon +([FontAwesome](https://fontawesome.com/icons) icon classes are supported), +color and group for the script. Quite importantly, you can also associate a +keyboard shortcut to it, so you can quickly distill a page without having to +search for the command either in the extension popup or in the context menu. + +### Save to Wallabag script + +Now that we have a script to distill the current page content, we can create +another script to save the distilled content (if available) to Wallabag. +Otherwise, it will just save the original page content. + +The full content of the script is available +[here](https://gist.manganiello.tech/fabio/8f5b08d8fbaa404bafc6fdeaf9b154b4). +The structure is quite straightforward: + +- First, it checks if the page content has already been "distilled" by the + Reader Mode script. If so, it uses the distilled content to save it to + Wallabag. Otherwise, it will use the full page body. + +- It saves the URL to Wallabag. + +- Optionally, it sends a notification over ntfy. + +Again, feel free to assign a keybinding to this action so you can quickly call +it from any page. + +Personally I've picked `Ctrl+Alt+1` for the Reader Mode script and `Ctrl+Alt+2` +for the Save to Wallabag script, so I can quickly distill a page and, if takes +me more time to read it, send the already simplified content to Wallabag. + +If you don't want to create a keybinding, you can always call these actions +either from the extension popup or from the (right click) context menu. + +## [_Optional_] RSS subscriptions and automated delivery + +You now have a way to manually scrape and archive articles from the Web. + +If you are also a regular reader of a publication or a blog that provides RSS +or Atom feeds, you can also automate the process of subscribing to those feeds +and delivering new articles to Wallabag. + +Just keep in mind two things if you want to go down this way: + +1. It's not advised to subscribe to feeds that provide a lot of articles + every day, as this will quickly fill up your Wallabag instance and make it + hard to find the articles you want to read. So stick to feeds that provide + one or a few articles per day, or at least don't provide more than a dozen + articles per day. Or augment the RSS event hook with custom filters to only + include links that match some criteria. + +2. Unlike the manual actions we saw before, the logic to handle automated + subscriptions and content delivery is implemented on the Platypush service + (on the backend). So it may not be as optimal in scraping and distilling + articles as some logic that operates on the client side and can more easily + bypass client-side restrictions. So you may want to pick feeds that don't + implement aggressive paywalls, are behind Cloudflare, or implement other + client-side restrictions. + +If you have some good candidates for automated delivery, follow these steps: + +- Install the [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html) + plugin in your Platypush instance: + +```bash +(venv)> pip install 'platypush[rss]' +``` + +- If you want to use the Mercury Parser API to distill articles (_optional_), + install the dependencies for the + [`http.webpage`](https://docs.platypush.tech/platypush/plugins/http.webpage.html). + The Mercury API is only available in JavaScript, so you'll need to have + `nodejs` and `npm` installed on your system. The Mercury Parser API is optional, + but it's usually more successful than the default Wallabag scraper in distilling + content. And, on top of that, it also makes it easier to customize your + requests. So if you want to scrape content from paywalled websites that + you're subscribed to you can easily pass your credentials or cookies to the + Mercury API (Wallabag doesn't support customizing the scraping requests). + Moreover, the Mercury integration also allows you to export the distilled + content to other formats, such as plain text, HTML, Markdown, or PDF - this + is useful if you want to save content to other services or applications. For + example, I find it quite useful to scrape content from some articles in + Markdown, and then save it to my [Nextcloud + Notes](https://apps.nextcloud.com/apps/notes) or + [Obsidian](https://obsidian.md). + +```bash +# Example for Debian/Ubuntu +❯ [sudo] apt install nodejs npm +# Install Mercury Parser globally +❯ [sudo] npm install -g @postlight/parser +``` + +- Add your subscriptions to the `~/.config/platypush/config.yaml` file: + +```yaml +rss: + subscriptions: + - https://example.com/feed.xml + - https://example.com/atom.xml + +# Optional +# http.webpage +# headers: +# # These headers will be used in all the requests made by the Mercury Parser. +# # You can still override the headers when you call the `http.webpage.simplify` +# # action though. +# User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" +``` + +- Create an event hook to handle new articles from the RSS feed and + distill them using the Mercury Parser API. You can e.g. create a + `~/.config/platypush/scripts/subscriptions.py` file with the following + content: + +```python +import logging +import urllib.parse + +from platypush import run, when +from platypush.events.rss import NewFeedEntryEvent + +logger = logging.getLogger(__name__) + +# Optional, set the False if you don't want to use the Mercury Parser API +USE_MERCURY_PARSER = True + +# If there are any websites that require specific headers to be passed, +# for example paywalled news sites that you're subscribed to and require +# authentication, you can specify them here. +headers_by_domain = { + 'example.com': { + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8', + 'Accept-Language': 'en-US,en;q=0.5', + 'Cookie': 'sessionid=your_cookie_value; other_cookie=other_value', + }, +} + + +def get_headers(url: str) -> dict: + """ + Get the headers to use for the request based on the URL. + """ + domain = re.sub(r'^www\.', '', urllib.parse.urlparse(url).netloc) + return headers_by_domain.get(domain, {}) + + +@when(NewFeedEntryEvent) +def scrape_and_save(event: NewFeedEntryEvent, **_): + """ + Scrape and save the new article to Wallabag. + """ + content = None + logger.info( + 'New article available on %s - title: %s, url: %s', + event.feed_url, + event.title, + event.url + ) + + if USE_MERCURY_PARSER: + # Distill the article content using the Mercury Parser API + response = run( + 'http.webpage.simplify', + url=url, + format='html', + headers=get_headers(event.url), + ) + + if not (response and response.get('content')): + logger.warning(f'Failed to distill {url} through Mercury Parser') + else: + content = response['content'] + + # Save the distilled content to Wallabag + run( + 'wallabag.save', + title=event.entry.title, + content=content, + url=url, + ) + + logger.info(f'Saved {url} to Wallabag') +``` + +It is advised to run the Platypush script once _without_ the `@when` hook +above, but with the `rss` plugin configured. + +The reason is that, on the first run, the `rss` plugin will fetch all the +entries in the subscribed feeds and trigger the `NewFeedEntryEvent` for each +of them. That in turn could end up with hundreds of articles pushed +simultaneously to your Wallabag instance, you may not want that. + +The recommended flow instead (which should probably apply also any time you add +new feeds to your subscriptions) is: + +1. Add the feeds to your `rss` plugin configuration. + +2. Restart the Platypush service and let it process all the `NewFeedEntryEvent` + events for the existing articles. + +3. Add the event hook logic to any file under `~/.config/platypush/scripts`. + +4. Restart the service - now only new entries will trigger the events. + +## Conclusions + +In this article we have seen how to set up a self-hosted solution to scrape and +archive articles from the Web, and also how to automate the process through +feed subscriptions. + +This is a powerful way to regain control over your reading experience, hopefully +bringing it one step closer to the one you had with paper books or walks to the +local library. + +Just remember to do so responsibly, only for personal use, and respecting the +rights of content creators and publishers. + +It's fine to get creative and build your own reading experience by bypassing +all the needless friction that has been added as media has moved to the digital +space. + +But always remember to fund authors and creators in other ways, subscribe to +those who produce high-quality content (even if you don't read content from +their mobile app), and try to limit your scraping experience to personal use. diff --git a/markdown/Read-and-archive-everything.md b/markdown/Read-and-archive-everything.md deleted file mode 100644 index bf1c918..0000000 --- a/markdown/Read-and-archive-everything.md +++ /dev/null @@ -1,505 +0,0 @@ -[//]: # (title: Read and archive everything) -[//]: # (description: Bypass client-side restrictions on news and blog articles, archive them and read them wherever you want) -[//]: # (image: /img/twitter2mastodon.png) -[//]: # (author: Fabio Manganiello <fabio@manganiello.tech>) -[//]: # (published: 2025-06-04) - -I've always been an avid book reader as a kid. - -I liked the smell of the paper, the feeling of turning the pages, and the -ability to read anywhere I wanted. - -As I grew and chose a career in tech and a digital-savvy lifestyle, I started -to shift my consumption from the paper to the screen. But I *still* wanted the -same feeling of a paper book, the same freedom of reading wherever I wanted. - -I was an early support of the Amazon Kindle idea, I quickly moved most of my -physical books to the Kindle, I became a vocal supported of online magazines -that also provided Kindle subscriptions, and I started to read more and more on -e-ink devices. - -Then I noticed that, after an initial spike, not many magazines and blogs -provided Kindle subscriptions or EPub versions of their articles. - -So nevermind - I started tinkering my way out of it and [wrote an article in -2019](https://blog.platypush.tech/article/Deliver-articles-to-your-favourite-e-reader-using-Platypush) -on how to use [Platypush](https://platypush.tech) with its [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html), -[`instapaper`](https://docs.platypush.tech/platypush/plugins/instapaper.html) and -[`gmail`](https://docs.platypush.tech/platypush/plugins/google.mail.html) -plugins to subscribe to RSS feeds, parse new articles, convert them to PDF and -deliver them to my Kindle. - -Later I moved from Kindle to the first version of the -[Mobiscribe](https://www.mobiscribe.com), as Amazon started to be more and more -restrictive in its option to import and export stuff out of the Kindle, using -Calibre and some DRM removal tools to export articles or books I had regularly -purchased was becoming more cumbersome, and the Mobiscribe at that time was an -interesting option because it offered a decent e-ink device, for a decent -price, and it ran Android (an ancient version, but at least one that was -sufficient to run [Instapaper](https://instapaper.com) and -[KOReader](https://koreader.rocks)). - -That simplified things a bit because I didn't need intermediary delivery via -email to get stuff on my Kindle or Calibre to try and pull things out of it. I -was using Instapaper on all of my devices, included the Mobiscribe, I could -easily scrape and push articles to it through Platypush, and I could easily -keep track of my reading state across multiple devices. - -Good things aren't supposed to last though. - -Instapaper started to feel quite limited in its capabilities, and I didn't like -the idea of a centralized server holding all of my saved articles. So I've -moved to a self-hosted [Wallabag](https://wallabag.org) instance in the -meantime - which isn't perfect, but provides a lot more customization and -control. - -Moreover, more and more sites started implementing client-side restrictions for -my scrapers - Instapaper was initially more affected, but slowly Wallabag too -started bumping into Cloudflare screens, CAPTCHAs and paywalls. - -So the Internet Archive provided some temporary relief - I could still archive -articles there, and then instruct my Wallabag instance to read them from the -archive link. - -Except that, in the past few months, the Internet Archive has also started -implementing anti-scraping features, and you'll most likely get a Cloudflare -screen if you try and access an article from an external scraper. - -## A little ethical note before continuing - -I _do not_ condone nor support piracy. - -I mean, sometimes I do, but being a creator myself I always try to make sure -that, if piracy is the only way to freely access content wherever I want, then -creators are not being harmed (I don't mind harming any intermediaries that add -friction to the process and prevent me from having a raw file that I can -download and read wherever I want though). - -So I support creators via Patreon. I pay for subscriptions to digital magazines -that I will anyway never read through their official mobile app. I send one-off -donations when I find that some content was particularly useful to me. I buy -physical books and magazines every now and then from authors or publishers that -I want to support. And I'd probably support content creators even more if only -they allowed me to pay only for the content I want to read, and not lock me -into a Hotel California subscription ("_you can check out any time you like, -but you can never leave_") because their PMs only care about recurring revenue. - -I also think that the current business model that runs most of the high-quality -content available online (locking people into apps and subscriptions in order -to view the content) is detrimental for the distribution of knowledge in what's -supposed to be the age of information. If I want to be exposed to diverse -opinions on what's going on in different industries or different parts of the -world, I probably need at least a dozen subscriptions. And probably pay -something off to download special reports. In the earlier days we didn't have -to give away so much money if we wanted to access content for our personal -research - we could just buy a book or a single issue of a magazine, or even -just walk into a library and read content for free. If we have no digital -alternatives for such simple and established ways to access knowledge, then -piracy becomes almost a civic duty. It can't be that high quality reports or -insightful blog articles are locked behind paywalls, subscriptions and apps and -all that's left for free is cheap disinformation on social media. Future -historians will have a very hard time deciphering what was going on in the -world in the 2020s, because most of the content that was available online is -now locked behind paywalls, the companies that ran those sites and built the -apps may be long gone, and if publishers keep waging war against folks like the -Internet Archive, then they may start looking at our age like some kind of -strange digital dark age. - -I also think that it's my right, as a reader, to be able to consume content on a medium without distractions - like -social media buttons, ads, comments, or other stuff that distracts me from the main content, and if the publisher -doesn't provide me with a solution for that, and I have already paid for the content, then I should be able to build a -solution myself. - -And I also demand the right to access the content I've paid for however I want. - -Do I want to export everything to Markdown or read it in ASCII art in a -terminal? Do I want to export it to EPub so I can read it on my e-ink device? -Do I want to access it without having to use their tracker-ridden mobile app, -or without being forced to see ads despite having paid for a subscription? -Well, that's my business. I firmly believe that it's not an author's or -publisher's right to dictate how I access the content after paying for it. Just -like in earlier times nobody minded if, after purchasing a book, I would share -it with my kids, or lend it to a friend, or scan it and read it on my computer, -or make the copies of a few pages to bring to my students or my colleagues. - -If some freedoms were legally granted to me before, and now they've been taken -away, then it's not piracy if I keep demanding those freedoms. - -And content ownership is another problem. I'll no longer be able to access -content I've read during my subscription period once my subscription expires. -I'll not be able to pass on the books or magazine I've read in my lifetime to -my kid. I'll never be able to lend it to someone else, just like I would leave -a book I had read on a public bookshelf or a bench at the park for someone -else to read it. - -In other words, buying now grants you a temporary license to access the content -on someone else's devices - you don't really own anything. - -So, if buying isn't owning, then piracy isn't stealing. - -And again, to make it very clear, I'll be referring to *personal usage* in this -article. The case where you support creators through other means, but the -distribution channel is the problem, and you just want your basic freedoms -as a content consumer back. - -If however you start to share scraped articles on the Web, or even worse profit -from access to it, then you're *really* doing the kind of piracy I can't -condone. - -With this out of the way, let's get our hands dirty. - -## The setup - -My current set up is quite complex. At some point I may package all the moving -parts into a single stand-alone application, including both the browser -extension and the backend, but at the moment it should be sufficient to get -things to work. - -A high-level overview of the setup is as follows: - -<img alt="High-level overview of the scraper setup" src="http://s3.platypush.tech/static/images/wallabag-scraper-architecture.png" width="650px"> - -Let's break down the building blocks of this setup: - -- **[Redirector](https://addons.mozilla.org/en-US/firefox/addon/redirector/)** - is a browser extension that allows you to redirect URLs based on custom - rules as soon as the page is loaded. This is useful to redirect paywalled - resources to the Internet Archive, which usually stores full copies of the - content. Even if you regularly paid for a subscription to a magazine, and you - can read the article on the publisher's site or from their app, your Wallabag - scraper will still be blocked if the site implements client-side restrictions - or is protected by Cloudflare. So you need to redirect the URL to the Internet - Archive, which will then return a copy of the article that you can scrape. - -- **[Platypush](https://platypush.tech)** is a Python-based general-purpose - platform for automation that I've devoted a good chunk of the past decade - to develop. It allows you to run actions, react to events and control devices - and services through a unified API and Web interface, and it comes with - [hundreds of supported integrations](https://docs.platypush.tech). We'll use - the [`wallabag`](https://docs.platypush.tech/platypush/plugins/wallabag.html) - plugin to push articles to your Wallabag instance, and optionally the - [`rss`](https://docs.platypush.tech/platypush/plugins/rss.html) plugin if you - want to programmatically subscribe to RSS feeds, scrape articles and archive - them to Wallabag, and the - [`ntfy`](https://docs.platypush.tech/platypush/plugins/ntfy.html) plugin to - optionally send notifications to your mobile device when new articles are - available. - -- **[Platypush Web extension](https://addons.mozilla.org/en-US/firefox/addon/platypush/)** - is a browser extension that allows you to interact with Platypush from your - browser, and it also provides a powerful JavaScript API that you can leverage - to manipulate the DOM and automate tasks in the browser. It's like a - [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) - or [Tampermonkey](https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/) - extension that allows you to write custom scripts to customize your browser - experience, but it also allows you to interact with Platypush and leverage - its backend capabilities. On top of that, I've also added built-in support - for the [Mercury Parser API](https://github.com/usr42/mercury-parser) in it, - so you can easily distill articles - similar to what Firefox does with its - [Reader - Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages), - but in this case you can customize the layout and modify the original DOM - directly, and the distilled content can easily be dispatched to any other - service or application. We'll use it to: - - - Distill the article content from the page, removing all the - unnecessary elements (ads, comments, etc.) and leaving only the main text - and images. - - - Temporarily archive the distilled article to a Web server capable of - serving static files, so Wallabag can get the full content and bypass any - client-side restrictions. - - - Archive the distilled article to Wallabag, so you can read it later - from any device that has access to your Wallabag instance. - -- **[Wallabag](https://wallabag.org)** is a self-hosted read-it-later - service that allows you to save articles from the Web and read them later, - even offline. It resembles the features of the ([recently - defunct](https://support.mozilla.org/en-US/kb/future-of-pocket)) - [Pocket](https://getpocket.com/home). It provides a Web interface, mobile - apps and browser extensions to access your saved articles, and it can also be - used as a backend for scraping articles from the Web. - -- (_Optional_) **[KOReader](https://koreader.rocks)** is an - open-source e-book reader that runs on a variety of devices, including any - e-ink readers that run Android (and even the - [Remarkable](https://github.com/koreader/koreader/wiki/Installation-on-Remarkable)). - It has a quite minimal interface and it may take a while to get used to, but - it's extremely powerful and customizable. I personally prefer it over the - official Wallabag app - it has a native Wallabag integration, as well as OPDS - integration to synchronize with my - [Ubooquity](https://docs.linuxserver.io/images/docker-ubooquity/) server, - synchronization of highlights and notes to Nextcloud Notes, WebDAV support - (so you can access anything hosted on e.g. your Nextcloud instance), progress - sync across devices through their [sync - server](https://github.com/koreader/koreader-sync-server), and much more. It - basically gives you a single app to access your saved articles, your books, - your notes, your highlights, and your documents. - -- (_Optional_) An Android-based e-book reader to run KOReader on. I have - recently switched from my old Mobiscribe to an [Onyx BOOX Note Air - 4](https://www.onyxbooxusa.com/onyx-boox-note-air4-c) and I love it. It's - powerful, the display is great, it runs basically any Android app out there - (and I've had no issues with running any apps installed through - [F-Droid](https://f-droid.org)), and it also has a good set of stock apps, - and most of them support WebDAV synchronization - ideal if you have a - [Nextcloud](https://nextcloud.com) instance to store your documents and - archived links. - -**NOTE**: The Platypush extension only works with Firefox, on any Firefox-based -browser, or on any browser out there that still supports the [Manifest -V2](https://blog.mozilla.org/addons/2024/03/13/manifest-v3-manifest-v2-march-2024-update/). -The Manifest V3 has been a disgrace that Google has forced all browser -extension developers to swallow. I won't go in detail here, but the Platypush -extension needs to be able to perform actions (such as calls to custom remote -endpoints and runtime interception of HTTP headers) that are either no longer -supported on Manifest V3, or that are only supported through laborious -workarounds (such as using the declarative Net Request API to explicitly -define what you want to intercept and what remote endpoints you want to call). - -**NOTE 2**: As of June 2025, the Platypush extension is only supported on -Firefox for desktop. A Firefox for Android version [is -work in progress](https://git.platypush.tech/platypush/platypush-webext/issues/1). - -Let's dig deeper into the individual components of this setup. - -## Redirector - - - -This is a nice addition if you want to automatically view some links through -the Internet Archive rather than the original site. - -You can install it from the [Firefox Add-ons site](https://addons.mozilla.org/en-US/firefox/addon/redirector/). -Once installed, you can create a bunch of rules (regular expressions are supported) -to redirect URLs from paywalled domains that you visit often to the Internet Archive. - -For example, this regular expression: - -``` -^(https://([\w-]+).substack.com/p/.*) -``` - -will match any Substack article URL, and you can redirect it to the Internet Archive -through this URL: - -``` -https://archive.is/$1 -``` - -Next time you open a Substack article, it will be automatically redirected to its -most recent archived version - or it will prompt you to archive the URL if it's not -been archived yet. - -## Wallabag - - - -Wallabag can easily be installed on any server [through Docker](https://doc.wallabag.org/developer/docker/). - -Follow the documentation for the set up of your user and create an API token from the Web interface. - -It's also advised to [set up a reverse -proxy](https://doc.wallabag.org/admin/installation/virtualhosts/#configuration-on-nginx) in front of Wallabag, so you -can easily access it over HTTPS. - -Once configured the reverse proxy, you can generate a certificate for it - for example, if you use -[`certbot`](https://certbot.eff.org/) and `nginx`: - -```bash -certbot --nginx -d your-domain.com -``` - -Then you can access your Wallabag instance at `https://your-domain.com` and log in with the user you created. - -Bonus: I personally find the Web interface of Wallabag quite ugly - the fluorescent light blue headers are distracting -and the default font and column width isn't ideal for my taste. So I made a [Greasemonkey/Tampermonkey -script](https://gist.manganiello.tech/fabio/ec9e28170988441d9a091b3fa6535038) to make it better if you want (see -screenshot above). - -## [_Optional_] ntfy - -[ntfy](https://ntfy.sh) is a simple HTTP-based pub/sub notification service that you can use to send notifications to -your devices or your browser. It provides both an [Android app](https://f-droid.org/en/packages/io.heckel.ntfy/) and a -[browser addon](https://addons.mozilla.org/en-US/firefox/addon/send-to-ntfy/) to send and receive notifications, -allowing you to open saved links directly on your phone or any other device subscribed to the same topic. - -Running it via docker-compose [is quite -straightforward](https://github.com/binwiederhier/ntfy/blob/main/docker-compose.yml). - -It's also advised to serve it behind a reverse proxy with HTTPS support, keeping in mind to set the right header for the -Websocket paths - example nginx configuration: - -```nginx -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - server_name notify.example.com; - - location / { - proxy_pass http://your-internal-ntfy-host:port; - - client_max_body_size 5M; - - proxy_read_timeout 60; - proxy_connect_timeout 60; - proxy_redirect off; - - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Ssl on; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - location ~ .*/ws/?$ { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - proxy_set_header Host $http_host; - proxy_pass http://your-internal-ntfy-host:port; - } -} -``` - -Once the server is running, you can check the connectivity by opening your server's main page in your browser. - -## Local Web server - -This approach uses an intermediary Web server to temporarily archive the distilled article content, if available, and -instructing Wallabag to parse it from there. - -## Platypush - -Create a new virtual environment and install Platypush with the `wallabag` and `rss` -plugin dependencies through `pip`: - -```bash -python3 -m venv venv -source venv/bin/activate -pip install 'platypush[wallabag,rss]' -``` - -Then create a new configuration file `~/.config/platypush/config.yaml` with the following configuration: - -```yaml -# Web server configuration -backend.http: - # - port: 8008 - -# Wallabag configuration -wallabag: - server_url: https://your-domain.com - client_id: your_client_id - client_secret: your_client_secret - # Your Wallabag user credentials are required for the first login. - # It's also advised to keep them here afterwards so the refresh - # token can be automatically updated. - username: your_username - password: your_password -``` - -Then you can start the service with: - -```bash -platypush -``` - -You can also create a systemd service to run Platypush in the background: - -```bash -mkdir -p ~/.config/systemd/user - -cat <<EOF > ~/.config/systemd/user/platypush.service -[Unit] -Description=Platypush service -After=network.target - -[Service] -ExecStart=/path/to/venv/bin/platypush -Restart=always -RestartSec=5 -EOF - -systemctl --user daemon-reload -systemctl --user enable --now platypush.service -``` - -After starting the service, head over to `http://your_platypush_host:8008` (or the port you configured in the -`backend.http` section) and create a new user account. - -It's also advised to serve the Platypush Web server behind a reverse proxy with HTTPS support if you want it to easily -be accessible from the browser extension - a basic `nginx` configuration [is available on the -repo](https://git.platypush.tech/platypush/platypush/src/branch/master/examples/nginx/nginx.sample.conf). - -## Platypush Web extension - -You can install the Platypush Web extension from the [Firefox Add-ons -site](https://addons.mozilla.org/en-US/firefox/addon/platypush/). - -After installing it, click on the extension popup and add the URL of your Platypush Web server. - - - -When successfully connected, you should see the device in the main menu, you can run commands on it and save actions. - -A good place to start familiarizing with the Platypush API is the _Run Action_ dialog, which allows you to run commands -on your server and provides autocomplete for the available actions, as well as documentation about their arguments. - - - -The default action mode is _Request_ (i.e. single requests against the API). You can also pack together more actions on -the backend [into -_procedures_](https://docs.platypush.tech/wiki/Quickstart.html#greet-me-with-lights-and-music-when-i-come-home), which -can be written either in the YAML config or as Python scripts (by default loaded from `~/.config/platypush/scripts`). -If correctly configured, procedures will be available in the _Run Action_ dialog. - -The other mode, which we'll use in this article, is _Script_. In this mode you can write custom JavaScript code that -can interact with your browser. - - - -[Here](https://gist.github.com/BlackLight/d80c571705215924abc06a80994fd5f4) is a sample script that you can use as a -reference for the API exposed by the extension. Some examples include: - -- `app.run`, to run an action on the Platypush backend - -- `app.getURL`, `app.setURL` and `app.openTab` to get and set the current URL, or open a new tab with a given URL - -- `app.axios.get`, `app.axios.post` etc. to perform HTTP requests to other external services through the Axios - library - -- `app.getDOM` and `app.setDOM` to get and set the current page DOM - -- `app.mercury.parse` to distill the current page content using the Mercury Parser API - -### Reader mode script - -We can put together the building blocks above to create our first script, which will distill the current page content -and replace the swap the current page DOM with the simplified content - with no ads, comments, or other distracting -visual elements. The full content of the script is available -[here](https://gist.manganiello.tech/fabio/c731b57ff6b24d21a8f43fbedde3dc30). - -This is akin to what Firefox' [Reader -Mode](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages) does, but with much more room for -customization. - -Note that for this specific script we don't need any interactions with the Platypush backend. Everything happens on the -client, as the Mercury API is built into the Platypush Web extension. - -Switch to _Script_ mode in the _Run Action_ dialog, paste the script content and click on _Save Script_. You can also -choose a custom name, icon ([FontAwesome](https://fontawesome.com/icons) icon classes are supported), color and group -for the script. Quite importantly, you can also associate a keyboard shortcut to it, so you can quickly distill a page -without having to search for the command either in the extension popup or in the context menu. - -### Save to Wallabag script - -Now that we have a script to distill the current page content, we can create another script to save the distilled -content (if available) to Wallabag. Otherwise, it will just save the original page content. - -The full content of the script is available -[here](https://gist.manganiello.tech/fabio/8f5b08d8fbaa404bafc6fdeaf9b154b4). From 2ffc1db81f388f57ccf6b7c0ca10131a2e1f4591 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Thu, 5 Jun 2025 23:06:38 +0200 Subject: [PATCH 16/18] Reviewed article --- ...ing-a-better-digital-reading-experience.md | 142 +++++++++++------- 1 file changed, 84 insertions(+), 58 deletions(-) diff --git a/markdown/Building-a-better-digital-reading-experience.md b/markdown/Building-a-better-digital-reading-experience.md index ca5a2a7..9370a3b 100644 --- a/markdown/Building-a-better-digital-reading-experience.md +++ b/markdown/Building-a-better-digital-reading-experience.md @@ -71,76 +71,91 @@ Except that, in the past few months, the Internet Archive has also started implementing anti-scraping features, and you'll most likely get a Cloudflare screen if you try and access an article from an external scraper. -## A little ethical note before continuing +## An ethical note before continuing _Feel free to skip this part and go to the technical setup section if you already agree that, if buying isn't owning, then piracy isn't stealing._ -I _do not_ condone nor support piracy. +#### Support your creators (even when you wear your pirate hat) -I mean, sometimes I do, but being a creator myself I always try to make sure -that, if piracy is the only way to freely access content wherever I want, then -creators are not being harmed. +I _do not_ condone nor support piracy when it harms content creators. + +Being a content creator myself I know how hard it is to squeeze some pennies +out of our professions or hobbies, especially in a world like the digital +one where there are often too many intermediaries to take a share of the pie. I don't mind however harming any intermediaries that add friction to the process just to have a piece of the pie, stubbornly rely on unsustainable business models that sacrifices both the revenue of the authors and the privacy and freedom of the readers, and prevent me from having a raw file that I can -download and read wherever I want though. It's because of those folks that the -digital reading experience, despite all the initial promises, has become much -worse than reading physical books and magazines. So I don't see a big moral -conundrum in pirating to harm those folks and get back my basic freedoms as a -reader. +download and read wherever I want just I would do with a physical book or +magazine. It's because of those folks that the digital reading experience, +despite all the initial promises, has become much worse than the analog one. +So I don't see a big moral conundrum in pirating to harm those folks and get +back my basic freedoms as a reader. But I do support creators via Patreon. I pay for subscriptions to digital -magazines that I will anyway never read through their official mobile app. -Every now and then I buy physical books and magazines that I've already read -and that I've really enjoyed, to support the authors, just like I still buy -some vinyls of albums I really love even though I could just stream them. And I -send one-off donations when I find that some content was particularly useful to -me. And I'd probably support content creators even more if only they allowed me -to pay only for the digital content I want to read, if only there was a viable -digital business model also for the occasional reader, instead of everybody -trying to lock me into a Hotel California subscription ("_you can check out any -time you like, but you can never leave_") just because their business managers -are those folks who have learned how to use the hammer of the recurring -revenue, and think that every problem in the world is a subscription nail to be -hit on its head. +magazines that I will anyway never read through their official app. Every now +and then I buy physical books and magazines that I've already read and that +I've really enjoyed, to support the authors, just like I still buy some vinyls +of albums I really love even though I could just stream them. And I send +one-off donations when I find that some content was particularly useful to me. +And I'd probably support content creators even more if only more of their +distribution channels allowed me to pay only for the digital content that I +want to consume, if only there was a viable digital business model also for the +occasional reader, instead of everybody trying to lock me into a Hotel +California subscription ("_you can check out any time you like, but you can +never leave_") just because their business managers are those folks who have +learned how to use the hammer of the recurring revenue, and think that every +problem in the world is a subscription nail to be hit on its head. Maybe +micropayments could be a solution, but for now cryptobros have decided that the +future of modern digital payments should be more like a gambling den for thugs, +shitcoin speculators and miners, rather than a solution to directly put in +contact content creators and consumers, bypassing all the intermediaries, and +let consumers pay only for what they consume. -I also think that the current business model that runs most of the high-quality -content available online (locking people into apps and subscriptions in order -to view the content) is detrimental for the distribution of knowledge in what's -supposed to be the age of information. If I want to be exposed to diverse -opinions on what's going on in different industries or different parts of the -world, I'd probably need at least a dozen subscriptions, while in earlier -generations folks could just walk into their local library or buy a single -issue of a newspaper every now and then. +#### The knowledge distribution problem -If we have no digital alternatives for such simple and established ways to -access and spread knowledge, then piracy is almost a civic duty. It can't be -that high quality reports or insightful blog articles are locked behind -paywalls, subscriptions and apps, and all that's left for free is cheap -disinformation on social media. Future historians will have a very hard time -deciphering what was going on in the world in the 2020s, because most of the -content that was available online is now locked behind paywalls, the companies -that ran those sites and built the apps may be long gone, and if publishers -keep waging war against folks like the Internet Archive, then they may start -looking at our age like some kind of strange digital dark age. +I also believe that the most popular business model behind most of the +high-quality content available online (locking people into apps and +subscriptions in order to view the content) is detrimental for the distribution +of knowledge in what's supposed to be the age of information. If I want to be +exposed to diverse opinions on what's going on in different industries or +different parts of the world, I'd probably need at least a dozen subscriptions, +while in earlier generations folks could just walk into their local library or +buy a single book or a single issue of a newspaper every now and then. + +I don't think that we should settle for a world where the best reports, the +best journalism and the most insightful blog articles are locked behind +paywalls, subscriptions and closed apps, without even a Spotify/Netflix-like +all-you-can-eat solution being considered to lower access barriers, and all +that's left for free is cheap disinformation on social media and AI-generated +content. Future historians will have a very hard time deciphering what was +going on in the world in the 2020s, because most of the high-quality content +needed to decipher our age is locked behind some kind of technological wall. +The companies that run those sites and build those apps will most likely be +gone in a few years or decades. And, if publishers also keep waging war against +folks like the Internet Archive, then future historians may really start +looking at our age like some kind of strange hyper-connected digital dark age. + +#### The content consumption problem I also think that it's my right, as a reader, to be able to consume content on a medium without distractions - like social media buttons, ads, comments, or -other stuff that distracts me from the main content, and if the publisher +other stuff that distracts me from the main content. And, if the publisher doesn't provide me with a solution for that, and I have already paid for the -content, then I should be able to build a solution myself. Even in an age where -attention is the new currency, at least we should not try to grab people's -attention when they're trying to read some dense content - that's just common -sense. +content, then I should be granted the right to build such a solution myself. +Even in an age where attention is the new currency, at least we should not try +to grab people's attention when they're trying to read some dense content. Just +like you wouldn't interrupt someone who's reading in a library saying "hey btw, +I know a shop that sells exactly the kind of tea cups described in the page +you're reading right now". -And I also demand the right to access the content I've paid for however I want. +And I also demand the right to access the content I've paid however I want. Do I want to export everything to Markdown or read it in ASCII art in a -terminal? Do I want to export it to EPub so I can read it on my e-ink device? -Do I want to export it to PDF and email it to one of my students for a research +terminal? Do I want to export it to EPUB so I can read it on my e-ink device? +Do I want to export it to PDF and email it to one of my colleagues for a research project, or to myself for later reference? Do I want to access it without having to use their tracker-ridden mobile app, or without being forced to see ads despite having paid for a subscription? Well, that's my business. I firmly @@ -152,14 +167,25 @@ bring to my students or my colleagues for a project, or leave it on a bench at the park or in a public bookshelf after reading it. If some freedoms were legally granted to me before, and now they've been taken -away, then it's not piracy if I keep demanding those freedoms. +away, then it's not piracy if I keep demanding those freedoms. The whole point +of a market-based economy should be to keep the customer happy and give more +choice and freedom, not less, as technology advances. Otherwise the market is +probably not working as intended. + +#### The content ownership problem + +Content ownership is another issue in the current digital media economy. + +I'll probably no longer be able to access content I've read during my +subscription period once my subscription expires, especially if it was only +available through an app. In the past I could cancel my subscription to +National Geographic at any moment, and all the copies I had purchased wouldn't +just magically disappear from my bookshelf after paying the last bill. -And content ownership is another problem. I'll no longer be able to access -content I've read during my subscription period once my subscription expires. I'll not be able to pass on the books or magazines I've read in my lifetime to -my kid. I'll never be able to lend it to someone else, just like I would leave -a book I had read on a public bookshelf or a bench at the park for someone -else to read it. +my kid. I'll never be able to lend them to someone else, just like I would leave +a book I had read on a public bookshelf or a bench at the park for someone else +to read it. In other words, buying now grants you a temporary license to access the content on someone else's device - you don't really own anything. @@ -168,12 +194,12 @@ So, if buying isn't owning, piracy isn't stealing. And again, to make it very clear, I'll be referring to *personal use* in this article. The case where you support creators through other means, but the -distribution channel and the business models are the problem, and you just +distribution channel and the business models are the problem, and you just want your basic freedoms as a content consumer back. If however you want to share scraped articles on the Web, or even worse profit -from access to it, then you're *really* doing the kind of piracy I can't -condone. +from access to it without sharing those profits with the creators, then you're +*really* doing the kind of piracy I can't condone. With this out of the way, let's get our hands dirty. From f516869bb397b7152bfd282b2f3bbfa744373c1e Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Thu, 5 Jun 2025 23:20:40 +0200 Subject: [PATCH 17/18] Minor fixes --- markdown/Building-a-better-digital-reading-experience.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/markdown/Building-a-better-digital-reading-experience.md b/markdown/Building-a-better-digital-reading-experience.md index 9370a3b..955ec2c 100644 --- a/markdown/Building-a-better-digital-reading-experience.md +++ b/markdown/Building-a-better-digital-reading-experience.md @@ -16,8 +16,8 @@ same feeling of a paper book, the same freedom of reading wherever I wanted without distractions, and without being constantly watched by someone who will recommend me other products based on what I read or how I read. -I was an early support of the Amazon Kindle idea, I quickly moved most of my -physical books to the Kindle, I became a vocal supported of online magazines +I was an early support of the Amazon Kindle idea. I quickly moved most of my +physical books to the Kindle, I became a vocal supporter of online magazines that also provided Kindle subscriptions, and I started to read more and more on e-ink devices. From 8a68a02b9d3bbc4c7ddd3691db0b578a9b665ff5 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello <fabio@manganiello.tech> Date: Thu, 5 Jun 2025 23:24:32 +0200 Subject: [PATCH 18/18] Minor fixes --- markdown/Building-a-better-digital-reading-experience.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/markdown/Building-a-better-digital-reading-experience.md b/markdown/Building-a-better-digital-reading-experience.md index 955ec2c..2a414b0 100644 --- a/markdown/Building-a-better-digital-reading-experience.md +++ b/markdown/Building-a-better-digital-reading-experience.md @@ -121,9 +121,10 @@ high-quality content available online (locking people into apps and subscriptions in order to view the content) is detrimental for the distribution of knowledge in what's supposed to be the age of information. If I want to be exposed to diverse opinions on what's going on in different industries or -different parts of the world, I'd probably need at least a dozen subscriptions, -while in earlier generations folks could just walk into their local library or -buy a single book or a single issue of a newspaper every now and then. +different parts of the world, I'd probably need at least a dozen subscriptions +and a similar number of apps on my phone, all pushing notifications, while in +earlier generations folks could just walk into their local library or buy a +single book or a single issue of a newspaper every now and then. I don't think that we should settle for a world where the best reports, the best journalism and the most insightful blog articles are locked behind