slord6 / podcast-playlist Goto Github PK
View Code? Open in Web Editor NEWCreate playlists of podcast episodes for Tangara
License: MIT License
Create playlists of podcast episodes for Tangara
License: MIT License
As available, support importing listen history from Tangara, either via the companion app haileys/tangara-companion#2 or directly
Tangara firmware support for this tracked here
Show progress for episode downloads
As available, support copying a playlist + related files to the device.
Consider playlist sync
, and update history (#20) and on-device playlist simultaneously
Use case being episode in a feed, eg preview episodes for a premium feed, that someone isn't interested in or an incomplete history import or ability to skip a season
Good test podcasts for this:
Hey Riddle Riddle (patron previews)
Triforce (old yogpod episodes)
F-Face (weird seasons)
Build + release executable
If existing files are either named correctly, or have metadata set (see #14), we should be able to process+import them into the cache.
As long as the episode title is accurate to the current rss feed item title (not always true) then we can just copy & rename as if it was just downloaded.
The applicaion is pretty chatty at the moment and so verbosity flags are probably worthwhile
PS D:\...\podcast-playlist>node .\dist\index.js history import --playlist .\data\playlists\test_playlist_4\test_playlist_4.m3u
Importing history from .\data\playlists\test_playlist_4\test_playlist_4.m3u
(PodcastAddictImporter)Database loading from .\data\playlists\test_playlist_4\test_playlist_4.m3u
(PodcastAddictImporter)Extracting history from DB...
(PodcastAddictImporter)DB query failed: Error: SQLITE_NOTADB: file is not a database
Import failed. Error: SQLITE_NOTADB: file is not a database
--> in Database#each('SELECT episodes.name as episodeName,episodes.url as episodeUrl,podcasts.name as podcastName,playbackDate,podcast_id from episodes INNER JOIN podcasts on podcast_id = podcasts._id WHERE playbackDate > 0', [Function (anonymous)], [Function (anonymous)])
at Database.<anonymous> (D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:51:29)
at D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:50:25
at new Promise (<anonymous>)
at PodcastAddictHistoryImporter.<anonymous> (D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:48:20)
at Generator.next (<anonymous>)
at D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:31:71
at new Promise (<anonymous>)
at __awaiter (D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:27:12)
at PodcastAddictHistoryImporter.extract (D:\samlo\Documents\Repos\podcast-playlist\dist\ingestion\podcastAddictHistoryImporter.js:46:16) {
errno: 26,
code: 'SQLITE_NOTADB',
__augmented: true
}
We should be able to add metadata to the downloaded audio.
For node, it looks like the main way is to call out to ffmpeg, which isn't ideal, but would be good enough for a first pass.
There's a wrapper for this which looks promising - discussion of alternatives.
For ensuring ffmpeg is installed, there's ffmpeg-static
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.