<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>The Interledger Community 🌱: Jussi Rytkönen</title>
    <description>The latest articles on The Interledger Community 🌱 by Jussi Rytkönen (@jussir).</description>
    <link>https://community.interledger.org/jussir</link>
    <image>
      <url>https://community.interledger.org/images/Fir08KFNl7_oMgoa7Z-T9uxI2I4dx8vHgO4p512DDVs/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkuaW50ZXJs/ZWRnZXIub3JnL3Jl/bW90ZWltYWdlcy91/cGxvYWRzL3VzZXIv/cHJvZmlsZV9pbWFn/ZS8xMDMvZTc3MGQ5/YmYtMzllYy00OTg3/LTk1YTAtOTMyNjli/NTMwOGYxLmpwZWc</url>
      <title>The Interledger Community 🌱: Jussi Rytkönen</title>
      <link>https://community.interledger.org/jussir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://community.interledger.org/feed/jussir"/>
    <language>en</language>
    <item>
      <title>DJ, put a record on</title>
      <dc:creator>Jussi Rytkönen</dc:creator>
      <pubDate>Wed, 28 Apr 2021 13:14:37 +0000</pubDate>
      <link>https://community.interledger.org/wmmultimedia/dj-put-a-record-on-2l2e</link>
      <guid>https://community.interledger.org/wmmultimedia/dj-put-a-record-on-2l2e</guid>
      <description>&lt;p&gt;Web Monetized Multimedia project is at a stage where we have a public &lt;a href="https://github.com/eqlabs/wmm-components"&gt;Github repository&lt;/a&gt; and &lt;a href="https://eqlabs.github.io/wmm-components/"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The library supports three types of media: &lt;strong&gt;video&lt;/strong&gt;, &lt;strong&gt;audio&lt;/strong&gt; and &lt;strong&gt;text&lt;/strong&gt;. For each media there is a corresponding Web Component, which allow monetization with - or without - backend verification.&lt;/p&gt;

&lt;p&gt;After importing the component in your Javascript code, simply add a HTML tag, with attributes defining media source and payment URL, e.g.:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;wmm-video src="/media/video.mp4" paymentUrl="$ilp.uphold.com/4m2d2Xn4EUyk"&amp;gt;&amp;lt;/wmm-video&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;By default, the media hosting backend will verify the payments and stream the media only when certain conditions are met. This is done by sending receipt verifications from the UI component to the /verifyReceipt path. The backend records account balances for each user and calculates the amount of payments made by the user, deducting the "amount" of media sent to the frontend.&lt;/p&gt;

&lt;p&gt;The cost of media can be calculated in minutes or megabytes - or in words, in the case of text media. When the user account balance reaches zero, the user is notified about the error state with  component. This includes instructions, like installing a wallet, or simply waiting for more payments to be made (in case of network latency issues).&lt;/p&gt;

&lt;p&gt;Optionally there is a &lt;a href="https://eqlabs.github.io/wmm-components/docs/examples-without-backend"&gt;simpler component mode&lt;/a&gt;, that skips payment verification (and thus also accounting). In this mode, media can be downloaded from any URL even when the host doesn't support Web Monetization. The payments are still made if the user has a Web Monetization enabled wallet installed. E.g.:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;wmm-video skipVerification="true" src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" paymentUrl="..."&amp;gt;&amp;lt;/wmm-video&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The &amp;lt;wmm-&lt;strong&gt;audio&lt;/strong&gt;&amp;gt; and &amp;lt;wmm-&lt;strong&gt;text&lt;/strong&gt;&amp;gt; components use the same &lt;strong&gt;&lt;em&gt;src&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;paymentUrl&lt;/em&gt;&lt;/strong&gt; attributes. The only difference in the media component attributes, is that in the &amp;lt;wmm-&lt;strong&gt;text&lt;/strong&gt;&amp;gt; the "simple mode" is implemented by passing the full text directly to the &lt;strong&gt;&lt;em&gt;media&lt;/em&gt;&lt;/strong&gt; attribute, instead of loading it from the backend.&lt;/p&gt;

&lt;p&gt;See the &lt;a href="https://eqlabs.github.io/wmm-components/"&gt;documents&lt;/a&gt; for more detailed instructions. Time to press the play button!&lt;/p&gt;

</description>
      <category>webcomponents</category>
      <category>code</category>
      <category>documentation</category>
      <category>letsroll</category>
    </item>
    <item>
      <title>Enabling the content creators</title>
      <dc:creator>Jussi Rytkönen</dc:creator>
      <pubDate>Fri, 22 Jan 2021 08:56:06 +0000</pubDate>
      <link>https://community.interledger.org/wmmultimedia/enabling-the-content-creators-2f0j</link>
      <guid>https://community.interledger.org/wmmultimedia/enabling-the-content-creators-2f0j</guid>
      <description>&lt;p&gt;As the tech guy of the Web Monetized Multimedia -project I’m happy to join the community and be part of building the new web, the way it always was meant to be: from the people to the people, without corporate intermediaries controlling the exchange.&lt;/p&gt;

&lt;p&gt;I've been following the cryptocurrency space almost from its inception, and it feels magical to work with technology that streams multiple subdecimal transactions per second for each user. Transactions per second comparisons definitely were a big thing back in the day and now each user can have the same level of performance that used to exist only for the whole network!&lt;/p&gt;

&lt;p&gt;In our Web Monetized Multimedia project we are building tools that allow media content creators, and people who build platforms for content creators, to access this technology as easily as possible. The end result will be UI components with clear and simple API that can be embedded to any website.&lt;/p&gt;

&lt;p&gt;There will also be a backend component that verifies the transactions and sends the media to the browser only if a required amount of transactions have actually taken place. This gives the content creators more security in controlling their creations and allows modifying the user experience based on the value of transactions.&lt;/p&gt;

&lt;p&gt;Figuring out the best way to implement this backend verification has been the biggest hurdle in our research phase. We started experimenting by connecting to interledger network using &lt;a href="https://github.com/interledgerjs/moneyd"&gt;moneyd&lt;/a&gt;, but later opted to using &lt;a href="https://github.com/coilhq/receipt-verifier"&gt;receipt verification&lt;/a&gt; instead. Interledger livenet connections are currently permissioned because of fiat gateways, and thus using &lt;a href="https://webmonetization.org/"&gt;webmonetization.org's&lt;/a&gt; receipt verifier enables much simpler implementation for newcomers. Still, more advanced users can install their own receipt-verifier service and get even more security and robustness in their system if they so choose to.&lt;/p&gt;

&lt;p&gt;With the research phase behind us we are excited to be building these new tools and hopefully soon showing them to the whole community!&lt;/p&gt;

</description>
      <category>webcomponents</category>
      <category>interledger</category>
      <category>moneyd</category>
      <category>receiptverifier</category>
    </item>
  </channel>
</rss>
