1 |
DENIED
|
ROLE_USER
|
null |
|
Show voter details
|
2 |
DENIED
|
moderate
|
App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
} |
|
Show voter details
|
3 |
DENIED
|
edit
|
App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
} |
|
Show voter details
|
4 |
DENIED
|
moderate
|
App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
} |
|
Show voter details
|
5 |
DENIED
|
ROLE_USER
|
null |
|
Show voter details
|
6 |
DENIED
|
moderate
|
App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
} |
|
Show voter details
|
7 |
DENIED
|
edit
|
App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
} |
|
Show voter details
|
8 |
DENIED
|
moderate
|
App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
} |
|
Show voter details
|
9 |
DENIED
|
ROLE_USER
|
null |
|
Show voter details
|
10 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
} |
|
Show voter details
|
11 |
DENIED
|
edit
|
App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
} |
|
Show voter details
|
12 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
} |
|
Show voter details
|
13 |
DENIED
|
ROLE_USER
|
null |
|
Show voter details
|
14 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
} |
|
Show voter details
|
15 |
DENIED
|
edit
|
App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
} |
|
Show voter details
|
16 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371}
0 => App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
} |
|
Show voter details
|
17 |
DENIED
|
ROLE_USER
|
null |
|
Show voter details
|
18 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
} |
|
Show voter details
|
19 |
DENIED
|
edit
|
App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
} |
|
Show voter details
|
20 |
DENIED
|
moderate
|
App\Entity\EntryComment {#2391
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614
+user: App\Entity\User {#258 …}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: Proxies\__CG__\App\Entity\Image {#1581 …}
+domain: Proxies\__CG__\App\Entity\Domain {#1654 …}
+slug: "I-made-a-thing-to-make-playing-YouTube-videos-locally"
+title: "I made a thing to make playing YouTube videos locally from your browser easier"
+url: "https://gitlab.com/danielquinn/video-bypass"
+body: """
The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up `yt-dlp` and play the video through `mpv`.\n
\n
It turns out, writing a Firefox extension is *easy* and tricking Firefox into launching `yt-dlp` isn’t much harder (though it does require some annoying configuration on the user’s end).\n
\n
Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.
"""
+type: "link"
+lang: "en"
+isOc: false
+hasEmbed: false
+commentCount: 19
+favouriteCount: 200
+score: 0
+isAdult: false
+sticky: false
+lastActive: DateTime @1707557582 {#1446
date: 2024-02-10 10:33:02.0 +01:00
}
+ip: null
+adaAmount: 0
+tags: null
+mentions: null
+comments: Doctrine\ORM\PersistentCollection {#1652 …}
+votes: Doctrine\ORM\PersistentCollection {#1649 …}
+reports: Doctrine\ORM\PersistentCollection {#1656 …}
+favourites: Doctrine\ORM\PersistentCollection {#1525 …}
+notifications: Doctrine\ORM\PersistentCollection {#1526 …}
+badges: Doctrine\ORM\PersistentCollection {#1557 …}
+children: [
3 => App\Entity\EntryComment {#1630
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697268007 {#1702
date: 2023-10-14 09:20:07.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2448 …}
+nested: Doctrine\ORM\PersistentCollection {#2465 …}
+votes: Doctrine\ORM\PersistentCollection {#1740 …}
+reports: Doctrine\ORM\PersistentCollection {#1739 …}
+favourites: Doctrine\ORM\PersistentCollection {#2460 …}
+notifications: Doctrine\ORM\PersistentCollection {#2462 …}
-id: 48003
-bodyTs: "'anoth':3,46 'binari':26 'caus':43 'complic':48 'convent':33 'could':15 'd':39 'extern':25 'figur':16 'firefox':21 'get':20 'hack':9 'invok':23 'know':42 'like':40,56 'much':55 'need':51 'one':58 'pattern':54 'project':49 'way':4,13,34"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993154"
+editedAt: null
+createdAt: DateTimeImmutable @1697268007 {#1620
date: 2023-10-14 09:20:07.0 +02:00
}
+"title": 48003
}
1 => App\Entity\EntryComment {#2384
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2378 …}
+body: """
Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)\n
\n
It was still a fun project though 'cause I learnt how to write a Firefox extension *and* get the browser to launch programs on-click, so not a waste of time!
"""
+lang: "en"
+isAdult: false
+favouriteCount: 13
+score: 0
+lastActive: DateTime @1697288649 {#2382
date: 2023-10-14 15:04:09.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@khorovodoved@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2379 …}
+nested: Doctrine\ORM\PersistentCollection {#2383 …}
+votes: Doctrine\ORM\PersistentCollection {#1906 …}
+reports: Doctrine\ORM\PersistentCollection {#1708 …}
+favourites: Doctrine\ORM\PersistentCollection {#1410 …}
+notifications: Doctrine\ORM\PersistentCollection {#1907 …}
-id: 48431
-bodyTs: "'b':14 'browser':47 'caus':35 'click':53 'could':16 'didn':4 'direct':20 'even':10 'exist':11 'extens':43 'ff2mpv':9 'firefox':42 'fun':32 'get':45 'honest':1 'know':6 'launch':49 'learnt':24,37 'mpv':15 'on-click':51 'play':17 'program':50 'project':33 'still':30 'thank':22 'thing':26 'though':34 'time':59 'today':27 'two':25 'url':19 'wast':57 'write':40 'youtub':18"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3997262"
+editedAt: null
+createdAt: DateTimeImmutable @1697288649 {#2385
date: 2023-10-14 15:04:09.0 +02:00
}
+"title": 48431
}
2 => App\Entity\EntryComment {#2371
+user: App\Entity\User {#258 …}
+entry: App\Entity\Entry {#1614}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2467 …}
+body: """
I don’t think I have it in me to put together a video, but I can describe it if you like.\n
\n
Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches `yt-dlp [the URL you’re at] -o - | mpv -` which basically just downloads the video and streams the output through the `mpv` video player. So now you’re watching just the video, with no web page necessary.
"""
+lang: "en"
+isAdult: false
+favouriteCount: 3
+score: 0
+lastActive: DateTime @1697268377 {#1723
date: 2023-10-14 09:26:17.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@zaknenou@lemmy.dbzer0.com"
]
+children: Doctrine\ORM\PersistentCollection {#2468 …}
+nested: Doctrine\ORM\PersistentCollection {#2363 …}
+votes: Doctrine\ORM\PersistentCollection {#2377 …}
+reports: Doctrine\ORM\PersistentCollection {#2359 …}
+favourites: Doctrine\ORM\PersistentCollection {#2364 …}
+notifications: Doctrine\ORM\PersistentCollection {#2380 …}
-id: 48009
-bodyTs: "'add':42 'basic':74 'button':45 'bypass':56 'click':59 'describ':18 'dlp':65 'download':76 'extens':27,41 'firefox':61 'follow':29 'go':35 'instal':25 'instruct':32 'launch':62 'left':50 'like':22 'mpv':72,85 'necessari':100 'o':71 'output':82 'page':39,53,99 'player':87 'put':11 're':69,91 'say':55 'setup':31 'stream':80 'think':4 'togeth':12 'top':49 'top-left':48 'ugli':44 'url':67 'video':14,78,86,95 'watch':92 'web':98 'youtub':38 'yt':64 'yt-dlp':63"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/3993221"
+editedAt: null
+createdAt: DateTimeImmutable @1697268377 {#2471
date: 2023-10-14 09:26:17.0 +02:00
}
+"title": 48009
}
0 => App\Entity\EntryComment {#2391}
]
-id: 5166
-titleTs: "'browser':13 'easier':14 'local':10 'made':2 'make':6 'play':7 'thing':4 'video':9 'youtub':8"
-bodyTs: "'ad':10 'annoy':69 'anyway':76 'blocker':12,13 'blocker-block':11 'complain':6 'configur':70 'day':3 'dlp':36,59 'done':110 'easi':51 'end':75 'exercis':105 'extens':28,49 'feel':83 'firefox':27,48,54 'free':84 'friday':121 'fun':23 'go':97 'good':114 'harder':63 'hour':118 'isn':60 'know':92 'launch':56 'linux':81 'load':32 'm':96 'mention':18 'might':21 'mpv':42 'much':62,94 'new':9 'night':122 'play':38 'pour':99 'pretti':113 're':79 'requir':67 'someon':4 'though':64 'tri':86 'trick':53 'turn':44 'user':73,82 'video':40 'would':30 'write':25,46 'youtub':15 'yt':35,58 'yt-dlp':34,57"
+cross: false
+upVotes: 0
+downVotes: 0
+ranking: 1697325241
+visibility: "visible "
+apId: "https://lemmy.ca/post/7150213"
+editedAt: null
+createdAt: DateTimeImmutable @1697238841 {#1442
date: 2023-10-14 01:14:01.0 +02:00
}
}
+magazine: Proxies\__CG__\App\Entity\Magazine {#1588 …}
+image: null
+parent: Proxies\__CG__\App\Entity\EntryComment {#2389 …}
+root: Proxies\__CG__\App\Entity\EntryComment {#2411 …}
+body: "That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is [here](https://gitlab.com/danielquinn/opening) if you’re curious."
+lang: "en"
+isAdult: false
+favouriteCount: 1
+score: 0
+lastActive: DateTime @1697303255 {#1407
date: 2023-10-14 19:07:35.0 +02:00
}
+ip: null
+tags: null
+mentions: [
"@danielquinn@lemmy.ca"
"@Morgikan@lemm.ee"
]
+children: Doctrine\ORM\PersistentCollection {#2369 …}
+nested: Doctrine\ORM\PersistentCollection {#2392 …}
+votes: Doctrine\ORM\PersistentCollection {#2395 …}
+reports: Doctrine\ORM\PersistentCollection {#1384 …}
+favourites: Doctrine\ORM\PersistentCollection {#1383 …}
+notifications: Doctrine\ORM\PersistentCollection {#1405 …}
-id: 48905
-bodyTs: "'/danielquinn/opening)':42 'actual':3 'anoth':12 'browsers/profiles':20 'certain':16 'curious':46 'design':34 'gitlab.com':41 'gitlab.com/danielquinn/opening)':40 'help':5 'miss':30 'obvious':33 'open':15 'pattern':35 'project':13,37 're':45 'specif':19 'sure':25 'thank':6 'url':17 've':8 'want':22 'wasn':28 'work':10"
+ranking: 0
+commentCount: 0
+upVotes: 0
+downVotes: 0
+visibility: "visible "
+apId: "https://lemmy.ca/comment/4002090"
+editedAt: null
+createdAt: DateTimeImmutable @1697303255 {#1883
date: 2023-10-14 19:07:35.0 +02:00
}
+"title": 48905
} |
|
Show voter details
|
21 |
DENIED
|
ROLE_ADMIN
|
null |
|
Show voter details
|
22 |
DENIED
|
ROLE_MODERATOR
|
null |
|
Show voter details
|