ΠΡΠΎΠ΅ΠΊΡ Funkwhale ΠΏΡΡΠ½Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ. Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π°ΡΠ° ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΡΡΡΠ²ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Django, Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΡΠ·ΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΈ, ΡΠ»ΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΡΠ΅Π· ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Subsonic API ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΈΡ Funkwhale API, ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Funkwhale, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½Π° ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ActivityPub.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Ρ Π°ΡΠ΄ΠΈΠΎΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°ΡΡΠΈΡΡΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ UUID ΠΊΠ°ΡΠΎ Π°Π΄ΡΠ΅Ρ, Π° ΠΊΠ°Π½Π°Π»ΡΡ Π΅ Π΄ΠΈΡΠΊΠΎΠ³ΡΠ°ΡΠΈΡ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π», Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΡΠΈΡΠΈΠΌ Π°Π΄ΡΠ΅Ρ; ΠΊΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΈ. Π Π°Π±ΠΎΡΠ°ΡΠ° Ρ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½ΡΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΡΠ°Π·ΠΈ Π² Π΄ΡΡΠ³ ΠΏΡΠΎΠ΅ΠΊΡ β PeerTube: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΡΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ Π½Π΅Π³ΠΎ ΠΊΠ°Π½Π°Π»ΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΡΠ²ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ActivityPub, Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ°ΡΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΡΠΎ Mastodon ΠΈ Pleroma.
Π‘Π»Π΅Π΄ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Π» ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΡΠ·ΠΈΠΊΠ°. Π€Π°ΠΉΠ»ΠΎΠ²ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠ°ΠΊΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Amazon S3. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠ°ΡΠΈΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ, Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°Π³ΡΠ±Π° Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ (ΠΊΠ°ΠΊΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²ΠΈ PeerTube, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ΄ΠΈΠΎ). Funkwhale ΠΏΡΠΎΡΠΈΡΠ° Π²Π³ΡΠ°Π΄ΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΌΡΠ·ΠΈΠΊΠ°Π»Π½ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΡΠΈΡΠΈ, Π° ΠΏΡΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ·Π΄Π°Π²Π° Π³ΡΠ΅ΡΠΊΠ°. ΠΠ°ΡΠΎΠ²Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ MusicBrainz Picard Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΠΈ ΠΊΠ°ΡΠ²Π°Π½Π΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠ²Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ Ρ Π²ΠΈΠ΄ΠΈΠΌΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅.
ΠΡ Π²Π΅ΡΠ΅ ΠΊΠ°ΡΠ΅Π½Π°ΡΠ° ΠΌΡΠ·ΠΈΠΊΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΡΡΠ°Π²ΡΡΠ΅ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΠΈ, ΡΠ°Π΄ΠΈΠΎΡΡΠ°Π½ΡΠΈΠΈ ΠΈ Π΄Π° ΠΌΠ°ΡΠΊΠΈΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ½ΠΈ ΠΊΠ°ΡΠΎ Π»ΡΠ±ΠΈΠΌΠΈ. ΠΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²Π°ΡΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Π», ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ Π² ΡΡΡΡΠ°ΡΠΊΠ°ΡΠ° Π½Π° ΡΠ²ΠΎΡ ΡΡΡΠ²ΡΡ. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ»ΡΡΠ°Ρ ΠΌΡΠ·ΠΈΠΊΠ° ΠΎΡ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π°ΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ°. Π Π΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ»Π°ΡΠ° ΠΌΡΠ·ΠΈΠΊΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠ°ΡΠΎ Π²Π»ΡΠ·Π°Ρ ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Subsonic API β ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΡΠ·ΠΈΠΊΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈ ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, β ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΈΡ Funkwhale API, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Otter Π·Π° Android.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ°Ρ ΠΎΡ ΡΡΡΠ²ΡΡΠ° ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠ΅ΡΠ½ΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ FLAC Π² MP3 Ρ ΠΏΠΎ-Π½ΠΈΡΡΠΊ Π±ΠΈΡΡΠ΅ΠΉΡ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΠ°ΡΠΈΠΊ).
ΠΡΠ·ΠΌΠΎΠΆΠ½Π° Π΅ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ Π·Π° RSS ΡΠΈΠΉΠ΄ΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΈ.
ΠΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Python Π΅ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° Π΄ΠΎ 3.6;
- ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠ°Π²Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ API;
- ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° JSON ΡΠΎΠΊΠ΅Π½ΠΈ (JWT) Π² ΠΏΠΎΠ»Π·Π° Π½Π° OAuth;
- ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΈ Π·Π° ΠΊΠΎΡΠΈΡΠΈ;
- Π² ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π±ΡΡΠΎΠ½ Π·Π° Π²Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΌΡΠ·ΠΈΠΊΠ° ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°;
- ΠΏΠΎΡΠ²ΠΈΠ»ΠΎ ΡΠ΅ Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡΡΠ° Π½Π° ΠΏΠ΅ΡΠ½ΠΈ ΠΈ Π°Π»Π±ΡΠΌΠΈ;
- Π½ΠΎΠ²Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅;
- Π±ΡΡΠΎΠ½ΡΡ βΠΈΠ³ΡΠ°ΠΉβ Π½Π° ΠΏΠ΅ΡΠ½ΠΈΡΠ΅ ΠΈ Π°Π»Π±ΡΠΌΠΈΡΠ΅ ΡΠ΅Π³Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π° ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΠ°ΡΠ°, Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΏΠ΅ΡΠ½ΠΈΡΠ΅ Π² Π½Π΅Ρ;
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΊΡΠΎΠ±Π»ΠΈΠ½Π³ ΡΡΠ΅Π· Last.fm API v2.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru

