{"id":93871,"date":"2020-09-10T13:41:58","date_gmt":"2020-09-10T11:41:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/funkwhale-1-0"},"modified":"2020-09-10T13:41:58","modified_gmt":"2020-09-10T11:41:58","slug":"funkwhale-1-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/funkwhale-1-0","title":{"rendered":"Funkwhale 1.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/19337\/original.png\" itemprop=\"contentURL\"><br \/>\n      <img decoding=\"async\" alt=\"Funkwhale 1.0\" src=\"\/wp-content\/uploads\/2020\/09\/ee94a0d7a302326a25f646aa817a7db1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>    <\/a><\/p>\n<p><noindex>      <noindex><\/p>\n<p>Projeto <a rel=\"nofollow\" href=\"https:\/\/funkwhale.audio\">Funkwhale<\/a> lan\u00e7ou a sua primeira vers\u00e3o est\u00e1vel. No \u00e2mbito dessa iniciativa, desenvolve-se um servidor livre, escrito em Python utilizando o framework Django, para hospedagem de m\u00fasica e podcasts, que podem ser ouvidos atrav\u00e9s de uma interface web, <a rel=\"nofollow\" href=\"https:\/\/funkwhale.audio\/apps\">clientes que suportam a API Subsonic ou a API nativa Funkwhale<\/a>, quanto <a rel=\"nofollow\" href=\"https:\/\/network.funkwhale.audio\">de outras inst\u00e2ncias do Funkwhale<\/a>, usando <a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/activitypub\">protocolo de rede federativa ActivityPub<\/a>.<\/p>\n<p><\/noindex><\/noindex><br \/>\n<noindex><\/p>\n<p>A intera\u00e7\u00e3o do usu\u00e1rio com o \u00e1udio ocorre por meio de bibliotecas e canais: as bibliotecas s\u00e3o cole\u00e7\u00f5es de v\u00e1rios artistas com um UUID gerado aleatoriamente como endere\u00e7o, enquanto o canal \u00e9 a discografia de um \u00fanico artista, ao qual \u00e9 atribu\u00eddo um endere\u00e7o leg\u00edvel; os canais podem ser \u00fateis para a publica\u00e7\u00e3o de podcasts. O gerenciamento de assinaturas \u00e9 semelhante ao de outro projeto \u2014 <a rel=\"nofollow\" href=\"https:\/\/joinpeertube.org\">PeerTube<\/a>: voc\u00ea pode assinar tanto o usu\u00e1rio quanto os canais que ele criou separadamente. Como o servidor opera sob o protocolo ActivityPub, \u00e9 poss\u00edvel assinar outras implementa\u00e7\u00f5es populares, como <a rel=\"nofollow\" href=\"https:\/\/joinmastodon.org\">Mastodon<\/a> e <a rel=\"nofollow\" href=\"https:\/\/pleroma.social\">Pleroma<\/a>.<\/p>\n<p><\/noindex><\/p>\n<p><noindex><\/p>\n<p>Ap\u00f3s a cria\u00e7\u00e3o de uma biblioteca ou canal, \u00e9 poss\u00edvel fazer o upload de m\u00fasicas. O armazenamento de arquivos pode ser local ou remoto, utilizando suporte embutido para sistemas de arquivos com o protocolo Amazon S3. \u00c9 poss\u00edvel fazer upload de qualquer arquivo em formato popular, sem recodifica\u00e7\u00e3o adicional e sem perda de qualidade (o que, por exemplo, o PeerTube faz, que tamb\u00e9m suporta o upload de \u00e1udio). O Funkwhale l\u00ea os metadados musicais embutidos nos arquivos e as capas, e em caso de aus\u00eancia, apresenta um erro. Portanto, recomenda-se aos usu\u00e1rios que utilizem <a rel=\"nofollow\" href=\"https:\/\/picard.musicbrainz.org\">MusicBrainz Picard<\/a> para gravar as tags corretas antes do upload. Tamb\u00e9m est\u00e1 dispon\u00edvel uma interface de edi\u00e7\u00e3o de metadados ap\u00f3s o upload, funcionando como revis\u00f5es com um hist\u00f3rico de mudan\u00e7as vis\u00edvel.<\/p>\n<p><\/noindex><br \/>\n<noindex><\/p>\n<p>A partir da m\u00fasica j\u00e1 carregada nas bibliotecas e canais, \u00e9 poss\u00edvel criar playlists, esta\u00e7\u00f5es de r\u00e1dio e marcar faixas como favoritas. Usu\u00e1rios remotos poder\u00e3o solicitar acesso \u00e0 sua biblioteca ou canal, simplesmente colando o link dela na barra de pesquisa de seu servidor. Usu\u00e1rios an\u00f4nimos poder\u00e3o ouvir m\u00fasica atrav\u00e9s da interface web, se isso for permitido nas configura\u00e7\u00f5es do servidor. Usu\u00e1rios locais registrados podem acessar toda a m\u00fasica do servidor sem usar a interface web, acessando atrav\u00e9s de <a rel=\"nofollow\" href=\"http:\/\/www.subsonic.org\/pages\/apps.jsp\">qualquer cliente com suporte a Subsonic API<\/a> \u2014 outro servidor de m\u00fasica, atualmente sob licen\u00e7a propriet\u00e1ria, com ramifica\u00e7\u00f5es em paralelo da antiga base de c\u00f3digo sob licen\u00e7a livre, \u2014 ou a nativa Funkwhale API, por exemplo, <a rel=\"nofollow\" href=\"https:\/\/github.com\/apognu\/otter\">Otter para Android<\/a>.<\/p>\n<p><\/noindex><\/p>\n<p>Os clientes tamb\u00e9m podem solicitar ao servidor uma vers\u00e3o transcodificada das faixas (por exemplo, de FLAC para MP3 com uma taxa de bits menor, que exige menos tr\u00e1fego de internet).<\/p>\n<p>\u00c9 poss\u00edvel assinar feeds RSS, por exemplo, para os podcasts j\u00e1 mencionados.<\/p>\n<p>Mudan\u00e7as nesta vers\u00e3o:<\/p>\n<ul>\n<li>a vers\u00e3o m\u00ednima requerida do Python foi elevada para 3.6;<\/li>\n<li>mudan\u00e7as incompat\u00edveis na API do cliente;<\/li>\n<li>cessa\u00e7\u00e3o do suporte a tokens JSON (JWT) em favor do OAuth;<\/li>\n<li>algoritmo aprimorado para gera\u00e7\u00e3o de previews de capas;<\/li>\n<li>adicionada uma bot\u00e3o na interface web para importar m\u00fasica do sistema de arquivos do servidor;<\/li>\n<li>agora h\u00e1 exibi\u00e7\u00e3o da quantidade de downloads de faixas e \u00e1lbuns;<\/li>\n<li>nova p\u00e1gina de busca;<\/li>\n<li>o bot\u00e3o 'tocar' em faixas e \u00e1lbuns agora substitui a fila, em vez de adicionar faixas a ela;<\/li>\n<li>suporte ao scrobbling usando Last.fm API v2.<\/li>\n<\/ul>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/opensource\/15889305\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0435\u043a\u0442 Funkwhale \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u044b \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u043a\u0430 Django, \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0438 \u0438 \u043f\u043e\u0434\u043a\u0430\u0441\u0442\u043e\u0432, \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Subsonic API \u0438\u043b\u0438 \u0440\u043e\u0434\u043d\u043e\u0433\u043e Funkwhale API, \u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 Funkwhale, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 ActivityPub. \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0430\u0443\u0434\u0438\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":93872,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-93871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/funkwhale-1-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Funkwhale 1.0 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/funkwhale-1-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-10T11:41:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-10T11:41:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Funkwhale 1.0 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/funkwhale-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Funkwhale 1.0 | ProHoster","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/funkwhale-1-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-10T11:41:58+00:00","article:modified_time":"2020-09-10T11:41:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"93871","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:38:42","updated":"2022-10-03 16:44:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/93871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=93871"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/93871\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/93872"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=93871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=93871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=93871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}